From 0414d5b34cfada172f74eec1fb08d3a0e9c26ac9 Mon Sep 17 00:00:00 2001 From: "Zachary J. Fields" Date: Mon, 29 Jun 2026 23:20:00 -0500 Subject: [PATCH] feat: AI documentation --- .cursor/rules/architecture-docs.mdc | 6 +- .github/copilot-instructions.md | 6 +- .github/workflows/ci.yml | 12 +- AGENTS.md | 46 +- ARCHITECTURE.md | 38 +- CLAUDE.md | 16 +- GEMINI.md | 18 +- docs/CMakeLists.txt | 3 - docs/architecture.rst | 6 +- docs/architecture/README.md | 15 +- docs/architecture/architecture.html | 1198 +- docs/architecture/architecture.json | 454 - docs/architecture/embed-architecture-json.mjs | 21 - docs/index.rst | 6 +- .../functions/n_atof_c__L71__JAtoN.md | 54 + .../functions/n_b64_c__L106__JB64DecodeLen.md | 60 + .../functions/n_b64_c__L121__JB64Decode.md | 62 + .../functions/n_b64_c__L169__JB64EncodeLen.md | 60 + .../functions/n_b64_c__L174__JB64Encode.md | 60 + .../functions/n_cjson_c__L1032__JPrint.md | 63 + .../n_cjson_c__L1051__JPrintUnformatted.md | 55 + ...on_c__L1059__JPrintUnformattedOmitEmpty.md | 63 + .../n_cjson_c__L1067__JPrintBuffered.md | 65 + .../n_cjson_c__L1097__printPreallocated.md | 65 + .../functions/n_cjson_c__L110__JVersion.md | 65 + ...n_c__L1118__JPrintPreallocatedOmitEmpty.md | 60 + .../n_cjson_c__L1123__JPrintPreallocated.md | 60 + .../n_cjson_c__L1129__parse_value.md | 61 + .../functions/n_cjson_c__L115__j_tolower.md | 53 + .../n_cjson_c__L1179__print_value.md | 60 + .../n_cjson_c__L1245__parse_array.md | 61 + ..._cjson_c__L127__case_insensitive_strcmp.md | 56 + .../n_cjson_c__L1341__print_array.md | 57 + .../n_cjson_c__L1395__parse_object.md | 62 + .../functions/n_cjson_c__L146__j_strdup.md | 63 + ...cjson_c__L1507__last_non_omitted_object.md | 55 + .../n_cjson_c__L1523__print_object.md | 60 + .../n_cjson_c__L1660__JGetArraySize.md | 63 + .../n_cjson_c__L1681__get_array_item.md | 64 + .../n_cjson_c__L1698__JGetArrayItem.md | 60 + .../n_cjson_c__L1710__get_object_item.md | 57 + .../n_cjson_c__L1732__JGetObjectItem.md | 56 + ...n_c__L1740__JGetObjectItemCaseSensitive.md | 62 + .../n_cjson_c__L1748__JHasObjectItem.md | 60 + .../n_cjson_c__L1757__suffix_object.md | 56 + .../functions/n_cjson_c__L175__JMalloc.md | 60 + .../n_cjson_c__L1764__create_reference.md | 63 + .../n_cjson_c__L1783__add_item_to_array.md | 60 + .../n_cjson_c__L1808__JAddItemToArray.md | 61 + .../n_cjson_c__L1826__cast_away_const.md | 57 + .../n_cjson_c__L1835__add_item_to_object.md | 62 + .../n_cjson_c__L1866__JAddItemToObject.md | 56 + .../n_cjson_c__L1878__JAddItemToObjectCS.md | 61 + ...json_c__L1889__JAddItemReferenceToArray.md | 62 + .../functions/n_cjson_c__L188__JFree.md | 60 + ...son_c__L1900__JAddItemReferenceToObject.md | 62 + .../n_cjson_c__L1911__JAddTrueToObject.md | 62 + .../n_cjson_c__L1926__JAddFalseToObject.md | 62 + .../functions/n_cjson_c__L194__jNew_Item.md | 56 + .../n_cjson_c__L1950__JAddBoolToObject.md | 64 + .../n_cjson_c__L1974__JAddNumberToObject.md | 57 + .../n_cjson_c__L1989__JAddIntToObject.md | 68 + .../n_cjson_c__L2013__JAddStringToObject.md | 58 + .../n_cjson_c__L2028__JAddRawToObject.md | 62 + .../n_cjson_c__L2051__JAddObjectToObject.md | 62 + .../n_cjson_c__L2074__JAddArrayToObject.md | 60 + ...n_cjson_c__L2089__JDetachItemViaPointer.md | 71 + .../functions/n_cjson_c__L209__JDelete.md | 65 + .../n_cjson_c__L2115__JDetachItemFromArray.md | 63 + .../n_cjson_c__L2127__JDeleteItemFromArray.md | 61 + ...n_cjson_c__L2135__JDetachItemFromObject.md | 64 + ...146__JDetachItemFromObjectCaseSensitive.md | 63 + ...n_cjson_c__L2157__JDeleteItemFromObject.md | 61 + ...165__JDeleteItemFromObjectCaseSensitive.md | 61 + .../n_cjson_c__L2174__JInsertItemInArray.md | 64 + ..._cjson_c__L2206__JReplaceItemViaPointer.md | 63 + .../n_cjson_c__L2236__JReplaceItemInArray.md | 64 + ..._cjson_c__L2253__replace_item_in_object.md | 68 + .../n_cjson_c__L2281__JReplaceItemInObject.md | 61 + ...2292__JReplaceItemInObjectCaseSensitive.md | 61 + .../n_cjson_c__L229__get_decimal_point.md | 53 + .../n_cjson_c__L2303__JCreateTrue.md | 59 + .../n_cjson_c__L2312__JCreateFalse.md | 59 + .../n_cjson_c__L2321__JCreateBool.md | 62 + .../n_cjson_c__L2330__JCreateNumber.md | 55 + .../n_cjson_c__L2349__JCreateInteger.md | 60 + .../n_cjson_c__L2360__JCreateString.md | 63 + .../n_cjson_c__L2374__JCreateStringValue.md | 60 + ..._cjson_c__L2384__JCreateStringReference.md | 60 + ..._cjson_c__L2394__JCreateObjectReference.md | 61 + ...n_cjson_c__L2407__JCreateArrayReference.md | 61 + .../functions/n_cjson_c__L2420__JCreateRaw.md | 61 + .../n_cjson_c__L2434__JCreateArray.md | 70 + .../n_cjson_c__L2450__JCreateObject.md | 56 + .../n_cjson_c__L2460__JCreateIntArray.md | 63 + .../n_cjson_c__L2489__JCreateNumberArray.md | 61 + .../n_cjson_c__L2519__JCreateStringArray.md | 63 + .../functions/n_cjson_c__L2550__JDuplicate.md | 63 + .../n_cjson_c__L255__parse_number.md | 59 + .../functions/n_cjson_c__L2616__JMinify.md | 60 + .../functions/n_cjson_c__L2665__JIsInvalid.md | 59 + .../functions/n_cjson_c__L2673__JIsFalse.md | 60 + .../functions/n_cjson_c__L2681__JIsTrue.md | 59 + .../functions/n_cjson_c__L2690__JIsBool.md | 59 + .../functions/n_cjson_c__L2697__JIsNull.md | 60 + .../functions/n_cjson_c__L2705__JIsNumber.md | 54 + .../functions/n_cjson_c__L2713__JIsString.md | 54 + .../functions/n_cjson_c__L2721__JIsArray.md | 59 + .../functions/n_cjson_c__L2729__JIsObject.md | 59 + .../functions/n_cjson_c__L2737__JIsRaw.md | 60 + .../functions/n_cjson_c__L2745__JCompare.md | 63 + .../n_cjson_c__L322__JSetNumberHelper.md | 61 + .../functions/n_cjson_c__L351__ensure.md | 56 + .../n_cjson_c__L400__update_offset.md | 53 + .../n_cjson_c__L412__print_number.md | 59 + .../functions/n_cjson_c__L476__parse_hex4.md | 54 + .../n_cjson_c__L504__utf16_literal_to_utf8.md | 55 + .../n_cjson_c__L604__parse_string.md | 58 + .../functions/n_cjson_c__L728__n_htoa16.md | 53 + .../n_cjson_c__L744__print_string_ptr.md | 56 + .../n_cjson_c__L856__print_string.md | 55 + ...n_cjson_c__L870__buffer_skip_whitespace.md | 56 + .../n_cjson_c__L888__skip_utf8_bom.md | 56 + .../n_cjson_c__L902__JParseWithOpts.md | 60 + .../functions/n_cjson_c__L91__JGetErrorPtr.md | 60 + .../n_cjson_c__L96__JGetStringValue.md | 60 + .../functions/n_cjson_c__L976__JParse.md | 55 + .../functions/n_cjson_c__L983__print.md | 59 + .../n_cjson_helpers_c__L114__JIntValue.md | 54 + .../n_cjson_helpers_c__L122__JGetInt.md | 57 + .../n_cjson_helpers_c__L137__JGetBool.md | 65 + .../n_cjson_helpers_c__L152__JIsNullString.md | 56 + ...n_cjson_helpers_c__L173__JIsExactString.md | 62 + ..._cjson_helpers_c__L194__JContainsString.md | 56 + .../n_cjson_helpers_c__L19__JIsPresent.md | 55 + ...son_helpers_c__L215__JAddBinaryToObject.md | 65 + ...n_helpers_c__L235__JGetBinaryFromObject.md | 66 + .../n_cjson_helpers_c__L276__JGetItemName.md | 58 + .../n_cjson_helpers_c__L27__JGetString.md | 61 + .../n_cjson_helpers_c__L284__JItoA.md | 60 + .../n_cjson_helpers_c__L312__JAtoI.md | 54 + .../n_cjson_helpers_c__L342__JAllocString.md | 59 + .../n_cjson_helpers_c__L355__JType.md | 58 + .../n_cjson_helpers_c__L379__JGetType.md | 60 + .../n_cjson_helpers_c__L387__JGetItemType.md | 55 + .../n_cjson_helpers_c__L446__JBaseItemType.md | 58 + .../n_cjson_helpers_c__L45__JGetArray.md | 60 + .../n_cjson_helpers_c__L60__JGetObject.md | 60 + .../n_cjson_helpers_c__L75__JBoolValue.md | 58 + .../n_cjson_helpers_c__L83__JStringValue.md | 58 + .../n_cjson_helpers_c__L91__JNumberValue.md | 63 + .../n_cjson_helpers_c__L99__JGetNumber.md | 66 + .../functions/n_cobs_c__L115__cobsEncode.md | 76 + .../n_cobs_c__L196__cobsEncodedLength.md | 77 + .../n_cobs_c__L263__cobsEncodedMaxLength.md | 77 + .../n_cobs_c__L305__cobsGuaranteedFit.md | 58 + .../functions/n_cobs_c__L32__cobsDecode.md | 61 + .../functions/n_ftoa_c__L378__fmtstr.md | 54 + .../functions/n_ftoa_c__L415__printsep.md | 54 + .../functions/n_ftoa_c__L420__getnumsep.md | 53 + .../functions/n_ftoa_c__L426__getexponent.md | 53 + .../functions/n_ftoa_c__L448__convert.md | 53 + .../functions/n_ftoa_c__L462__cast.md | 54 + .../functions/n_ftoa_c__L486__myround.md | 54 + .../functions/n_ftoa_c__L497__mypow10.md | 53 + .../functions/n_ftoa_c__L56__JNtoA.md | 55 + .../functions/n_ftoa_c__L74__fmtflt.md | 63 + .../n_helpers_c__L1016__NoteLocalTimeST.md | 66 + .../functions/n_helpers_c__L1119__yToDays.md | 62 + .../n_helpers_c__L1139__NoteLocationValid.md | 59 + ...n_helpers_c__L1156__NoteLocationValidST.md | 69 + .../n_helpers_c__L1215__NoteSetEnvDefault.md | 61 + ..._helpers_c__L1235__NoteSetEnvDefaultInt.md | 58 + ...lpers_c__L1250__NoteSetEnvDefaultNumber.md | 60 + .../n_helpers_c__L1265__NoteGetEnvNumber.md | 62 + ..._helpers_c__L127__NoteBinaryCodecDecode.md | 64 + .../n_helpers_c__L1281__NoteGetEnvInt.md | 61 + .../n_helpers_c__L1302__NoteGetEnv.md | 71 + .../n_helpers_c__L1334__NoteIsConnected.md | 63 + .../n_helpers_c__L1346__NoteIsConnectedST.md | 72 + .../n_helpers_c__L1368__NoteGetNetStatus.md | 65 + .../n_helpers_c__L1391__NoteGetVersion.md | 65 + .../n_helpers_c__L1417__NoteGetLocation.md | 67 + .../n_helpers_c__L1463__NoteSetLocation.md | 63 + .../n_helpers_c__L1482__NoteClearLocation.md | 62 + ...n_helpers_c__L1501__NoteGetLocationMode.md | 65 + ...n_helpers_c__L1524__NoteSetLocationMode.md | 63 + ..._helpers_c__L1557__NoteGetServiceConfig.md | 63 + ...elpers_c__L1582__NoteGetServiceConfigST.md | 75 + .../n_helpers_c__L1631__NoteGetStatus.md | 63 + .../n_helpers_c__L1649__NoteGetStatusST.md | 78 + ..._helpers_c__L169__NoteBinaryCodecEncode.md | 76 + ...lpers_c__L1708__NotePayloadSaveAndSleep.md | 64 + .../n_helpers_c__L1754__NoteSleep.md | 75 + .../functions/n_helpers_c__L1805__NoteWake.md | 61 + ...c__L1830__NotePayloadRetrieveAfterSleep.md | 75 + .../n_helpers_c__L1902__NoteFactoryReset.md | 65 + .../n_helpers_c__L1939__NoteSetProductID.md | 62 + ...n_helpers_c__L1963__NoteSetSerialNumber.md | 62 + .../n_helpers_c__L1993__NoteSetUploadMode.md | 64 + .../n_helpers_c__L2028__NoteSetSyncMode.md | 64 + .../n_helpers_c__L2060__NoteTemplate.md | 64 + .../functions/n_helpers_c__L2083__NoteAdd.md | 66 + .../n_helpers_c__L2119__NoteSendToRoute.md | 70 + .../n_helpers_c__L2175__NoteGetVoltage.md | 64 + ...__L218__NoteBinaryCodecMaxDecodedLength.md | 60 + .../n_helpers_c__L2197__NoteGetTemperature.md | 64 + .../n_helpers_c__L2226__NoteGetContact.md | 65 + .../n_helpers_c__L2276__NoteSetContact.md | 62 + .../n_helpers_c__L2301__timerExpiredSecs.md | 70 + ...n_helpers_c__L2332__NoteDebugSyncStatus.md | 82 + ...__L233__NoteBinaryCodecMaxEncodedLength.md | 60 + .../n_helpers_c__L2399__NoteMemAvailable.md | 61 + .../n_helpers_c__L2440__NotePayloadSet.md | 59 + .../n_helpers_c__L2453__NotePayloadFree.md | 62 + ...helpers_c__L2473__NotePayloadAddSegment.md | 63 + ...s_c__L249__NoteBinaryStoreDecodedLength.md | 69 + ...helpers_c__L2533__NotePayloadGetSegment.md | 63 + ...elpers_c__L2555__NotePayloadFindSegment.md | 66 + .../n_helpers_c__L2587__NoteTurboIO.md | 60 + ...s_c__L300__NoteBinaryStoreEncodedLength.md | 69 + ...helpers_c__L359__NoteBinaryStoreReceive.md | 82 + ...n_helpers_c__L492__NoteBinaryStoreReset.md | 68 + ...elpers_c__L539__NoteBinaryStoreTransmit.md | 92 + .../n_helpers_c__L743__NoteTimeValid.md | 60 + .../n_helpers_c__L755__NoteTimeValidST.md | 63 + .../functions/n_helpers_c__L767__NoteTime.md | 60 + .../n_helpers_c__L780__NoteTimeRefreshMins.md | 59 + .../functions/n_helpers_c__L791__setTime.md | 63 + .../n_helpers_c__L808__NoteTimeSet.md | 63 + .../n_helpers_c__L834__NotePrintln.md | 60 + .../functions/n_helpers_c__L847__NotePrint.md | 69 + .../n_helpers_c__L871__NoteTimeST.md | 73 + ...elpers_c__L92__NoteAuxSerialFlowControl.md | 65 + .../n_helpers_c__L948__NoteSetSTSecs.md | 59 + .../n_helpers_c__L965__NoteRegion.md | 62 + .../n_hooks_c__L1015__noteHardReset.md | 54 + .../n_hooks_c__L1042__noteJSONTransaction.md | 54 + .../n_hooks_c__L1068__noteChunkedReceive.md | 54 + .../n_hooks_c__L1087__noteChunkedTransmit.md | 72 + ...n_hooks_c__L209__NoteGetActiveInterface.md | 54 + ...n_hooks_c__L214__noteSetActiveInterface.md | 62 + ...n_hooks_c__L241__NoteSetActiveInterface.md | 61 + .../n_hooks_c__L248__NoteSetFnDefault.md | 61 + .../functions/n_hooks_c__L266__NoteSetFn.md | 61 + .../n_hooks_c__L285__NoteSetFnHeartbeat.md | 61 + .../n_hooks_c__L294__NoteSetFnDebugOutput.md | 61 + ..._hooks_c__L308__noteIsDebugOutputActive.md | 59 + .../n_hooks_c__L313__NoteSetFnTransaction.md | 61 + .../n_hooks_c__L321__NoteSetFnMutex.md | 59 + .../n_hooks_c__L329__NoteSetFnI2CMutex.md | 59 + .../n_hooks_c__L335__NoteSetFnNoteMutex.md | 59 + .../n_hooks_c__L341__NoteSetFnSerial.md | 68 + ...n_hooks_c__L356__NoteSetFnSerialDefault.md | 68 + .../n_hooks_c__L381__NoteSetFnI2C.md | 68 + .../n_hooks_c__L399__NoteSetFnI2CDefault.md | 68 + .../n_hooks_c__L433__NoteSetFnDisabled.md | 59 + .../n_hooks_c__L444__NoteSetLogLevel.md | 59 + .../n_hooks_c__L453__NoteDebugIntln.md | 60 + .../functions/n_hooks_c__L464__NoteDebugln.md | 59 + .../functions/n_hooks_c__L474__NoteDebug.md | 55 + .../n_hooks_c__L485__NoteDebugWithLevel.md | 55 + .../n_hooks_c__L499__NoteDebugWithLevelLn.md | 55 + .../functions/n_hooks_c__L520__NoteGetMs.md | 58 + .../functions/n_hooks_c__L528__NoteDelayMs.md | 54 + .../functions/n_hooks_c__L544__n_htoa32.md | 58 + .../functions/n_hooks_c__L561__n_ptoa32.md | 60 + .../functions/n_hooks_c__L569__NoteMalloc.md | 59 + .../functions/n_hooks_c__L595__NoteFree.md | 58 + .../functions/n_hooks_c__L616__NoteLockI2C.md | 59 + .../n_hooks_c__L628__NoteUnlockI2C.md | 59 + .../n_hooks_c__L643__noteHeartbeat.md | 54 + .../n_hooks_c__L657__noteLockNote.md | 75 + .../n_hooks_c__L669__noteUnlockNote.md | 54 + .../n_hooks_c__L681__noteTransactionStart.md | 54 + .../n_hooks_c__L694__noteTransactionStop.md | 54 + .../n_hooks_c__L701__NoteGetFnDebugOutput.md | 59 + .../n_hooks_c__L714__NoteGetFnHeartbeat.md | 59 + .../n_hooks_c__L725__NoteGetFnTransaction.md | 61 + .../n_hooks_c__L737__NoteGetFnMutex.md | 59 + .../n_hooks_c__L754__NoteGetFnI2CMutex.md | 59 + .../n_hooks_c__L764__NoteGetFnNoteMutex.md | 59 + .../functions/n_hooks_c__L774__NoteGetFn.md | 61 + .../n_hooks_c__L793__NoteGetFnSerial.md | 61 + .../n_hooks_c__L812__NoteGetFnI2C.md | 61 + .../n_hooks_c__L835__NoteGetI2CAddress.md | 59 + .../n_hooks_c__L842__NoteGetI2CMtu.md | 59 + .../n_hooks_c__L855__noteSerialReset.md | 69 + .../n_hooks_c__L871__noteSerialTransmit.md | 59 + .../n_hooks_c__L887__noteSerialAvailable.md | 59 + .../n_hooks_c__L902__noteSerialReceive.md | 59 + .../n_hooks_c__L916__noteI2CReset.md | 64 + .../n_hooks_c__L934__noteI2CTransmit.md | 66 + .../n_hooks_c__L955__noteI2CReceive.md | 59 + .../n_hooks_c__L969__NoteI2CAddress.md | 59 + .../n_hooks_c__L977__NoteSetI2CAddress.md | 59 + .../n_hooks_c__L982__NoteSetI2CMtu.md | 59 + .../functions/n_hooks_c__L994__NoteI2CMax.md | 66 + .../functions/n_i2c_c__L195__i2cNoteReset.md | 83 + .../functions/n_i2c_c__L30__delayIO.md | 63 + .../n_i2c_c__L338__i2cNoteChunkedReceive.md | 66 + .../n_i2c_c__L365__i2cChunkedReceive.md | 75 + .../n_i2c_c__L456__i2cNoteChunkedTransmit.md | 66 + .../n_i2c_c__L475__i2cChunkedTransmit.md | 71 + .../n_i2c_c__L48__i2cNoteQueryLength.md | 73 + .../n_i2c_c__L87__i2cNoteTransaction.md | 75 + .../functions/n_md5_c__L143__NoteMD5Final.md | 66 + .../n_md5_c__L201__NoteMD5Transform.md | 68 + .../functions/n_md5_c__L292__NoteMD5Hash.md | 67 + .../n_md5_c__L301__NoteMD5HashString.md | 70 + .../n_md5_c__L314__NoteMD5HashToString.md | 61 + .../functions/n_md5_c__L42__getu32.md | 61 + .../functions/n_md5_c__L48__putu32.md | 62 + .../functions/n_md5_c__L57__n_htoa8.md | 62 + .../functions/n_md5_c__L78__NoteMD5Init.md | 62 + .../functions/n_md5_c__L95__NoteMD5Update.md | 65 + .../functions/n_printf_c__L35__NoteDebugf.md | 60 + .../functions/n_printf_c__L60__NotePrintf.md | 60 + .../functions/n_request_c__L1019__crc32.md | 54 + .../functions/n_request_c__L1047__crcAdd.md | 58 + .../functions/n_request_c__L1113__crcError.md | 56 + ...117__noteTransaction_calculateTimeoutMs.md | 58 + ...st_c__L153__NoteSuspendTransactionDebug.md | 62 + ...est_c__L161__NoteResumeTransactionDebug.md | 62 + ..._request_c__L166__NoteSetRequestTimeout.md | 59 + .../n_request_c__L173__NoteNewRequest.md | 57 + .../n_request_c__L182__NoteNewCommand.md | 66 + .../n_request_c__L191__NoteRequest.md | 61 + ...n_request_c__L205__NoteRequestWithRetry.md | 62 + .../n_request_c__L220__NoteRequestResponse.md | 62 + ...t_c__L234__NoteRequestResponseWithRetry.md | 70 + ...equest_c__L279__NoteRequestResponseJSON.md | 80 + .../n_request_c__L411__NoteTransaction.md | 59 + ...uest_c__L428__noteTransactionShouldLock.md | 92 + .../functions/n_request_c__L55__errDoc.md | 60 + .../n_request_c__L756__NoteResetRequired.md | 54 + .../functions/n_request_c__L766__NoteReset.md | 69 + .../n_request_c__L786__notePingDrainInput.md | 73 + ...uest_c__L80__noteResumeTransactionDebug.md | 67 + .../functions/n_request_c__L841__NotePing.md | 78 + ...est_c__L88__noteSuspendTransactionDebug.md | 66 + .../n_request_c__L940__NoteErrorContains.md | 54 + .../n_request_c__L945__NoteErrorClean.md | 59 + .../functions/n_request_c__L975__n_atoh.md | 54 + .../n_serial_c__L153__serialNoteReset.md | 73 + .../n_serial_c__L237__serialChunkedReceive.md | 75 + ...n_serial_c__L303__serialChunkedTransmit.md | 68 + .../n_serial_c__L35__serialNoteTransaction.md | 75 + .../functions/n_str_c__L31__strlcpy.md | 70 + .../functions/n_str_c__L69__strlcat.md | 67 + .../n_ua_c__L191__NoteSetUserAgent.md | 59 + .../n_ua_c__L201__NoteSetUserAgentOS.md | 59 + .../n_ua_c__L214__NoteSetUserAgentCPU.md | 59 + .../n_ua_c__L80__NoteUserAgentUpdate.md | 54 + .../functions/n_ua_c__L95__NoteUserAgent.md | 59 + ...fter_upload_py__L14__wait_for_test_port.md | 59 + ...inary_after_upload_py__L30__start_tests.md | 59 + ...nary_after_upload_py__L36__after_upload.md | 59 + ...otecardBinary_cpp__L13__BinaryGenerator.md | 59 + ...rdComms_cpp__L106__readDataUntilTimeout.md | 59 + ...Comms_cpp__L11__set_aux_serial_baudrate.md | 67 + ...cpp__L52__initialize_notecard_interface.md | 59 + ...p__L79__uninitialize_notecard_interface.md | 59 + ...itl_card_binary_src_main_cpp__L14__loop.md | 59 + ...itl_card_binary_src_main_cpp__L4__setup.md | 59 + ..._card_binary_src_main_cpp__L9__showHelp.md | 59 + ..._L13__testsuite_binary_generators_setUp.md | 59 + ...7__testsuite_binary_generators_tearDown.md | 59 + ...inary_generators_cpp__L23__check_binary.md | 59 + ...ors_cpp__L41__check_content_fixed_value.md | 59 + ...t_test_binary_generators_cpp__L53__TEST.md | 60 + ...t_test_binary_generators_cpp__L64__TEST.md | 59 + ...s_cpp__L84__testsuite_binary_generators.md | 59 + ..._L8__testsuite_binary_generators_filter.md | 59 + ...rd_binary_cpp__L121__binaryTransferTest.md | 60 + ...p__L308__get_expected_max_binary_length.md | 63 + ..._cpp__L30__testsuite_card_binary_filter.md | 59 + ...y_cpp__L338__test_get_max_binary_length.md | 68 + ...y_cpp__L35__testsuite_card_binary_setUp.md | 59 + ..._binary_cpp__L370__base_test_max_length.md | 59 + ...y_test_test_card_binary_cpp__L388__TEST.md | 59 + ...y_test_test_card_binary_cpp__L393__TEST.md | 59 + ...y_test_test_card_binary_cpp__L398__TEST.md | 60 + ...pp__L40__testsuite_card_binary_tearDown.md | 59 + ...ary_cpp__L429__waitForNotecardConnected.md | 59 + ...binary_cpp__L439__testsuite_card_binary.md | 63 + ...ry_cpp__L44__assert_initialize_notecard.md | 59 + ..._binary_cpp__L53__AssertNoteBinaryReset.md | 59 + ...test_main_cpp__L20__waitForStartCommand.md | 59 + ...d_binary_test_test_main_cpp__L41__setup.md | 60 + ...rd_binary_test_test_main_cpp__L60__loop.md | 59 + ...y_test_test_main_cpp__L8__runUnityTests.md | 60 + ...ry_test_test_unity_util_cpp__L15__setUp.md | 59 + ...test_test_unity_util_cpp__L22__tearDown.md | 59 + ...st_test_unity_util_cpp__L29__filterTest.md | 59 + ...st_unity_util_cpp__L8__test_suite_hooks.md | 59 + ...__WebRequestHandler_log_request_headers.md | 59 + ...s_md5srv_py__L126__WebRequestHandler_do.md | 59 + .../test_hitl_scripts_md5srv_py__L13__log.md | 59 + ..._L140__WebRequestHandler_validate_token.md | 59 + ...srv_py__L148__WebRequestHandler_get_md5.md | 59 + ...__L163__WebRequestHandler_chunk_content.md | 59 + ...66__WebRequestHandler_md5_for_directory.md | 59 + ...y__L189__WebRequestHandler_delete_files.md | 59 + ...6__WebRequestHandler_write_file_or_note.md | 59 + ..._py__L202__WebRequestHandler_write_note.md | 59 + ...l_scripts_md5srv_py__L20__log_sensitive.md | 59 + ..._py__L227__WebRequestHandler_write_file.md | 59 + ..._py__L235__WebRequestHandler__read_file.md | 59 + ...py__L243__WebRequestHandler__chunk_file.md | 59 + ...py__L251__WebRequestHandler__write_file.md | 59 + ...ts_md5srv_py__L27__HTTPException___init.md | 59 + ...86__WebRequestHandler_validate_url_path.md | 59 + ...__L290__WebRequestHandler_validate_path.md | 59 + ...y__L297__WebRequestHandler_dump_request.md | 59 + ...test_hitl_scripts_md5srv_py__L306__main.md | 59 + ...rv_py__L315__main_build_request_handler.md | 59 + ...d5srv_py__L49__WebRequestHandler___init.md | 59 + ...s_md5srv_py__L57__WebRequestHandler_url.md | 59 + ...v_py__L61__WebRequestHandler_query_data.md | 59 + ...rv_py__L65__WebRequestHandler_post_data.md | 59 + ...rv_py__L80__WebRequestHandler_form_data.md | 59 + ...d5srv_py__L83__WebRequestHandler_do_GET.md | 59 + ...rv_py__L86__WebRequestHandler_do_DELETE.md | 59 + ...5srv_py__L89__WebRequestHandler_do_POST.md | 59 + ...d5srv_py__L92__WebRequestHandler_do_PUT.md | 59 + ..._py__L95__WebRequestHandler_send_status.md | 59 + .../test_include_fff_h__L1013__FUNCNAME.md | 64 + .../test_include_fff_h__L1096__FUNCNAME.md | 64 + .../test_include_fff_h__L1182__FUNCNAME.md | 64 + .../test_include_fff_h__L122__reset.md | 59 + .../test_include_fff_h__L1271__FUNCNAME.md | 64 + .../test_include_fff_h__L1363__FUNCNAME.md | 64 + .../test_include_fff_h__L1458__FUNCNAME.md | 64 + .../test_include_fff_h__L1556__FUNCNAME.md | 64 + .../test_include_fff_h__L1638__FUNCNAME.md | 64 + .../test_include_fff_h__L166__FUNCNAME.md | 62 + .../test_include_fff_h__L1690__FUNCNAME.md | 66 + .../test_include_fff_h__L1745__FUNCNAME.md | 66 + .../test_include_fff_h__L1803__FUNCNAME.md | 66 + .../test_include_fff_h__L1864__FUNCNAME.md | 66 + .../test_include_fff_h__L1928__FUNCNAME.md | 66 + .../test_include_fff_h__L1995__FUNCNAME.md | 66 + .../test_include_fff_h__L2065__FUNCNAME.md | 66 + .../test_include_fff_h__L207__FUNCNAME.md | 64 + .../test_include_fff_h__L2138__FUNCNAME.md | 66 + .../test_include_fff_h__L2214__FUNCNAME.md | 66 + .../test_include_fff_h__L2293__FUNCNAME.md | 66 + .../test_include_fff_h__L2375__FUNCNAME.md | 66 + .../test_include_fff_h__L2460__FUNCNAME.md | 66 + .../test_include_fff_h__L251__FUNCNAME.md | 64 + .../test_include_fff_h__L2548__FUNCNAME.md | 66 + .../test_include_fff_h__L2639__FUNCNAME.md | 66 + .../test_include_fff_h__L2733__FUNCNAME.md | 66 + .../test_include_fff_h__L2830__FUNCNAME.md | 66 + .../test_include_fff_h__L2930__FUNCNAME.md | 66 + .../test_include_fff_h__L298__FUNCNAME.md | 64 + .../test_include_fff_h__L3033__FUNCNAME.md | 66 + .../test_include_fff_h__L3139__FUNCNAME.md | 66 + .../test_include_fff_h__L3248__FUNCNAME.md | 66 + .../test_include_fff_h__L3338__FUNCNAME.md | 64 + .../test_include_fff_h__L3391__FUNCNAME.md | 64 + .../test_include_fff_h__L3447__FUNCNAME.md | 64 + .../test_include_fff_h__L348__FUNCNAME.md | 64 + .../test_include_fff_h__L3506__FUNCNAME.md | 64 + .../test_include_fff_h__L3568__FUNCNAME.md | 64 + .../test_include_fff_h__L3633__FUNCNAME.md | 64 + .../test_include_fff_h__L3701__FUNCNAME.md | 64 + .../test_include_fff_h__L3772__FUNCNAME.md | 64 + .../test_include_fff_h__L3846__FUNCNAME.md | 64 + .../test_include_fff_h__L3923__FUNCNAME.md | 64 + .../test_include_fff_h__L4003__FUNCNAME.md | 64 + .../test_include_fff_h__L401__FUNCNAME.md | 64 + .../test_include_fff_h__L4086__FUNCNAME.md | 64 + .../test_include_fff_h__L4172__FUNCNAME.md | 64 + .../test_include_fff_h__L4261__FUNCNAME.md | 64 + .../test_include_fff_h__L4353__FUNCNAME.md | 64 + .../test_include_fff_h__L4448__FUNCNAME.md | 64 + .../test_include_fff_h__L4546__FUNCNAME.md | 64 + .../test_include_fff_h__L457__FUNCNAME.md | 64 + .../test_include_fff_h__L4647__FUNCNAME.md | 64 + .../test_include_fff_h__L4751__FUNCNAME.md | 64 + .../test_include_fff_h__L4841__FUNCNAME.md | 66 + .../test_include_fff_h__L4905__FUNCNAME.md | 66 + .../test_include_fff_h__L4972__FUNCNAME.md | 66 + .../test_include_fff_h__L5042__FUNCNAME.md | 66 + .../test_include_fff_h__L5115__FUNCNAME.md | 66 + .../test_include_fff_h__L516__FUNCNAME.md | 64 + .../test_include_fff_h__L5191__FUNCNAME.md | 66 + .../test_include_fff_h__L5270__FUNCNAME.md | 66 + .../test_include_fff_h__L5352__FUNCNAME.md | 66 + .../test_include_fff_h__L5437__FUNCNAME.md | 66 + .../test_include_fff_h__L5525__FUNCNAME.md | 66 + .../test_include_fff_h__L5616__FUNCNAME.md | 66 + .../test_include_fff_h__L5710__FUNCNAME.md | 66 + .../test_include_fff_h__L578__FUNCNAME.md | 64 + .../test_include_fff_h__L5807__FUNCNAME.md | 66 + .../test_include_fff_h__L5907__FUNCNAME.md | 66 + .../test_include_fff_h__L6010__FUNCNAME.md | 66 + .../test_include_fff_h__L6116__FUNCNAME.md | 66 + .../test_include_fff_h__L6225__FUNCNAME.md | 66 + .../test_include_fff_h__L6337__FUNCNAME.md | 66 + .../test_include_fff_h__L643__FUNCNAME.md | 64 + .../test_include_fff_h__L6452__FUNCNAME.md | 66 + .../test_include_fff_h__L711__FUNCNAME.md | 64 + .../test_include_fff_h__L782__FUNCNAME.md | 64 + .../test_include_fff_h__L856__FUNCNAME.md | 64 + .../test_include_fff_h__L933__FUNCNAME.md | 64 + ...e_time_mocks_h__L16__NoteGetMsIncrement.md | 59 + .../test_integration_link_test_c__L9__main.md | 63 + ...teResponseError_test_cpp__L26__SCENARIO.md | 62 + ...gent_test_cpp__L29__NoteUserAgentUpdate.md | 59 + .../artifacts/macros/n_atof_c__L29__const.md | 59 + .../artifacts/macros/n_atof_c__L36__TRUE.md | 59 + .../artifacts/macros/n_atof_c__L37__FALSE.md | 59 + .../artifacts/macros/n_atof_c__L40__NULL.md | 59 + .../macros/n_atof_c__L43__MAX_EXPONENT.md | 59 + .../macros/n_cjson_c__L247__can_read.md | 54 + .../n_cjson_c__L249__can_access_at_index.md | 54 + ...n_cjson_c__L250__cannot_access_at_index.md | 55 + .../n_cjson_c__L252__buffer_at_offset.md | 54 + .../macros/n_cjson_c__L80__PRINT_TAB_CHARS.md | 59 + .../macros/n_cjson_c__L981__cjson_min.md | 53 + .../macros/n_cjson_h__L134__N_CJSON_PUBLIC.md | 59 + .../macros/n_cjson_h__L136__N_CJSON_PUBLIC.md | 59 + .../macros/n_cjson_h__L138__N_CJSON_PUBLIC.md | 59 + .../macros/n_cjson_h__L142__N_CJSON_PUBLIC.md | 59 + .../macros/n_cjson_h__L144__N_CJSON_PUBLIC.md | 59 + .../n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md | 59 + .../n_cjson_h__L209__JGetObjectItems.md | 60 + .../n_cjson_h__L310__JConvertToJSONString.md | 60 + ...n_cjson_h__L311__JConvertFromJSONString.md | 60 + .../macros/n_cjson_h__L314__JSetIntValue.md | 59 + .../n_cjson_h__L317__JSetNumberValue.md | 60 + .../macros/n_cjson_h__L320__JArrayForEach.md | 74 + .../macros/n_cjson_h__L322__JObjectForEach.md | 60 + .../n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md | 59 + .../n_cjson_h__L53__N_CJSON_VERSION_MINOR.md | 59 + .../n_cjson_h__L54__N_CJSON_VERSION_PATCH.md | 59 + .../macros/n_cjson_h__L59__JInvalid.md | 59 + .../macros/n_cjson_h__L60__JFalse.md | 59 + .../artifacts/macros/n_cjson_h__L61__JTrue.md | 59 + .../artifacts/macros/n_cjson_h__L62__JNULL.md | 59 + .../macros/n_cjson_h__L63__JNumber.md | 59 + .../macros/n_cjson_h__L64__JString.md | 59 + .../macros/n_cjson_h__L65__JArray.md | 59 + .../macros/n_cjson_h__L66__JObject.md | 59 + .../artifacts/macros/n_cjson_h__L67__JRaw.md | 59 + .../macros/n_cjson_h__L69__JIsReference.md | 59 + .../macros/n_cjson_h__L70__JStringIsConst.md | 59 + .../macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md | 59 + .../n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md | 59 + .../macros/n_ftoa_c__L26__PRINT_F_QUOTE.md | 59 + .../macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md | 59 + .../macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md | 59 + .../macros/n_ftoa_c__L29__PRINT_F_NUM.md | 59 + .../macros/n_ftoa_c__L30__PRINT_F_PLUS.md | 59 + .../macros/n_ftoa_c__L31__PRINT_F_MINUS.md | 59 + .../macros/n_ftoa_c__L32__PRINT_F_ZERO.md | 59 + .../macros/n_ftoa_c__L33__PRINT_F_SPACE.md | 59 + .../macros/n_ftoa_c__L34__PRINT_F_UP.md | 59 + .../macros/n_ftoa_c__L45__OUTCHAR.md | 53 + .../macros/n_helpers_c__L71__daysByMonth.md | 61 + .../n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md | 59 + .../n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md | 55 + .../macros/n_lib_h__L111__ALLOC_CHUNK.md | 55 + .../macros/n_lib_h__L113__ALLOC_CHUNK.md | 55 + .../macros/n_lib_h__L174__c_bad_len.md | 55 + .../macros/n_lib_h__L177__c_badbinerr_len.md | 55 + .../macros/n_lib_h__L180__c_cmd_len.md | 55 + .../macros/n_lib_h__L183__c_err_len.md | 55 + .../macros/n_lib_h__L186__c_false_len.md | 55 + .../macros/n_lib_h__L189__c_heartbeat_len.md | 55 + .../macros/n_lib_h__L192__c_iobad_len.md | 55 + .../macros/n_lib_h__L195__c_ioerr_len.md | 55 + .../macros/n_lib_h__L198__c_iotimeout_len.md | 55 + .../macros/n_lib_h__L201__c_mem_len.md | 55 + .../macros/n_lib_h__L204__c_newline_len.md | 55 + .../macros/n_lib_h__L207__c_null_len.md | 55 + .../macros/n_lib_h__L210__c_nullstring_len.md | 55 + .../macros/n_lib_h__L213__c_req_len.md | 55 + .../macros/n_lib_h__L216__c_status_len.md | 55 + .../macros/n_lib_h__L219__c_true_len.md | 55 + .../n_lib_h__L222__c_unsupported_len.md | 55 + .../macros/n_lib_h__L226__LockNote.md | 70 + .../macros/n_lib_h__L227__UnlockNote.md | 55 + .../macros/n_lib_h__L228__TransactionStart.md | 55 + .../macros/n_lib_h__L229__TransactionStop.md | 55 + .../macros/n_lib_h__L230__SerialReset.md | 67 + .../macros/n_lib_h__L231__SerialTransmit.md | 59 + .../macros/n_lib_h__L232__SerialAvailable.md | 59 + .../macros/n_lib_h__L233__SerialReceive.md | 59 + .../macros/n_lib_h__L234__I2CReset.md | 64 + .../macros/n_lib_h__L235__I2CTransmit.md | 63 + .../macros/n_lib_h__L236__I2CReceive.md | 59 + .../artifacts/macros/n_lib_h__L237__Reset.md | 55 + .../macros/n_lib_h__L238__Transaction.md | 55 + .../macros/n_lib_h__L239__ChunkedReceive.md | 55 + .../macros/n_lib_h__L240__ChunkedTransmit.md | 66 + .../artifacts/macros/n_lib_h__L241__Malloc.md | 60 + .../artifacts/macros/n_lib_h__L242__Free.md | 61 + .../artifacts/macros/n_lib_h__L243__GetMs.md | 57 + .../macros/n_lib_h__L244__DelayMs.md | 55 + .../macros/n_lib_h__L245__LockI2C.md | 59 + .../macros/n_lib_h__L246__UnlockI2C.md | 59 + .../macros/n_lib_h__L247__I2CAddress.md | 59 + .../artifacts/macros/n_lib_h__L248__I2CMax.md | 64 + .../artifacts/macros/n_lib_h__L256__Debug.md | 55 + .../macros/n_lib_h__L257__Debugln.md | 59 + .../macros/n_lib_h__L258__DebugIntln.md | 55 + .../macros/n_lib_h__L259__DebugWithLevel.md | 55 + .../macros/n_lib_h__L260__DebugWithLevelLn.md | 55 + .../macros/n_lib_h__L35__NOTE_C_STATIC.md | 55 + ...L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md | 55 + ...L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md | 55 + ...__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md | 55 + ..._L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md | 55 + ...h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md | 55 + ...b_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md | 55 + ...80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md | 55 + ...6__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md | 55 + .../n_lib_h__L92__CARD_RESET_DRAIN_MS.md | 55 + ...ib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md | 55 + .../artifacts/macros/n_md5_c__L187__F1.md | 53 + .../artifacts/macros/n_md5_c__L188__F2.md | 53 + .../artifacts/macros/n_md5_c__L189__F3.md | 53 + .../artifacts/macros/n_md5_c__L190__F4.md | 53 + .../macros/n_md5_c__L193__MD5STEP.md | 60 + .../n_request_c__L31__CRC_FIELD_LENGTH.md | 55 + ...n_request_c__L32__CRC_FIELD_NAME_OFFSET.md | 54 + .../n_request_c__L33__CRC_FIELD_NAME_TEST.md | 55 + .../n_request_c__L34__ERR_FIELD_NAME_TEST.md | 54 + .../artifacts/macros/n_ua_c__L107__PLUS.md | 55 + .../artifacts/macros/n_ua_c__L109__PLUS.md | 55 + .../macros/note_h__L1006__NOTE_C_LOG_INFO.md | 56 + .../macros/note_h__L1014__NOTE_C_LOG_DEBUG.md | 56 + ...note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md | 55 + .../macros/note_h__L1028__NOTE_C_LOG_LEVEL.md | 55 + .../note_h__L1400__JTYPE_NOT_PRESENT.md | 59 + .../macros/note_h__L1401__JTYPE_BOOL_TRUE.md | 59 + .../macros/note_h__L1402__JTYPE_BOOL_FALSE.md | 59 + .../macros/note_h__L1403__JTYPE_BOOL.md | 60 + .../macros/note_h__L1404__JTYPE_NULL.md | 59 + .../note_h__L1405__JTYPE_NUMBER_ZERO.md | 59 + .../macros/note_h__L1406__JTYPE_NUMBER.md | 59 + .../note_h__L1407__JTYPE_STRING_BLANK.md | 59 + .../note_h__L1408__JTYPE_STRING_ZERO.md | 59 + .../note_h__L1409__JTYPE_STRING_NUMBER.md | 59 + .../note_h__L1410__JTYPE_STRING_BOOL_TRUE.md | 59 + .../note_h__L1411__JTYPE_STRING_BOOL_FALSE.md | 59 + .../macros/note_h__L1412__JTYPE_STRING.md | 59 + .../macros/note_h__L1413__JTYPE_OBJECT.md | 59 + .../macros/note_h__L1414__JTYPE_ARRAY.md | 59 + .../note_h__L1440__JGetObjectItemName.md | 55 + .../macros/note_h__L1443__JNTOA_PRECISION.md | 55 + .../macros/note_h__L1444__JNTOA_MAX.md | 55 + .../note_h__L1528__NOTE_MD5_HASH_SIZE.md | 55 + ...ote_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md | 55 + .../macros/note_h__L19__NOTE_C_DEPRECATED.md | 55 + .../macros/note_h__L2033__NoteSend.md | 60 + .../macros/note_h__L2102__NP_SEGTYPE_LEN.md | 55 + .../macros/note_h__L2103__NP_SEGLEN_LEN.md | 55 + .../macros/note_h__L2104__NP_SEGHDR_LEN.md | 55 + .../artifacts/macros/note_h__L2182__TBOOL.md | 55 + .../artifacts/macros/note_h__L2183__TINT8.md | 55 + .../artifacts/macros/note_h__L2184__TINT16.md | 55 + .../artifacts/macros/note_h__L2185__TINT24.md | 55 + .../artifacts/macros/note_h__L2186__TINT32.md | 55 + .../artifacts/macros/note_h__L2187__TINT64.md | 55 + .../artifacts/macros/note_h__L2188__TUINT8.md | 55 + .../macros/note_h__L2189__TUINT16.md | 55 + .../macros/note_h__L2190__TUINT24.md | 55 + .../macros/note_h__L2191__TUINT32.md | 55 + .../macros/note_h__L2192__TFLOAT16.md | 55 + .../macros/note_h__L2193__TFLOAT32.md | 55 + .../macros/note_h__L2194__TFLOAT64.md | 55 + .../macros/note_h__L2195__TSTRING.md | 55 + .../macros/note_h__L2196__TSTRINGV.md | 55 + .../macros/note_h__L21__NOTE_C_DEPRECATED.md | 55 + .../macros/note_h__L322__NoteNewBody.md | 55 + .../note_h__L323__NoteAddBodyToObject.md | 55 + .../macros/note_h__L324__NoteGetBody.md | 55 + .../macros/note_h__L39__NOTE_C_STRINGIZE.md | 55 + .../macros/note_h__L40__NOTE_C_STRINGIZE.md | 64 + .../note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md | 55 + .../note_h__L411__SYNCSTATUS_LEVEL_MINOR.md | 55 + ...note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md | 55 + ...e_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md | 55 + .../note_h__L414__SYNCSTATUS_LEVEL_ALL.md | 55 + .../note_h__L42__NOTE_C_VERSION_MAJOR.md | 55 + .../note_h__L43__NOTE_C_VERSION_MINOR.md | 55 + .../note_h__L44__NOTE_C_VERSION_PATCH.md | 55 + .../macros/note_h__L46__NOTE_C_VERSION.md | 55 + .../macros/note_h__L479__NoteResponseError.md | 55 + ...note_h__L480__NoteResponseErrorContains.md | 55 + .../note_h__L486__NoteDeleteResponse.md | 67 + .../artifacts/macros/note_h__L75__ERRSTR.md | 70 + .../macros/note_h__L76__NOTE_C_LOG_DEBUG.md | 54 + .../artifacts/macros/note_h__L78__ERRSTR.md | 70 + .../note_h__L829__NOTE_I2C_ADDR_DEFAULT.md | 55 + .../note_h__L833__NOTE_I2C_HEADER_SIZE.md | 55 + .../macros/note_h__L843__NOTE_I2C_MAX_MAX.md | 55 + .../macros/note_h__L845__NOTE_I2C_MAX_MAX.md | 55 + .../macros/note_h__L849__NOTE_I2C_MTU_MAX.md | 55 + .../note_h__L866__NOTE_I2C_MAX_DEFAULT.md | 55 + .../note_h__L869__NOTE_I2C_MAX_DEFAULT.md | 55 + .../note_h__L876__NOTE_I2C_MAX_DEFAULT.md | 55 + .../note_h__L880__NOTE_I2C_MTU_DEFAULT.md | 55 + .../macros/note_h__L94__JINTEGER_MIN.md | 55 + .../note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md | 55 + .../note_h__L954__NOTE_C_LOG_LEVEL_WARN.md | 55 + .../note_h__L955__NOTE_C_LOG_LEVEL_INFO.md | 55 + .../note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md | 55 + .../macros/note_h__L95__JINTEGER_MAX.md | 55 + .../note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md | 55 + .../macros/note_h__L990__NOTE_C_LOG_ERROR.md | 76 + .../macros/note_h__L998__NOTE_C_LOG_WARN.md | 56 + ...binary_NotecardBinary_h__L15__TINY_SIZE.md | 59 + ...y_NotecardBinary_h__L16__TINY_SIZE_NAME.md | 59 + ...inary_NotecardBinary_h__L17__SMALL_SIZE.md | 59 + ..._NotecardBinary_h__L18__SMALL_SIZE_NAME.md | 59 + ...nary_NotecardBinary_h__L19__MEDIUM_SIZE.md | 59 + ...NotecardBinary_h__L20__MEDIUM_SIZE_NAME.md | 59 + ...inary_NotecardBinary_h__L21__LARGE_SIZE.md | 59 + ..._NotecardBinary_h__L22__LARGE_SIZE_NAME.md | 59 + ...nary_NotecardBinary_h__L23__XLARGE_SIZE.md | 59 + ...NotecardBinary_h__L24__XLARGE_SIZE_NAME.md | 59 + ...ary_NotecardBinary_h__L320__PRODUCT_UID.md | 59 + ...ary_NotecardBinary_h__L325__PRODUCT_UID.md | 59 + ...rdBinary_h__L785__NOT_CONNECTED_TIMEOUT.md | 59 + ...y_h__L789__MIME_APPLICATION_OCTETSTREAM.md | 59 + ...tecardComms_cpp__L8__FEATHER_AUX_EN_PIN.md | 59 + ...rdComms_h__L13__NOTECARD_IF_SERIAL_PORT.md | 59 + ...mms_h__L17__NOTECARD_IF_SERIAL_BAUDRATE.md | 59 + ...mms_h__L21__NOTECARD_IF_AUX_SERIAL_PORT.md | 59 + ...h__L25__NOTECARD_IF_AUX_SERIAL_BAUDRATE.md | 59 + ...rdComms_h__L29__NOTECARD_IF_I2C_ADDRESS.md | 59 + ..._binary_NotecardComms_h__L34__dbgSerial.md | 59 + ..._binary_NotecardComms_h__L36__dbgSerial.md | 59 + ...ary_cpp__L15__NOTEHUB_PROXY_ROUTE_ALIAS.md | 59 + ...st_test_card_binary_cpp__L216__RUN_SIZE.md | 59 + ...st_card_binary_cpp__L227__RUN_ALL_SIZES.md | 59 + ...ary_cpp__L236__RUN_ALL_SIZES_ALL_IFACES.md | 59 + ...pp__L242__RUN_AUX_SERIAL_BAUDRATE_CHUNK.md | 59 + ...nary_cpp__L250__RUN_AUX_SERIAL_BAUDRATE.md | 59 + ...p__L258__RUN_AUX_SERIAL_ALL_CHUNK_SIZES.md | 59 + ...L265__RUN_AUX_SERIAL_SELECT_CHUNK_SIZES.md | 59 + ...cpp__L271__RUN_AUX_SERIAL_ALL_BAUDRATES.md | 59 + ...__L279__RUN_AUX_SERIAL_SELECT_BAUDRATES.md | 59 + ...inary_cpp__L27__TEST_CARD_BINARY_FILTER.md | 59 + ...cpp__L285__TEST_AUX_SERIAL_EXHAUSTIVELY.md | 59 + ...ary_cpp__L289__RUN_AUX_SERIAL_BAUDRATES.md | 59 + ...ary_cpp__L291__RUN_AUX_SERIAL_BAUDRATES.md | 59 + ..._RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES.md | 59 + ...ary_cpp__L404__RUN_AUX_SERIAL_ALL_SIZES.md | 59 + ..._card_binary_cpp__L416__RUN_SMOKE_TESTS.md | 59 + ..._cpp__L8__TEST_CARD_BINARY_EXHAUSTIVELY.md | 59 + ...inary_test_test_unity_util_h__L11__TEST.md | 59 + ...test_test_unity_util_h__L19__TEST_SUITE.md | 59 + ...test_test_unity_util_h__L29__RUN_FILTER.md | 59 + ...e_fff_h__L1011__DEFINE_FAKE_VOID_FUNC14.md | 59 + ...include_fff_h__L101__RETURN_FAKE_RESULT.md | 59 + ..._include_fff_h__L1063__FAKE_VOID_FUNC14.md | 59 + ..._fff_h__L1068__DECLARE_FAKE_VOID_FUNC15.md | 59 + ...e_fff_h__L1094__DEFINE_FAKE_VOID_FUNC15.md | 59 + ..._include_fff_h__L1148__FAKE_VOID_FUNC15.md | 59 + .../test_include_fff_h__L114__FFF_EXTERN_C.md | 59 + ..._fff_h__L1153__DECLARE_FAKE_VOID_FUNC16.md | 59 + ...t_include_fff_h__L115__FFF_END_EXTERN_C.md | 59 + .../test_include_fff_h__L117__FFF_EXTERN_C.md | 59 + ...e_fff_h__L1180__DEFINE_FAKE_VOID_FUNC16.md | 59 + ...t_include_fff_h__L118__FFF_END_EXTERN_C.md | 59 + ...lude_fff_h__L121__DEFINE_RESET_FUNCTION.md | 59 + ..._include_fff_h__L1236__FAKE_VOID_FUNC16.md | 59 + ..._fff_h__L1241__DECLARE_FAKE_VOID_FUNC17.md | 59 + ...e_fff_h__L1269__DEFINE_FAKE_VOID_FUNC17.md | 59 + ..._include_fff_h__L1327__FAKE_VOID_FUNC17.md | 59 + ..._fff_h__L1332__DECLARE_FAKE_VOID_FUNC18.md | 59 + ...e_fff_h__L1361__DEFINE_FAKE_VOID_FUNC18.md | 59 + ...include_fff_h__L140__DEFINE_FFF_GLOBALS.md | 59 + ..._include_fff_h__L1421__FAKE_VOID_FUNC18.md | 59 + ..._fff_h__L1426__DECLARE_FAKE_VOID_FUNC19.md | 59 + ...e_fff_h__L1456__DEFINE_FAKE_VOID_FUNC19.md | 59 + ..._include_fff_h__L145__FFF_RESET_HISTORY.md | 59 + ...test_include_fff_h__L149__REGISTER_CALL.md | 59 + ..._include_fff_h__L1518__FAKE_VOID_FUNC19.md | 59 + ..._fff_h__L1523__DECLARE_FAKE_VOID_FUNC20.md | 59 + ...de_fff_h__L153__DECLARE_FAKE_VOID_FUNC0.md | 59 + ...e_fff_h__L1554__DEFINE_FAKE_VOID_FUNC20.md | 59 + ..._include_fff_h__L1618__FAKE_VOID_FUNC20.md | 59 + ..._fff_h__L1623__DECLARE_FAKE_VALUE_FUNC0.md | 59 + ...e_fff_h__L1636__DEFINE_FAKE_VALUE_FUNC0.md | 59 + ...ude_fff_h__L164__DEFINE_FAKE_VOID_FUNC0.md | 59 + ..._include_fff_h__L1669__FAKE_VALUE_FUNC0.md | 59 + ..._fff_h__L1674__DECLARE_FAKE_VALUE_FUNC1.md | 59 + ...e_fff_h__L1688__DEFINE_FAKE_VALUE_FUNC1.md | 59 + ..._include_fff_h__L1723__FAKE_VALUE_FUNC1.md | 59 + ..._fff_h__L1728__DECLARE_FAKE_VALUE_FUNC2.md | 59 + ...e_fff_h__L1743__DEFINE_FAKE_VALUE_FUNC2.md | 59 + ..._include_fff_h__L1780__FAKE_VALUE_FUNC2.md | 59 + ..._fff_h__L1785__DECLARE_FAKE_VALUE_FUNC3.md | 59 + ...e_fff_h__L1801__DEFINE_FAKE_VALUE_FUNC3.md | 59 + ..._include_fff_h__L1840__FAKE_VALUE_FUNC3.md | 59 + ..._fff_h__L1845__DECLARE_FAKE_VALUE_FUNC4.md | 59 + ...e_fff_h__L1862__DEFINE_FAKE_VALUE_FUNC4.md | 59 + ...st_include_fff_h__L188__FAKE_VOID_FUNC0.md | 59 + ..._include_fff_h__L1903__FAKE_VALUE_FUNC4.md | 59 + ..._fff_h__L1908__DECLARE_FAKE_VALUE_FUNC5.md | 59 + ...e_fff_h__L1926__DEFINE_FAKE_VALUE_FUNC5.md | 59 + ...de_fff_h__L193__DECLARE_FAKE_VOID_FUNC1.md | 59 + ..._include_fff_h__L1969__FAKE_VALUE_FUNC5.md | 59 + ..._fff_h__L1974__DECLARE_FAKE_VALUE_FUNC6.md | 59 + ...e_fff_h__L1993__DEFINE_FAKE_VALUE_FUNC6.md | 59 + ..._include_fff_h__L2038__FAKE_VALUE_FUNC6.md | 59 + ..._fff_h__L2043__DECLARE_FAKE_VALUE_FUNC7.md | 59 + ...ude_fff_h__L205__DEFINE_FAKE_VOID_FUNC1.md | 59 + ...e_fff_h__L2063__DEFINE_FAKE_VALUE_FUNC7.md | 59 + ..._include_fff_h__L2110__FAKE_VALUE_FUNC7.md | 59 + ..._fff_h__L2115__DECLARE_FAKE_VALUE_FUNC8.md | 59 + ...e_fff_h__L2136__DEFINE_FAKE_VALUE_FUNC8.md | 59 + ..._include_fff_h__L2185__FAKE_VALUE_FUNC8.md | 59 + ..._fff_h__L2190__DECLARE_FAKE_VALUE_FUNC9.md | 59 + ...e_fff_h__L2212__DEFINE_FAKE_VALUE_FUNC9.md | 59 + ..._include_fff_h__L2263__FAKE_VALUE_FUNC9.md | 59 + ...fff_h__L2268__DECLARE_FAKE_VALUE_FUNC10.md | 59 + ..._fff_h__L2291__DEFINE_FAKE_VALUE_FUNC10.md | 59 + ...st_include_fff_h__L231__FAKE_VOID_FUNC1.md | 59 + ...include_fff_h__L2344__FAKE_VALUE_FUNC10.md | 59 + ...fff_h__L2349__DECLARE_FAKE_VALUE_FUNC11.md | 59 + ...de_fff_h__L236__DECLARE_FAKE_VOID_FUNC2.md | 59 + ..._fff_h__L2373__DEFINE_FAKE_VALUE_FUNC11.md | 59 + ...include_fff_h__L2428__FAKE_VALUE_FUNC11.md | 59 + ...fff_h__L2433__DECLARE_FAKE_VALUE_FUNC12.md | 59 + ..._fff_h__L2458__DEFINE_FAKE_VALUE_FUNC12.md | 59 + ...ude_fff_h__L249__DEFINE_FAKE_VOID_FUNC2.md | 59 + ...include_fff_h__L2515__FAKE_VALUE_FUNC12.md | 59 + ...fff_h__L2520__DECLARE_FAKE_VALUE_FUNC13.md | 59 + ..._fff_h__L2546__DEFINE_FAKE_VALUE_FUNC13.md | 59 + ...include_fff_h__L2605__FAKE_VALUE_FUNC13.md | 59 + ...fff_h__L2610__DECLARE_FAKE_VALUE_FUNC14.md | 59 + ..._fff_h__L2637__DEFINE_FAKE_VALUE_FUNC14.md | 59 + ...include_fff_h__L2698__FAKE_VALUE_FUNC14.md | 59 + ...fff_h__L2703__DECLARE_FAKE_VALUE_FUNC15.md | 59 + ..._fff_h__L2731__DEFINE_FAKE_VALUE_FUNC15.md | 59 + ...st_include_fff_h__L277__FAKE_VOID_FUNC2.md | 59 + ...include_fff_h__L2794__FAKE_VALUE_FUNC15.md | 59 + ...fff_h__L2799__DECLARE_FAKE_VALUE_FUNC16.md | 59 + ..._fff_h__L2828__DEFINE_FAKE_VALUE_FUNC16.md | 59 + ...de_fff_h__L282__DECLARE_FAKE_VOID_FUNC3.md | 59 + ...include_fff_h__L2893__FAKE_VALUE_FUNC16.md | 59 + ...fff_h__L2898__DECLARE_FAKE_VALUE_FUNC17.md | 59 + ..._fff_h__L2928__DEFINE_FAKE_VALUE_FUNC17.md | 59 + ...ude_fff_h__L296__DEFINE_FAKE_VOID_FUNC3.md | 59 + ...include_fff_h__L2995__FAKE_VALUE_FUNC17.md | 59 + ...fff_h__L3000__DECLARE_FAKE_VALUE_FUNC18.md | 59 + ..._fff_h__L3031__DEFINE_FAKE_VALUE_FUNC18.md | 59 + ...include_fff_h__L3100__FAKE_VALUE_FUNC18.md | 59 + ...fff_h__L3105__DECLARE_FAKE_VALUE_FUNC19.md | 59 + ..._fff_h__L3137__DEFINE_FAKE_VALUE_FUNC19.md | 59 + ...include_fff_h__L3208__FAKE_VALUE_FUNC19.md | 59 + ...fff_h__L3213__DECLARE_FAKE_VALUE_FUNC20.md | 59 + ..._fff_h__L3246__DEFINE_FAKE_VALUE_FUNC20.md | 59 + ...st_include_fff_h__L326__FAKE_VOID_FUNC3.md | 59 + .../test_include_fff_h__L32__FFF_MAX_ARGS.md | 59 + ...include_fff_h__L3319__FAKE_VALUE_FUNC20.md | 59 + ...de_fff_h__L331__DECLARE_FAKE_VOID_FUNC4.md | 59 + ...__L3324__DECLARE_FAKE_VOID_FUNC2_VARARG.md | 59 + ...h__L3336__DEFINE_FAKE_VOID_FUNC2_VARARG.md | 59 + ...de_fff_h__L3371__FAKE_VOID_FUNC2_VARARG.md | 59 + ...__L3376__DECLARE_FAKE_VOID_FUNC3_VARARG.md | 59 + ...h__L3389__DEFINE_FAKE_VOID_FUNC3_VARARG.md | 59 + ...de_fff_h__L3426__FAKE_VOID_FUNC3_VARARG.md | 59 + ...__L3431__DECLARE_FAKE_VOID_FUNC4_VARARG.md | 59 + ...h__L3445__DEFINE_FAKE_VOID_FUNC4_VARARG.md | 59 + ...ude_fff_h__L346__DEFINE_FAKE_VOID_FUNC4.md | 59 + ...de_fff_h__L3484__FAKE_VOID_FUNC4_VARARG.md | 59 + ...__L3489__DECLARE_FAKE_VOID_FUNC5_VARARG.md | 59 + ...include_fff_h__L34__FFF_ARG_HISTORY_LEN.md | 59 + ...h__L3504__DEFINE_FAKE_VOID_FUNC5_VARARG.md | 59 + ...de_fff_h__L3545__FAKE_VOID_FUNC5_VARARG.md | 59 + ...__L3550__DECLARE_FAKE_VOID_FUNC6_VARARG.md | 59 + ...h__L3566__DEFINE_FAKE_VOID_FUNC6_VARARG.md | 59 + ...de_fff_h__L3609__FAKE_VOID_FUNC6_VARARG.md | 59 + ...__L3614__DECLARE_FAKE_VOID_FUNC7_VARARG.md | 59 + ...h__L3631__DEFINE_FAKE_VOID_FUNC7_VARARG.md | 59 + ...de_fff_h__L3676__FAKE_VOID_FUNC7_VARARG.md | 59 + ...__L3681__DECLARE_FAKE_VOID_FUNC8_VARARG.md | 59 + ...h__L3699__DEFINE_FAKE_VOID_FUNC8_VARARG.md | 59 + ...de_fff_h__L3746__FAKE_VOID_FUNC8_VARARG.md | 59 + ...__L3751__DECLARE_FAKE_VOID_FUNC9_VARARG.md | 59 + ...h__L3770__DEFINE_FAKE_VOID_FUNC9_VARARG.md | 59 + ...st_include_fff_h__L378__FAKE_VOID_FUNC4.md | 59 + ...nclude_fff_h__L37__FFF_CALL_HISTORY_LEN.md | 59 + ...de_fff_h__L3819__FAKE_VOID_FUNC9_VARARG.md | 59 + ..._L3824__DECLARE_FAKE_VOID_FUNC10_VARARG.md | 59 + ...de_fff_h__L383__DECLARE_FAKE_VOID_FUNC5.md | 59 + ...__L3844__DEFINE_FAKE_VOID_FUNC10_VARARG.md | 59 + ...e_fff_h__L3895__FAKE_VOID_FUNC10_VARARG.md | 59 + ..._L3900__DECLARE_FAKE_VOID_FUNC11_VARARG.md | 59 + ...__L3921__DEFINE_FAKE_VOID_FUNC11_VARARG.md | 59 + ...e_fff_h__L3974__FAKE_VOID_FUNC11_VARARG.md | 59 + ..._L3979__DECLARE_FAKE_VOID_FUNC12_VARARG.md | 59 + ...ude_fff_h__L399__DEFINE_FAKE_VOID_FUNC5.md | 59 + ...__L4001__DEFINE_FAKE_VOID_FUNC12_VARARG.md | 59 + ...e_fff_h__L4056__FAKE_VOID_FUNC12_VARARG.md | 59 + ..._L4061__DECLARE_FAKE_VOID_FUNC13_VARARG.md | 59 + ...__L4084__DEFINE_FAKE_VOID_FUNC13_VARARG.md | 59 + ...e_fff_h__L4141__FAKE_VOID_FUNC13_VARARG.md | 59 + ..._L4146__DECLARE_FAKE_VOID_FUNC14_VARARG.md | 59 + ...__L4170__DEFINE_FAKE_VOID_FUNC14_VARARG.md | 59 + ...e_fff_h__L4229__FAKE_VOID_FUNC14_VARARG.md | 59 + ..._L4234__DECLARE_FAKE_VOID_FUNC15_VARARG.md | 59 + ...__L4259__DEFINE_FAKE_VOID_FUNC15_VARARG.md | 59 + ...e_fff_h__L4320__FAKE_VOID_FUNC15_VARARG.md | 59 + ..._L4325__DECLARE_FAKE_VOID_FUNC16_VARARG.md | 59 + ...st_include_fff_h__L433__FAKE_VOID_FUNC5.md | 59 + ...__L4351__DEFINE_FAKE_VOID_FUNC16_VARARG.md | 59 + ...de_fff_h__L438__DECLARE_FAKE_VOID_FUNC6.md | 59 + ...ff_h__L43__CUSTOM_FFF_FUNCTION_TEMPLATE.md | 59 + ...e_fff_h__L4414__FAKE_VOID_FUNC16_VARARG.md | 59 + ..._L4419__DECLARE_FAKE_VOID_FUNC17_VARARG.md | 59 + ...__L4446__DEFINE_FAKE_VOID_FUNC17_VARARG.md | 59 + ...e_fff_h__L4511__FAKE_VOID_FUNC17_VARARG.md | 59 + ..._L4516__DECLARE_FAKE_VOID_FUNC18_VARARG.md | 59 + ...__L4544__DEFINE_FAKE_VOID_FUNC18_VARARG.md | 59 + ...ude_fff_h__L455__DEFINE_FAKE_VOID_FUNC6.md | 59 + ...e_fff_h__L4611__FAKE_VOID_FUNC18_VARARG.md | 59 + ..._L4616__DECLARE_FAKE_VOID_FUNC19_VARARG.md | 59 + ...__L4645__DEFINE_FAKE_VOID_FUNC19_VARARG.md | 59 + ...e_fff_h__L4714__FAKE_VOID_FUNC19_VARARG.md | 59 + ..._L4719__DECLARE_FAKE_VOID_FUNC20_VARARG.md | 59 + ...__L4749__DEFINE_FAKE_VOID_FUNC20_VARARG.md | 59 + ...test_include_fff_h__L47__SET_RETURN_SEQ.md | 59 + ...e_fff_h__L4820__FAKE_VOID_FUNC20_VARARG.md | 59 + ..._L4825__DECLARE_FAKE_VALUE_FUNC2_VARARG.md | 59 + ...__L4839__DEFINE_FAKE_VALUE_FUNC2_VARARG.md | 59 + ...e_fff_h__L4883__FAKE_VALUE_FUNC2_VARARG.md | 59 + ..._L4888__DECLARE_FAKE_VALUE_FUNC3_VARARG.md | 59 + ...__L4903__DEFINE_FAKE_VALUE_FUNC3_VARARG.md | 59 + ...st_include_fff_h__L491__FAKE_VOID_FUNC6.md | 59 + ...e_fff_h__L4949__FAKE_VALUE_FUNC3_VARARG.md | 59 + ..._L4954__DECLARE_FAKE_VALUE_FUNC4_VARARG.md | 59 + ...de_fff_h__L496__DECLARE_FAKE_VOID_FUNC7.md | 59 + ...__L4970__DEFINE_FAKE_VALUE_FUNC4_VARARG.md | 59 + ...e_fff_h__L5018__FAKE_VALUE_FUNC4_VARARG.md | 59 + ..._L5023__DECLARE_FAKE_VALUE_FUNC5_VARARG.md | 59 + ...__L5040__DEFINE_FAKE_VALUE_FUNC5_VARARG.md | 59 + ...e_fff_h__L5090__FAKE_VALUE_FUNC5_VARARG.md | 59 + ..._L5095__DECLARE_FAKE_VALUE_FUNC6_VARARG.md | 59 + ...include_fff_h__L50__SET_CUSTOM_FAKE_SEQ.md | 59 + ...__L5113__DEFINE_FAKE_VALUE_FUNC6_VARARG.md | 59 + ...ude_fff_h__L514__DEFINE_FAKE_VOID_FUNC7.md | 59 + ...e_fff_h__L5165__FAKE_VALUE_FUNC6_VARARG.md | 59 + ..._L5170__DECLARE_FAKE_VALUE_FUNC7_VARARG.md | 59 + ...__L5189__DEFINE_FAKE_VALUE_FUNC7_VARARG.md | 59 + ...e_fff_h__L5243__FAKE_VALUE_FUNC7_VARARG.md | 59 + ..._L5248__DECLARE_FAKE_VALUE_FUNC8_VARARG.md | 59 + ...__L5268__DEFINE_FAKE_VALUE_FUNC8_VARARG.md | 59 + ...e_fff_h__L5324__FAKE_VALUE_FUNC8_VARARG.md | 59 + ..._L5329__DECLARE_FAKE_VALUE_FUNC9_VARARG.md | 59 + ...__L5350__DEFINE_FAKE_VALUE_FUNC9_VARARG.md | 59 + ...e_fff_h__L5408__FAKE_VALUE_FUNC9_VARARG.md | 59 + ...L5413__DECLARE_FAKE_VALUE_FUNC10_VARARG.md | 59 + ..._L5435__DEFINE_FAKE_VALUE_FUNC10_VARARG.md | 59 + ..._fff_h__L5495__FAKE_VALUE_FUNC10_VARARG.md | 59 + ...L5500__DECLARE_FAKE_VALUE_FUNC11_VARARG.md | 59 + ..._L5523__DEFINE_FAKE_VALUE_FUNC11_VARARG.md | 59 + ...st_include_fff_h__L552__FAKE_VOID_FUNC7.md | 59 + ...de_fff_h__L557__DECLARE_FAKE_VOID_FUNC8.md | 59 + ..._fff_h__L5585__FAKE_VALUE_FUNC11_VARARG.md | 59 + ...L5590__DECLARE_FAKE_VALUE_FUNC12_VARARG.md | 59 + .../test_include_fff_h__L55__RESET_FAKE.md | 59 + ..._L5614__DEFINE_FAKE_VALUE_FUNC12_VARARG.md | 59 + ..._fff_h__L5678__FAKE_VALUE_FUNC12_VARARG.md | 59 + ...L5683__DECLARE_FAKE_VALUE_FUNC13_VARARG.md | 59 + ..._L5708__DEFINE_FAKE_VALUE_FUNC13_VARARG.md | 59 + ...ude_fff_h__L576__DEFINE_FAKE_VOID_FUNC8.md | 59 + ..._fff_h__L5774__FAKE_VALUE_FUNC13_VARARG.md | 59 + ...L5779__DECLARE_FAKE_VALUE_FUNC14_VARARG.md | 59 + ..._L5805__DEFINE_FAKE_VALUE_FUNC14_VARARG.md | 59 + ..._fff_h__L5873__FAKE_VALUE_FUNC14_VARARG.md | 59 + ...L5878__DECLARE_FAKE_VALUE_FUNC15_VARARG.md | 59 + ..._L5905__DEFINE_FAKE_VALUE_FUNC15_VARARG.md | 59 + ..._fff_h__L5975__FAKE_VALUE_FUNC15_VARARG.md | 59 + ...L5980__DECLARE_FAKE_VALUE_FUNC16_VARARG.md | 59 + ..._L6008__DEFINE_FAKE_VALUE_FUNC16_VARARG.md | 59 + ..._fff_h__L6080__FAKE_VALUE_FUNC16_VARARG.md | 59 + ...L6085__DECLARE_FAKE_VALUE_FUNC17_VARARG.md | 59 + .../test_include_fff_h__L60__DECLARE_ARG.md | 59 + ..._L6114__DEFINE_FAKE_VALUE_FUNC17_VARARG.md | 59 + ...st_include_fff_h__L616__FAKE_VOID_FUNC8.md | 59 + ..._fff_h__L6188__FAKE_VALUE_FUNC17_VARARG.md | 59 + ...L6193__DECLARE_FAKE_VALUE_FUNC18_VARARG.md | 59 + ...de_fff_h__L621__DECLARE_FAKE_VOID_FUNC9.md | 59 + ..._L6223__DEFINE_FAKE_VALUE_FUNC18_VARARG.md | 59 + ..._fff_h__L6299__FAKE_VALUE_FUNC18_VARARG.md | 59 + ...L6304__DECLARE_FAKE_VALUE_FUNC19_VARARG.md | 59 + ..._L6335__DEFINE_FAKE_VALUE_FUNC19_VARARG.md | 59 + ..._fff_h__L6413__FAKE_VALUE_FUNC19_VARARG.md | 59 + ...L6418__DECLARE_FAKE_VALUE_FUNC20_VARARG.md | 59 + ...ude_fff_h__L641__DEFINE_FAKE_VOID_FUNC9.md | 59 + ..._L6450__DEFINE_FAKE_VALUE_FUNC20_VARARG.md | 59 + ...ude_fff_h__L64__DECLARE_ALL_FUNC_COMMON.md | 59 + ..._fff_h__L6530__FAKE_VALUE_FUNC20_VARARG.md | 59 + .../test_include_fff_h__L6535__EXPAND.md | 59 + ...st_include_fff_h__L6537__PP_NARG_MINUS2.md | 59 + ...st_include_fff_h__L6539__PP_NARG_MINUS2.md | 59 + ...t_include_fff_h__L6541__PP_ARG_MINUS2_N.md | 59 + ..._include_fff_h__L6543__PP_RSEQ_N_MINUS2.md | 59 + ...st_include_fff_h__L6545__PP_NARG_MINUS1.md | 59 + ...st_include_fff_h__L6547__PP_NARG_MINUS1.md | 59 + ...t_include_fff_h__L6549__PP_ARG_MINUS1_N.md | 59 + ..._include_fff_h__L6551__PP_RSEQ_N_MINUS1.md | 59 + ...t_include_fff_h__L6557__FAKE_VALUE_FUNC.md | 59 + .../test_include_fff_h__L6559__FUNC_VALUE.md | 59 + ...test_include_fff_h__L6561__FUNC_VALUE_N.md | 59 + ...st_include_fff_h__L6564__FAKE_VOID_FUNC.md | 59 + .../test_include_fff_h__L6566__FUNC_VOID.md | 59 + .../test_include_fff_h__L6568__FUNC_VOID_N.md | 59 + ...de_fff_h__L6571__FAKE_VALUE_FUNC_VARARG.md | 59 + ...include_fff_h__L6573__FUNC_VALUE_VARARG.md | 59 + ...clude_fff_h__L6575__FUNC_VALUE_VARARG_N.md | 59 + ...ude_fff_h__L6578__FAKE_VOID_FUNC_VARARG.md | 59 + ..._include_fff_h__L6580__FUNC_VOID_VARARG.md | 59 + ...nclude_fff_h__L6582__FUNC_VOID_VARARG_N.md | 59 + ...e_fff_h__L6588__DECLARE_FAKE_VALUE_FUNC.md | 59 + ...nclude_fff_h__L6590__DECLARE_FUNC_VALUE.md | 59 + ...lude_fff_h__L6592__DECLARE_FUNC_VALUE_N.md | 59 + ...de_fff_h__L6595__DECLARE_FAKE_VOID_FUNC.md | 59 + ...include_fff_h__L6597__DECLARE_FUNC_VOID.md | 59 + ...clude_fff_h__L6599__DECLARE_FUNC_VOID_N.md | 59 + ...__L6602__DECLARE_FAKE_VALUE_FUNC_VARARG.md | 59 + ...fff_h__L6604__DECLARE_FUNC_VALUE_VARARG.md | 59 + ...f_h__L6606__DECLARE_FUNC_VALUE_VARARG_N.md | 59 + ...h__L6609__DECLARE_FAKE_VOID_FUNC_VARARG.md | 59 + ..._fff_h__L6611__DECLARE_FUNC_VOID_VARARG.md | 59 + ...ff_h__L6613__DECLARE_FUNC_VOID_VARARG_N.md | 59 + ...de_fff_h__L6619__DEFINE_FAKE_VALUE_FUNC.md | 59 + ...include_fff_h__L6621__DEFINE_FUNC_VALUE.md | 59 + ...clude_fff_h__L6623__DEFINE_FUNC_VALUE_N.md | 59 + ...ude_fff_h__L6626__DEFINE_FAKE_VOID_FUNC.md | 59 + ..._include_fff_h__L6628__DEFINE_FUNC_VOID.md | 59 + ...nclude_fff_h__L6630__DEFINE_FUNC_VOID_N.md | 59 + ...h__L6633__DEFINE_FAKE_VALUE_FUNC_VARARG.md | 59 + ..._fff_h__L6635__DEFINE_FUNC_VALUE_VARARG.md | 59 + ...ff_h__L6637__DEFINE_FUNC_VALUE_VARARG_N.md | 59 + ..._h__L6640__DEFINE_FAKE_VOID_FUNC_VARARG.md | 59 + ...e_fff_h__L6642__DEFINE_FUNC_VOID_VARARG.md | 59 + ...fff_h__L6644__DEFINE_FUNC_VOID_VARARG_N.md | 59 + ...st_include_fff_h__L683__FAKE_VOID_FUNC9.md | 59 + ...e_fff_h__L688__DECLARE_FAKE_VOID_FUNC10.md | 59 + ...ff_h__L69__DECLARE_RETURN_VALUE_HISTORY.md | 59 + ...de_fff_h__L709__DEFINE_FAKE_VOID_FUNC10.md | 59 + .../test_include_fff_h__L72__SAVE_ARG.md | 59 + ...t_include_fff_h__L753__FAKE_VOID_FUNC10.md | 59 + ...e_fff_h__L758__DECLARE_FAKE_VOID_FUNC11.md | 59 + ...clude_fff_h__L75__ROOM_FOR_MORE_HISTORY.md | 59 + ...de_fff_h__L780__DEFINE_FAKE_VOID_FUNC11.md | 59 + ...st_include_fff_h__L78__SAVE_RET_HISTORY.md | 59 + ...t_include_fff_h__L826__FAKE_VOID_FUNC11.md | 59 + ...st_include_fff_h__L82__SAVE_ARG_HISTORY.md | 59 + ...e_fff_h__L831__DECLARE_FAKE_VOID_FUNC12.md | 59 + ...de_fff_h__L854__DEFINE_FAKE_VOID_FUNC12.md | 59 + ...est_include_fff_h__L85__HISTORY_DROPPED.md | 59 + ...__L88__DECLARE_VALUE_FUNCTION_VARIABLES.md | 59 + ...t_include_fff_h__L902__FAKE_VOID_FUNC12.md | 59 + ...e_fff_h__L907__DECLARE_FAKE_VOID_FUNC13.md | 59 + ...de_fff_h__L931__DEFINE_FAKE_VOID_FUNC13.md | 59 + ..._L94__DECLARE_CUSTOM_FAKE_SEQ_VARIABLES.md | 59 + ...t_include_fff_h__L981__FAKE_VOID_FUNC13.md | 59 + ...e_fff_h__L986__DECLARE_FAKE_VOID_FUNC14.md | 59 + ...nclude_fff_h__L98__INCREMENT_CALL_COUNT.md | 59 + ...ON_number_handling_test_cpp__L26__FIELD.md | 59 + ...andling_test_cpp__L28__JINTEGER_MAX_STR.md | 59 + ...ng_test_cpp__L33__JINTEGER_MAX_TO_FLOAT.md | 59 + ...est_cpp__L34__JINTEGER_MAX_TO_FLOAT_STR.md | 59 + ...g_test_cpp__L38__JINTEGER_MAX_PLUS_4096.md | 59 + ...st_cpp__L39__JINTEGER_MAX_PLUS_4096_STR.md | 59 + ...p__L41__JINTEGER_MAX_PLUS_4096_TO_FLOAT.md | 59 + ...42__JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR.md | 59 + ...andling_test_cpp__L44__JINTEGER_MIN_STR.md | 59 + ...ng_test_cpp__L47__JINTEGER_MIN_TO_FLOAT.md | 59 + ...est_cpp__L48__JINTEGER_MIN_TO_FLOAT_STR.md | 59 + ..._test_cpp__L50__JINTEGER_MIN_MINUS_4096.md | 59 + ...t_cpp__L51__JINTEGER_MIN_MINUS_4096_STR.md | 59 + ...__L53__JINTEGER_MIN_MINUS_4096_TO_FLOAT.md | 59 + ...4__JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR.md | 59 + ...ber_handling_test_cpp__L56__SMALL_FLOAT.md | 59 + ...handling_test_cpp__L57__SMALL_FLOAT_STR.md | 59 + ..._handling_test_cpp__L59__UNIX_TIMESTAMP.md | 59 + ...dling_test_cpp__L60__UNIX_TIMESTAMP_STR.md | 59 + ...0__SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE.md | 59 + .../artifacts/types/n_cjson_c__L232__lconv.md | 55 + .../types/n_cjson_c__L239__typedef_239.md | 55 + .../types/n_cjson_c__L340__typedef_340.md | 55 + .../types/n_cjson_c__L82__typedef_82.md | 55 + .../artifacts/types/n_cjson_h__L103__Jbool.md | 55 + .../types/n_cjson_h__L78__typedef_78.md | 55 + .../artifacts/types/n_cjson_h__L80__J.md | 55 + .../artifacts/types/n_cjson_h__L81__J.md | 55 + .../artifacts/types/n_cjson_h__L83__J.md | 55 + .../types/n_cjson_h__L98__typedef_98.md | 55 + .../types/n_helpers_c__L2388__typedef_2388.md | 55 + .../types/n_helpers_c__L2389__objHeader_s.md | 55 + .../types/n_hooks_c__L190__nNoteResetFn.md | 55 + .../types/n_hooks_c__L191__nTransactionFn.md | 55 + .../types/n_hooks_c__L192__nReceiveFn.md | 55 + .../types/n_hooks_c__L193__nTransmitFn.md | 55 + .../types/note_h__L100__JUINTEGER.md | 55 + .../artifacts/types/note_h__L105__JTIME.md | 55 + .../types/note_h__L124__delayMsFn.md | 55 + .../artifacts/types/note_h__L133__freeFn.md | 55 + .../artifacts/types/note_h__L142__getMsFn.md | 55 + .../types/note_h__L1523__typedef_1523.md | 55 + .../types/note_h__L153__debugOutputFn.md | 55 + .../types/note_h__L166__heartbeatFn.md | 55 + .../types/note_h__L183__i2cReceiveFn.md | 55 + .../types/note_h__L196__i2cResetFn.md | 55 + .../types/note_h__L2109__typedef_2109.md | 55 + .../types/note_h__L211__i2cTransmitFn.md | 55 + .../artifacts/types/note_h__L223__mallocFn.md | 55 + .../artifacts/types/note_h__L230__mutexFn.md | 55 + .../types/note_h__L239__serialAvailableFn.md | 55 + .../types/note_h__L248__serialReceiveFn.md | 55 + .../types/note_h__L260__serialResetFn.md | 55 + .../types/note_h__L271__serialTransmitFn.md | 55 + .../types/note_h__L282__txnStartFn.md | 55 + .../types/note_h__L289__txnStopFn.md | 55 + .../artifacts/types/note_h__L85__JNUMBER.md | 55 + .../artifacts/types/note_h__L87__JNUMBER.md | 55 + .../artifacts/types/note_h__L93__JINTEGER.md | 55 + ...nary_NotecardBinary_h__L27__BinaryImage.md | 59 + ...NotecardBinary_h__L342__TransferDetails.md | 59 + ...dBinary_h__L356__TransferHandlerContext.md | 59 + ..._NotecardBinary_h__L372__BinaryTransfer.md | 59 + ..._NotecardBinary_h__L37__BinaryGenerator.md | 59 + ..._NotecardComms_h__L6__NotecardInterface.md | 59 + ...y_generators_cpp__L21__content_check_fn.md | 59 + ...ry_generators_h__L12__BuildAllSameValue.md | 59 + ...test_binary_generators_h__L29__AllZeros.md | 59 + ...est_binary_generators_h__L33__AllSevens.md | 59 + ...generators_h__L37__BuildFromBinaryImage.md | 59 + ...ary_generators_h__L49__SmallBinaryImage.md | 59 + ...t_binary_generators_h__L53__BuildRandom.md | 59 + ...st_card_binary_cpp__L63__BinaryTestArgs.md | 59 + ...test_test_card_binary_cpp__L77__Handler.md | 59 + ...t_unity_util_h__L13__test_suite_hook_fn.md | 59 + ...unity_util_h__L14__test_suite_filter_fn.md | 59 + ...l_scripts_md5srv_py__L25__HTTPException.md | 59 + ...ripts_md5srv_py__L33__WebRequestHandler.md | 59 + ...test_include_fff_h__L1069__typedef_1069.md | 59 + ...test_include_fff_h__L1154__typedef_1154.md | 59 + ...test_include_fff_h__L1242__typedef_1242.md | 59 + ...est_include_fff_h__L130__fff_function_t.md | 59 + .../test_include_fff_h__L131__typedef_131.md | 59 + ...test_include_fff_h__L1333__typedef_1333.md | 59 + ...test_include_fff_h__L1427__typedef_1427.md | 59 + ...test_include_fff_h__L1524__typedef_1524.md | 59 + .../test_include_fff_h__L154__typedef_154.md | 59 + ...test_include_fff_h__L1624__typedef_1624.md | 59 + ...test_include_fff_h__L1675__typedef_1675.md | 59 + ...test_include_fff_h__L1729__typedef_1729.md | 59 + ...test_include_fff_h__L1786__typedef_1786.md | 59 + ...test_include_fff_h__L1846__typedef_1846.md | 59 + ...test_include_fff_h__L1909__typedef_1909.md | 59 + .../test_include_fff_h__L194__typedef_194.md | 59 + ...test_include_fff_h__L1975__typedef_1975.md | 59 + ...test_include_fff_h__L2044__typedef_2044.md | 59 + ...test_include_fff_h__L2116__typedef_2116.md | 59 + ...test_include_fff_h__L2191__typedef_2191.md | 59 + ...test_include_fff_h__L2269__typedef_2269.md | 59 + ...test_include_fff_h__L2350__typedef_2350.md | 59 + .../test_include_fff_h__L237__typedef_237.md | 59 + ...test_include_fff_h__L2434__typedef_2434.md | 59 + ...test_include_fff_h__L2521__typedef_2521.md | 59 + ...test_include_fff_h__L2611__typedef_2611.md | 59 + ...test_include_fff_h__L2704__typedef_2704.md | 59 + ...test_include_fff_h__L2800__typedef_2800.md | 59 + .../test_include_fff_h__L283__typedef_283.md | 59 + ...test_include_fff_h__L2899__typedef_2899.md | 59 + ...test_include_fff_h__L3001__typedef_3001.md | 59 + ...test_include_fff_h__L3106__typedef_3106.md | 59 + ...test_include_fff_h__L3214__typedef_3214.md | 59 + ...test_include_fff_h__L3325__typedef_3325.md | 59 + .../test_include_fff_h__L332__typedef_332.md | 59 + ...test_include_fff_h__L3377__typedef_3377.md | 59 + ...test_include_fff_h__L3432__typedef_3432.md | 59 + ...test_include_fff_h__L3490__typedef_3490.md | 59 + ...test_include_fff_h__L3551__typedef_3551.md | 59 + ...test_include_fff_h__L3615__typedef_3615.md | 59 + ...test_include_fff_h__L3682__typedef_3682.md | 59 + ...test_include_fff_h__L3752__typedef_3752.md | 59 + ...test_include_fff_h__L3825__typedef_3825.md | 59 + .../test_include_fff_h__L384__typedef_384.md | 59 + ...test_include_fff_h__L3901__typedef_3901.md | 59 + ...test_include_fff_h__L3980__typedef_3980.md | 59 + ...test_include_fff_h__L4062__typedef_4062.md | 59 + ...test_include_fff_h__L4147__typedef_4147.md | 59 + ...test_include_fff_h__L4235__typedef_4235.md | 59 + ...test_include_fff_h__L4326__typedef_4326.md | 59 + .../test_include_fff_h__L439__typedef_439.md | 59 + ...test_include_fff_h__L4420__typedef_4420.md | 59 + ...test_include_fff_h__L4517__typedef_4517.md | 59 + ...test_include_fff_h__L4617__typedef_4617.md | 59 + ...test_include_fff_h__L4720__typedef_4720.md | 59 + ...test_include_fff_h__L4826__typedef_4826.md | 59 + ...test_include_fff_h__L4889__typedef_4889.md | 59 + ...test_include_fff_h__L4955__typedef_4955.md | 59 + .../test_include_fff_h__L497__typedef_497.md | 59 + ...test_include_fff_h__L5024__typedef_5024.md | 59 + ...test_include_fff_h__L5096__typedef_5096.md | 59 + ...test_include_fff_h__L5171__typedef_5171.md | 59 + ...test_include_fff_h__L5249__typedef_5249.md | 59 + ...test_include_fff_h__L5330__typedef_5330.md | 59 + ...test_include_fff_h__L5414__typedef_5414.md | 59 + ...test_include_fff_h__L5501__typedef_5501.md | 59 + .../test_include_fff_h__L558__typedef_558.md | 59 + ...test_include_fff_h__L5591__typedef_5591.md | 59 + ...test_include_fff_h__L5684__typedef_5684.md | 59 + ...test_include_fff_h__L5780__typedef_5780.md | 59 + ...test_include_fff_h__L5879__typedef_5879.md | 59 + ...test_include_fff_h__L5981__typedef_5981.md | 59 + ...test_include_fff_h__L6086__typedef_6086.md | 59 + ...test_include_fff_h__L6194__typedef_6194.md | 59 + .../test_include_fff_h__L622__typedef_622.md | 59 + ...test_include_fff_h__L6305__typedef_6305.md | 59 + ...test_include_fff_h__L6419__typedef_6419.md | 59 + .../test_include_fff_h__L689__typedef_689.md | 59 + .../test_include_fff_h__L759__typedef_759.md | 59 + .../test_include_fff_h__L832__typedef_832.md | 59 + .../test_include_fff_h__L908__typedef_908.md | 59 + .../test_include_fff_h__L987__typedef_987.md | 59 + ...src_JGetType_test_cpp__L63__AddStringFn.md | 59 + ...src_NoteDebug_test_cpp__L21__typedef_21.md | 59 + .../test_src_NotePing_test_cpp__L40__class.md | 59 + ...hunkedReceive_test_cpp__L18__nReceiveFn.md | 59 + ...nkedTransmit_test_cpp__L18__nTransmitFn.md | 59 + ...teHardReset_test_cpp__L18__nNoteResetFn.md | 59 + ...ansaction_test_cpp__L18__nTransactionFn.md | 59 + source-research/frontier/active-slice.json | 1542 + source-research/frontier/work-queue.json | 12 + .../inventory/artifact-status.json | 5922 ++++ source-research/inventory/claims-ledger.json | 495 + .../inventory/cmake-ast-validation.json | 2983 ++ .../inventory/compile_commands.default.json | 92 + .../compile_commands.lowmem-single.json | 86 + .../inventory/dependency-graph.json | 24813 ++++++++++++++++ .../inventory/evidence-validation.json | 10 + .../inventory/graph-substrate.json | 279 + source-research/inventory/impact-report.json | 16 + .../inventory/progress-summary.json | 49 + source-research/inventory/repair-plan.json | 3212 ++ source-research/inventory/source-drift.json | 64 + .../inventory/source-inventory.json | 291 + .../inventory/source-node.schema.json | 920 + source-research/inventory/symbol-index.json | 11711 ++++++++ source-research/overview.md | 18 + source-research/research-index.md | 91 + source-research/research-manifest.json | 298 + .../codecs-binary-portability.md | 48 + .../worker-reports/ftoa-number-formatting.md | 84 + .../worker-reports/high-level-helpers.md | 53 + .../worker-reports/hooks-and-adapter-layer.md | 28 + source-research/worker-reports/json-core.md | 55 + .../worker-reports/json-printing-closure.md | 103 + .../worker-reports/request-orchestration.md | 49 + source-research/worker-reports/transports.md | 49 + 1267 files changed, 127633 insertions(+), 829 deletions(-) delete mode 100644 docs/architecture/architecture.json delete mode 100644 docs/architecture/embed-architecture-json.mjs create mode 100644 source-research/artifacts/functions/n_atof_c__L71__JAtoN.md create mode 100644 source-research/artifacts/functions/n_b64_c__L106__JB64DecodeLen.md create mode 100644 source-research/artifacts/functions/n_b64_c__L121__JB64Decode.md create mode 100644 source-research/artifacts/functions/n_b64_c__L169__JB64EncodeLen.md create mode 100644 source-research/artifacts/functions/n_b64_c__L174__JB64Encode.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1032__JPrint.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1097__printPreallocated.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L110__JVersion.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1129__parse_value.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L115__j_tolower.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1179__print_value.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1245__parse_array.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1341__print_array.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1395__parse_object.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L146__j_strdup.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1523__print_object.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1660__JGetArraySize.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1681__get_array_item.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1710__get_object_item.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1757__suffix_object.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L175__JMalloc.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1764__create_reference.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1783__add_item_to_array.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1826__cast_away_const.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1835__add_item_to_object.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L188__JFree.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L194__jNew_Item.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L209__JDelete.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L229__get_decimal_point.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2303__JCreateTrue.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2312__JCreateFalse.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2321__JCreateBool.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2330__JCreateNumber.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2349__JCreateInteger.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2360__JCreateString.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2420__JCreateRaw.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2434__JCreateArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2450__JCreateObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2550__JDuplicate.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L255__parse_number.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2616__JMinify.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2665__JIsInvalid.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2673__JIsFalse.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2681__JIsTrue.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2690__JIsBool.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2697__JIsNull.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2705__JIsNumber.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2713__JIsString.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2721__JIsArray.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2729__JIsObject.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2737__JIsRaw.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L2745__JCompare.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L351__ensure.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L400__update_offset.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L412__print_number.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L476__parse_hex4.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L604__parse_string.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L728__n_htoa16.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L744__print_string_ptr.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L856__print_string.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L902__JParseWithOpts.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L96__JGetStringValue.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L976__JParse.md create mode 100644 source-research/artifacts/functions/n_cjson_c__L983__print.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L276__JGetItemName.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L27__JGetString.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L284__JItoA.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L355__JType.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L379__JGetType.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L75__JBoolValue.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L83__JStringValue.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md create mode 100644 source-research/artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md create mode 100644 source-research/artifacts/functions/n_cobs_c__L115__cobsEncode.md create mode 100644 source-research/artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md create mode 100644 source-research/artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md create mode 100644 source-research/artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md create mode 100644 source-research/artifacts/functions/n_cobs_c__L32__cobsDecode.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L378__fmtstr.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L415__printsep.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L420__getnumsep.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L426__getexponent.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L448__convert.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L462__cast.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L486__myround.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L497__mypow10.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L56__JNtoA.md create mode 100644 source-research/artifacts/functions/n_ftoa_c__L74__fmtflt.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1119__yToDays.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1754__NoteSleep.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1805__NoteWake.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2060__NoteTemplate.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2083__NoteAdd.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2226__NoteGetContact.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2276__NoteSetContact.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L743__NoteTimeValid.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L767__NoteTime.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L780__NoteTimeRefreshMins.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L791__setTime.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L808__NoteTimeSet.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L834__NotePrintln.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L847__NotePrint.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L871__NoteTimeST.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L948__NoteSetSTSecs.md create mode 100644 source-research/artifacts/functions/n_helpers_c__L965__NoteRegion.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L1015__noteHardReset.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L266__NoteSetFn.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L444__NoteSetLogLevel.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L464__NoteDebugln.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L474__NoteDebug.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L520__NoteGetMs.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L528__NoteDelayMs.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L544__n_htoa32.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L561__n_ptoa32.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L569__NoteMalloc.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L595__NoteFree.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L616__NoteLockI2C.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L643__noteHeartbeat.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L657__noteLockNote.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L669__noteUnlockNote.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L681__noteTransactionStart.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L694__noteTransactionStop.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L754__NoteGetFnI2CMutex.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L764__NoteGetFnNoteMutex.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L774__NoteGetFn.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L835__NoteGetI2CAddress.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L842__NoteGetI2CMtu.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L855__noteSerialReset.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L902__noteSerialReceive.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L916__noteI2CReset.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L955__noteI2CReceive.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L977__NoteSetI2CAddress.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L982__NoteSetI2CMtu.md create mode 100644 source-research/artifacts/functions/n_hooks_c__L994__NoteI2CMax.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L195__i2cNoteReset.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L30__delayIO.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md create mode 100644 source-research/artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md create mode 100644 source-research/artifacts/functions/n_md5_c__L143__NoteMD5Final.md create mode 100644 source-research/artifacts/functions/n_md5_c__L201__NoteMD5Transform.md create mode 100644 source-research/artifacts/functions/n_md5_c__L292__NoteMD5Hash.md create mode 100644 source-research/artifacts/functions/n_md5_c__L301__NoteMD5HashString.md create mode 100644 source-research/artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md create mode 100644 source-research/artifacts/functions/n_md5_c__L42__getu32.md create mode 100644 source-research/artifacts/functions/n_md5_c__L48__putu32.md create mode 100644 source-research/artifacts/functions/n_md5_c__L57__n_htoa8.md create mode 100644 source-research/artifacts/functions/n_md5_c__L78__NoteMD5Init.md create mode 100644 source-research/artifacts/functions/n_md5_c__L95__NoteMD5Update.md create mode 100644 source-research/artifacts/functions/n_printf_c__L35__NoteDebugf.md create mode 100644 source-research/artifacts/functions/n_printf_c__L60__NotePrintf.md create mode 100644 source-research/artifacts/functions/n_request_c__L1019__crc32.md create mode 100644 source-research/artifacts/functions/n_request_c__L1047__crcAdd.md create mode 100644 source-research/artifacts/functions/n_request_c__L1113__crcError.md create mode 100644 source-research/artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md create mode 100644 source-research/artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md create mode 100644 source-research/artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md create mode 100644 source-research/artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md create mode 100644 source-research/artifacts/functions/n_request_c__L173__NoteNewRequest.md create mode 100644 source-research/artifacts/functions/n_request_c__L182__NoteNewCommand.md create mode 100644 source-research/artifacts/functions/n_request_c__L191__NoteRequest.md create mode 100644 source-research/artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md create mode 100644 source-research/artifacts/functions/n_request_c__L220__NoteRequestResponse.md create mode 100644 source-research/artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md create mode 100644 source-research/artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md create mode 100644 source-research/artifacts/functions/n_request_c__L411__NoteTransaction.md create mode 100644 source-research/artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md create mode 100644 source-research/artifacts/functions/n_request_c__L55__errDoc.md create mode 100644 source-research/artifacts/functions/n_request_c__L756__NoteResetRequired.md create mode 100644 source-research/artifacts/functions/n_request_c__L766__NoteReset.md create mode 100644 source-research/artifacts/functions/n_request_c__L786__notePingDrainInput.md create mode 100644 source-research/artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md create mode 100644 source-research/artifacts/functions/n_request_c__L841__NotePing.md create mode 100644 source-research/artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md create mode 100644 source-research/artifacts/functions/n_request_c__L940__NoteErrorContains.md create mode 100644 source-research/artifacts/functions/n_request_c__L945__NoteErrorClean.md create mode 100644 source-research/artifacts/functions/n_request_c__L975__n_atoh.md create mode 100644 source-research/artifacts/functions/n_serial_c__L153__serialNoteReset.md create mode 100644 source-research/artifacts/functions/n_serial_c__L237__serialChunkedReceive.md create mode 100644 source-research/artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md create mode 100644 source-research/artifacts/functions/n_serial_c__L35__serialNoteTransaction.md create mode 100644 source-research/artifacts/functions/n_str_c__L31__strlcpy.md create mode 100644 source-research/artifacts/functions/n_str_c__L69__strlcat.md create mode 100644 source-research/artifacts/functions/n_ua_c__L191__NoteSetUserAgent.md create mode 100644 source-research/artifacts/functions/n_ua_c__L201__NoteSetUserAgentOS.md create mode 100644 source-research/artifacts/functions/n_ua_c__L214__NoteSetUserAgentCPU.md create mode 100644 source-research/artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md create mode 100644 source-research/artifacts/functions/n_ua_c__L95__NoteUserAgent.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L14__wait_for_test_port.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L30__start_tests.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L36__after_upload.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_cpp__L13__BinaryGenerator.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L106__readDataUntilTimeout.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L11__set_aux_serial_baudrate.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L52__initialize_notecard_interface.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L79__uninitialize_notecard_interface.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L14__loop.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L4__setup.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L9__showHelp.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L13__testsuite_binary_generators_setUp.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L17__testsuite_binary_generators_tearDown.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L23__check_binary.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L41__check_content_fixed_value.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L53__TEST.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L64__TEST.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L84__testsuite_binary_generators.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L8__testsuite_binary_generators_filter.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L121__binaryTransferTest.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L308__get_expected_max_binary_length.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L30__testsuite_card_binary_filter.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L338__test_get_max_binary_length.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L35__testsuite_card_binary_setUp.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L370__base_test_max_length.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L388__TEST.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L393__TEST.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L398__TEST.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L40__testsuite_card_binary_tearDown.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L429__waitForNotecardConnected.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L439__testsuite_card_binary.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L44__assert_initialize_notecard.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L53__AssertNoteBinaryReset.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L20__waitForStartCommand.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L41__setup.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L60__loop.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L8__runUnityTests.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L15__setUp.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L22__tearDown.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L29__filterTest.md create mode 100644 source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L8__test_suite_hooks.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L120__WebRequestHandler_log_request_headers.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L126__WebRequestHandler_do.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L13__log.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L140__WebRequestHandler_validate_token.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L148__WebRequestHandler_get_md5.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L163__WebRequestHandler_chunk_content.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L166__WebRequestHandler_md5_for_directory.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L189__WebRequestHandler_delete_files.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L196__WebRequestHandler_write_file_or_note.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L202__WebRequestHandler_write_note.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L20__log_sensitive.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L227__WebRequestHandler_write_file.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L235__WebRequestHandler__read_file.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L243__WebRequestHandler__chunk_file.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L251__WebRequestHandler__write_file.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L27__HTTPException___init.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L286__WebRequestHandler_validate_url_path.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L290__WebRequestHandler_validate_path.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L297__WebRequestHandler_dump_request.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L306__main.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L315__main_build_request_handler.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L49__WebRequestHandler___init.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L57__WebRequestHandler_url.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L61__WebRequestHandler_query_data.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L65__WebRequestHandler_post_data.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L80__WebRequestHandler_form_data.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L83__WebRequestHandler_do_GET.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L86__WebRequestHandler_do_DELETE.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L89__WebRequestHandler_do_POST.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L92__WebRequestHandler_do_PUT.md create mode 100644 source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L95__WebRequestHandler_send_status.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1013__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1096__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1182__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L122__reset.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1271__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1363__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1458__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1556__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1638__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L166__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1690__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1745__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1803__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1864__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1928__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L1995__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2065__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L207__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2138__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2214__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2293__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2375__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2460__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L251__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2548__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2639__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2733__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2830__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L2930__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L298__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3033__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3139__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3248__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3338__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3391__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3447__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L348__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3506__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3568__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3633__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3701__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3772__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3846__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L3923__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4003__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L401__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4086__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4172__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4261__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4353__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4448__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4546__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L457__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4647__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4751__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4841__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4905__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L4972__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5042__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5115__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L516__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5191__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5270__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5352__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5437__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5525__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5616__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5710__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L578__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5807__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L5907__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L6010__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L6116__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L6225__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L6337__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L643__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L6452__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L711__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L782__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L856__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_fff_h__L933__FUNCNAME.md create mode 100644 source-research/artifacts/functions/test_include_time_mocks_h__L16__NoteGetMsIncrement.md create mode 100644 source-research/artifacts/functions/test_integration_link_test_c__L9__main.md create mode 100644 source-research/artifacts/functions/test_src_NoteResponseError_test_cpp__L26__SCENARIO.md create mode 100644 source-research/artifacts/functions/test_src_NoteUserAgent_test_cpp__L29__NoteUserAgentUpdate.md create mode 100644 source-research/artifacts/macros/n_atof_c__L29__const.md create mode 100644 source-research/artifacts/macros/n_atof_c__L36__TRUE.md create mode 100644 source-research/artifacts/macros/n_atof_c__L37__FALSE.md create mode 100644 source-research/artifacts/macros/n_atof_c__L40__NULL.md create mode 100644 source-research/artifacts/macros/n_atof_c__L43__MAX_EXPONENT.md create mode 100644 source-research/artifacts/macros/n_cjson_c__L247__can_read.md create mode 100644 source-research/artifacts/macros/n_cjson_c__L249__can_access_at_index.md create mode 100644 source-research/artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md create mode 100644 source-research/artifacts/macros/n_cjson_c__L252__buffer_at_offset.md create mode 100644 source-research/artifacts/macros/n_cjson_c__L80__PRINT_TAB_CHARS.md create mode 100644 source-research/artifacts/macros/n_cjson_c__L981__cjson_min.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L134__N_CJSON_PUBLIC.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L136__N_CJSON_PUBLIC.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L138__N_CJSON_PUBLIC.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L142__N_CJSON_PUBLIC.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L144__N_CJSON_PUBLIC.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L209__JGetObjectItems.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L314__JSetIntValue.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L317__JSetNumberValue.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L320__JArrayForEach.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L322__JObjectForEach.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L53__N_CJSON_VERSION_MINOR.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L54__N_CJSON_VERSION_PATCH.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L59__JInvalid.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L60__JFalse.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L61__JTrue.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L62__JNULL.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L63__JNumber.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L64__JString.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L65__JArray.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L66__JObject.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L67__JRaw.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L69__JIsReference.md create mode 100644 source-research/artifacts/macros/n_cjson_h__L70__JStringIsConst.md create mode 100644 source-research/artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md create mode 100644 source-research/artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md create mode 100644 source-research/artifacts/macros/n_ftoa_c__L45__OUTCHAR.md create mode 100644 source-research/artifacts/macros/n_helpers_c__L71__daysByMonth.md create mode 100644 source-research/artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md create mode 100644 source-research/artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md create mode 100644 source-research/artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md create mode 100644 source-research/artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md create mode 100644 source-research/artifacts/macros/n_lib_h__L174__c_bad_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L177__c_badbinerr_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L180__c_cmd_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L183__c_err_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L186__c_false_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L189__c_heartbeat_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L192__c_iobad_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L195__c_ioerr_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L198__c_iotimeout_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L201__c_mem_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L204__c_newline_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L207__c_null_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L210__c_nullstring_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L213__c_req_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L216__c_status_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L219__c_true_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L222__c_unsupported_len.md create mode 100644 source-research/artifacts/macros/n_lib_h__L226__LockNote.md create mode 100644 source-research/artifacts/macros/n_lib_h__L227__UnlockNote.md create mode 100644 source-research/artifacts/macros/n_lib_h__L228__TransactionStart.md create mode 100644 source-research/artifacts/macros/n_lib_h__L229__TransactionStop.md create mode 100644 source-research/artifacts/macros/n_lib_h__L230__SerialReset.md create mode 100644 source-research/artifacts/macros/n_lib_h__L231__SerialTransmit.md create mode 100644 source-research/artifacts/macros/n_lib_h__L232__SerialAvailable.md create mode 100644 source-research/artifacts/macros/n_lib_h__L233__SerialReceive.md create mode 100644 source-research/artifacts/macros/n_lib_h__L234__I2CReset.md create mode 100644 source-research/artifacts/macros/n_lib_h__L235__I2CTransmit.md create mode 100644 source-research/artifacts/macros/n_lib_h__L236__I2CReceive.md create mode 100644 source-research/artifacts/macros/n_lib_h__L237__Reset.md create mode 100644 source-research/artifacts/macros/n_lib_h__L238__Transaction.md create mode 100644 source-research/artifacts/macros/n_lib_h__L239__ChunkedReceive.md create mode 100644 source-research/artifacts/macros/n_lib_h__L240__ChunkedTransmit.md create mode 100644 source-research/artifacts/macros/n_lib_h__L241__Malloc.md create mode 100644 source-research/artifacts/macros/n_lib_h__L242__Free.md create mode 100644 source-research/artifacts/macros/n_lib_h__L243__GetMs.md create mode 100644 source-research/artifacts/macros/n_lib_h__L244__DelayMs.md create mode 100644 source-research/artifacts/macros/n_lib_h__L245__LockI2C.md create mode 100644 source-research/artifacts/macros/n_lib_h__L246__UnlockI2C.md create mode 100644 source-research/artifacts/macros/n_lib_h__L247__I2CAddress.md create mode 100644 source-research/artifacts/macros/n_lib_h__L248__I2CMax.md create mode 100644 source-research/artifacts/macros/n_lib_h__L256__Debug.md create mode 100644 source-research/artifacts/macros/n_lib_h__L257__Debugln.md create mode 100644 source-research/artifacts/macros/n_lib_h__L258__DebugIntln.md create mode 100644 source-research/artifacts/macros/n_lib_h__L259__DebugWithLevel.md create mode 100644 source-research/artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md create mode 100644 source-research/artifacts/macros/n_lib_h__L35__NOTE_C_STATIC.md create mode 100644 source-research/artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md create mode 100644 source-research/artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md create mode 100644 source-research/artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md create mode 100644 source-research/artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md create mode 100644 source-research/artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md create mode 100644 source-research/artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md create mode 100644 source-research/artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md create mode 100644 source-research/artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md create mode 100644 source-research/artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md create mode 100644 source-research/artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md create mode 100644 source-research/artifacts/macros/n_md5_c__L187__F1.md create mode 100644 source-research/artifacts/macros/n_md5_c__L188__F2.md create mode 100644 source-research/artifacts/macros/n_md5_c__L189__F3.md create mode 100644 source-research/artifacts/macros/n_md5_c__L190__F4.md create mode 100644 source-research/artifacts/macros/n_md5_c__L193__MD5STEP.md create mode 100644 source-research/artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md create mode 100644 source-research/artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md create mode 100644 source-research/artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md create mode 100644 source-research/artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md create mode 100644 source-research/artifacts/macros/n_ua_c__L107__PLUS.md create mode 100644 source-research/artifacts/macros/n_ua_c__L109__PLUS.md create mode 100644 source-research/artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md create mode 100644 source-research/artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md create mode 100644 source-research/artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md create mode 100644 source-research/artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md create mode 100644 source-research/artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md create mode 100644 source-research/artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md create mode 100644 source-research/artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md create mode 100644 source-research/artifacts/macros/note_h__L1403__JTYPE_BOOL.md create mode 100644 source-research/artifacts/macros/note_h__L1404__JTYPE_NULL.md create mode 100644 source-research/artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md create mode 100644 source-research/artifacts/macros/note_h__L1406__JTYPE_NUMBER.md create mode 100644 source-research/artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md create mode 100644 source-research/artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md create mode 100644 source-research/artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md create mode 100644 source-research/artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md create mode 100644 source-research/artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md create mode 100644 source-research/artifacts/macros/note_h__L1412__JTYPE_STRING.md create mode 100644 source-research/artifacts/macros/note_h__L1413__JTYPE_OBJECT.md create mode 100644 source-research/artifacts/macros/note_h__L1414__JTYPE_ARRAY.md create mode 100644 source-research/artifacts/macros/note_h__L1440__JGetObjectItemName.md create mode 100644 source-research/artifacts/macros/note_h__L1443__JNTOA_PRECISION.md create mode 100644 source-research/artifacts/macros/note_h__L1444__JNTOA_MAX.md create mode 100644 source-research/artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md create mode 100644 source-research/artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md create mode 100644 source-research/artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md create mode 100644 source-research/artifacts/macros/note_h__L2033__NoteSend.md create mode 100644 source-research/artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md create mode 100644 source-research/artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md create mode 100644 source-research/artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md create mode 100644 source-research/artifacts/macros/note_h__L2182__TBOOL.md create mode 100644 source-research/artifacts/macros/note_h__L2183__TINT8.md create mode 100644 source-research/artifacts/macros/note_h__L2184__TINT16.md create mode 100644 source-research/artifacts/macros/note_h__L2185__TINT24.md create mode 100644 source-research/artifacts/macros/note_h__L2186__TINT32.md create mode 100644 source-research/artifacts/macros/note_h__L2187__TINT64.md create mode 100644 source-research/artifacts/macros/note_h__L2188__TUINT8.md create mode 100644 source-research/artifacts/macros/note_h__L2189__TUINT16.md create mode 100644 source-research/artifacts/macros/note_h__L2190__TUINT24.md create mode 100644 source-research/artifacts/macros/note_h__L2191__TUINT32.md create mode 100644 source-research/artifacts/macros/note_h__L2192__TFLOAT16.md create mode 100644 source-research/artifacts/macros/note_h__L2193__TFLOAT32.md create mode 100644 source-research/artifacts/macros/note_h__L2194__TFLOAT64.md create mode 100644 source-research/artifacts/macros/note_h__L2195__TSTRING.md create mode 100644 source-research/artifacts/macros/note_h__L2196__TSTRINGV.md create mode 100644 source-research/artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md create mode 100644 source-research/artifacts/macros/note_h__L322__NoteNewBody.md create mode 100644 source-research/artifacts/macros/note_h__L323__NoteAddBodyToObject.md create mode 100644 source-research/artifacts/macros/note_h__L324__NoteGetBody.md create mode 100644 source-research/artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md create mode 100644 source-research/artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md create mode 100644 source-research/artifacts/macros/note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md create mode 100644 source-research/artifacts/macros/note_h__L411__SYNCSTATUS_LEVEL_MINOR.md create mode 100644 source-research/artifacts/macros/note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md create mode 100644 source-research/artifacts/macros/note_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md create mode 100644 source-research/artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md create mode 100644 source-research/artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md create mode 100644 source-research/artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md create mode 100644 source-research/artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md create mode 100644 source-research/artifacts/macros/note_h__L46__NOTE_C_VERSION.md create mode 100644 source-research/artifacts/macros/note_h__L479__NoteResponseError.md create mode 100644 source-research/artifacts/macros/note_h__L480__NoteResponseErrorContains.md create mode 100644 source-research/artifacts/macros/note_h__L486__NoteDeleteResponse.md create mode 100644 source-research/artifacts/macros/note_h__L75__ERRSTR.md create mode 100644 source-research/artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md create mode 100644 source-research/artifacts/macros/note_h__L78__ERRSTR.md create mode 100644 source-research/artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md create mode 100644 source-research/artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md create mode 100644 source-research/artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md create mode 100644 source-research/artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md create mode 100644 source-research/artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md create mode 100644 source-research/artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md create mode 100644 source-research/artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md create mode 100644 source-research/artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md create mode 100644 source-research/artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md create mode 100644 source-research/artifacts/macros/note_h__L94__JINTEGER_MIN.md create mode 100644 source-research/artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md create mode 100644 source-research/artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md create mode 100644 source-research/artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md create mode 100644 source-research/artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md create mode 100644 source-research/artifacts/macros/note_h__L95__JINTEGER_MAX.md create mode 100644 source-research/artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md create mode 100644 source-research/artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md create mode 100644 source-research/artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L15__TINY_SIZE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L16__TINY_SIZE_NAME.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L17__SMALL_SIZE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L18__SMALL_SIZE_NAME.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L19__MEDIUM_SIZE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L20__MEDIUM_SIZE_NAME.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L21__LARGE_SIZE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L22__LARGE_SIZE_NAME.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L23__XLARGE_SIZE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L24__XLARGE_SIZE_NAME.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L320__PRODUCT_UID.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L325__PRODUCT_UID.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L785__NOT_CONNECTED_TIMEOUT.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L789__MIME_APPLICATION_OCTETSTREAM.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L8__FEATHER_AUX_EN_PIN.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L13__NOTECARD_IF_SERIAL_PORT.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L17__NOTECARD_IF_SERIAL_BAUDRATE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L21__NOTECARD_IF_AUX_SERIAL_PORT.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L25__NOTECARD_IF_AUX_SERIAL_BAUDRATE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L29__NOTECARD_IF_I2C_ADDRESS.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L34__dbgSerial.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L36__dbgSerial.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L15__NOTEHUB_PROXY_ROUTE_ALIAS.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L216__RUN_SIZE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L227__RUN_ALL_SIZES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L236__RUN_ALL_SIZES_ALL_IFACES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L242__RUN_AUX_SERIAL_BAUDRATE_CHUNK.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L250__RUN_AUX_SERIAL_BAUDRATE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L258__RUN_AUX_SERIAL_ALL_CHUNK_SIZES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L265__RUN_AUX_SERIAL_SELECT_CHUNK_SIZES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L271__RUN_AUX_SERIAL_ALL_BAUDRATES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L279__RUN_AUX_SERIAL_SELECT_BAUDRATES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L27__TEST_CARD_BINARY_FILTER.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L285__TEST_AUX_SERIAL_EXHAUSTIVELY.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L289__RUN_AUX_SERIAL_BAUDRATES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L291__RUN_AUX_SERIAL_BAUDRATES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L298__RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L404__RUN_AUX_SERIAL_ALL_SIZES.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L416__RUN_SMOKE_TESTS.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L8__TEST_CARD_BINARY_EXHAUSTIVELY.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L11__TEST.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L19__TEST_SUITE.md create mode 100644 source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L29__RUN_FILTER.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1011__DEFINE_FAKE_VOID_FUNC14.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L101__RETURN_FAKE_RESULT.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1063__FAKE_VOID_FUNC14.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1068__DECLARE_FAKE_VOID_FUNC15.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1094__DEFINE_FAKE_VOID_FUNC15.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1148__FAKE_VOID_FUNC15.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L114__FFF_EXTERN_C.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1153__DECLARE_FAKE_VOID_FUNC16.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L115__FFF_END_EXTERN_C.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L117__FFF_EXTERN_C.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1180__DEFINE_FAKE_VOID_FUNC16.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L118__FFF_END_EXTERN_C.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L121__DEFINE_RESET_FUNCTION.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1236__FAKE_VOID_FUNC16.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1241__DECLARE_FAKE_VOID_FUNC17.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1269__DEFINE_FAKE_VOID_FUNC17.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1327__FAKE_VOID_FUNC17.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1332__DECLARE_FAKE_VOID_FUNC18.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1361__DEFINE_FAKE_VOID_FUNC18.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L140__DEFINE_FFF_GLOBALS.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1421__FAKE_VOID_FUNC18.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1426__DECLARE_FAKE_VOID_FUNC19.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1456__DEFINE_FAKE_VOID_FUNC19.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L145__FFF_RESET_HISTORY.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L149__REGISTER_CALL.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1518__FAKE_VOID_FUNC19.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1523__DECLARE_FAKE_VOID_FUNC20.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L153__DECLARE_FAKE_VOID_FUNC0.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1554__DEFINE_FAKE_VOID_FUNC20.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1618__FAKE_VOID_FUNC20.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1623__DECLARE_FAKE_VALUE_FUNC0.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1636__DEFINE_FAKE_VALUE_FUNC0.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L164__DEFINE_FAKE_VOID_FUNC0.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1669__FAKE_VALUE_FUNC0.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1674__DECLARE_FAKE_VALUE_FUNC1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1688__DEFINE_FAKE_VALUE_FUNC1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1723__FAKE_VALUE_FUNC1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1728__DECLARE_FAKE_VALUE_FUNC2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1743__DEFINE_FAKE_VALUE_FUNC2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1780__FAKE_VALUE_FUNC2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1785__DECLARE_FAKE_VALUE_FUNC3.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1801__DEFINE_FAKE_VALUE_FUNC3.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1840__FAKE_VALUE_FUNC3.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1845__DECLARE_FAKE_VALUE_FUNC4.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1862__DEFINE_FAKE_VALUE_FUNC4.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L188__FAKE_VOID_FUNC0.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1903__FAKE_VALUE_FUNC4.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1908__DECLARE_FAKE_VALUE_FUNC5.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1926__DEFINE_FAKE_VALUE_FUNC5.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L193__DECLARE_FAKE_VOID_FUNC1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1969__FAKE_VALUE_FUNC5.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1974__DECLARE_FAKE_VALUE_FUNC6.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L1993__DEFINE_FAKE_VALUE_FUNC6.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2038__FAKE_VALUE_FUNC6.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2043__DECLARE_FAKE_VALUE_FUNC7.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L205__DEFINE_FAKE_VOID_FUNC1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2063__DEFINE_FAKE_VALUE_FUNC7.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2110__FAKE_VALUE_FUNC7.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2115__DECLARE_FAKE_VALUE_FUNC8.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2136__DEFINE_FAKE_VALUE_FUNC8.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2185__FAKE_VALUE_FUNC8.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2190__DECLARE_FAKE_VALUE_FUNC9.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2212__DEFINE_FAKE_VALUE_FUNC9.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2263__FAKE_VALUE_FUNC9.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2268__DECLARE_FAKE_VALUE_FUNC10.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2291__DEFINE_FAKE_VALUE_FUNC10.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L231__FAKE_VOID_FUNC1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2344__FAKE_VALUE_FUNC10.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2349__DECLARE_FAKE_VALUE_FUNC11.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L236__DECLARE_FAKE_VOID_FUNC2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2373__DEFINE_FAKE_VALUE_FUNC11.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2428__FAKE_VALUE_FUNC11.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2433__DECLARE_FAKE_VALUE_FUNC12.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2458__DEFINE_FAKE_VALUE_FUNC12.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L249__DEFINE_FAKE_VOID_FUNC2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2515__FAKE_VALUE_FUNC12.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2520__DECLARE_FAKE_VALUE_FUNC13.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2546__DEFINE_FAKE_VALUE_FUNC13.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2605__FAKE_VALUE_FUNC13.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2610__DECLARE_FAKE_VALUE_FUNC14.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2637__DEFINE_FAKE_VALUE_FUNC14.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2698__FAKE_VALUE_FUNC14.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2703__DECLARE_FAKE_VALUE_FUNC15.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2731__DEFINE_FAKE_VALUE_FUNC15.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L277__FAKE_VOID_FUNC2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2794__FAKE_VALUE_FUNC15.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2799__DECLARE_FAKE_VALUE_FUNC16.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2828__DEFINE_FAKE_VALUE_FUNC16.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L282__DECLARE_FAKE_VOID_FUNC3.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2893__FAKE_VALUE_FUNC16.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2898__DECLARE_FAKE_VALUE_FUNC17.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2928__DEFINE_FAKE_VALUE_FUNC17.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L296__DEFINE_FAKE_VOID_FUNC3.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L2995__FAKE_VALUE_FUNC17.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3000__DECLARE_FAKE_VALUE_FUNC18.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3031__DEFINE_FAKE_VALUE_FUNC18.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3100__FAKE_VALUE_FUNC18.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3105__DECLARE_FAKE_VALUE_FUNC19.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3137__DEFINE_FAKE_VALUE_FUNC19.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3208__FAKE_VALUE_FUNC19.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3213__DECLARE_FAKE_VALUE_FUNC20.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3246__DEFINE_FAKE_VALUE_FUNC20.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L326__FAKE_VOID_FUNC3.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L32__FFF_MAX_ARGS.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3319__FAKE_VALUE_FUNC20.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L331__DECLARE_FAKE_VOID_FUNC4.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3324__DECLARE_FAKE_VOID_FUNC2_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3336__DEFINE_FAKE_VOID_FUNC2_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3371__FAKE_VOID_FUNC2_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3376__DECLARE_FAKE_VOID_FUNC3_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3389__DEFINE_FAKE_VOID_FUNC3_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3426__FAKE_VOID_FUNC3_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3431__DECLARE_FAKE_VOID_FUNC4_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3445__DEFINE_FAKE_VOID_FUNC4_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L346__DEFINE_FAKE_VOID_FUNC4.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3484__FAKE_VOID_FUNC4_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3489__DECLARE_FAKE_VOID_FUNC5_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L34__FFF_ARG_HISTORY_LEN.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3504__DEFINE_FAKE_VOID_FUNC5_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3545__FAKE_VOID_FUNC5_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3550__DECLARE_FAKE_VOID_FUNC6_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3566__DEFINE_FAKE_VOID_FUNC6_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3609__FAKE_VOID_FUNC6_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3614__DECLARE_FAKE_VOID_FUNC7_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3631__DEFINE_FAKE_VOID_FUNC7_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3676__FAKE_VOID_FUNC7_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3681__DECLARE_FAKE_VOID_FUNC8_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3699__DEFINE_FAKE_VOID_FUNC8_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3746__FAKE_VOID_FUNC8_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3751__DECLARE_FAKE_VOID_FUNC9_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3770__DEFINE_FAKE_VOID_FUNC9_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L378__FAKE_VOID_FUNC4.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L37__FFF_CALL_HISTORY_LEN.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3819__FAKE_VOID_FUNC9_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3824__DECLARE_FAKE_VOID_FUNC10_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L383__DECLARE_FAKE_VOID_FUNC5.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3844__DEFINE_FAKE_VOID_FUNC10_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3895__FAKE_VOID_FUNC10_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3900__DECLARE_FAKE_VOID_FUNC11_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3921__DEFINE_FAKE_VOID_FUNC11_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3974__FAKE_VOID_FUNC11_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L3979__DECLARE_FAKE_VOID_FUNC12_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L399__DEFINE_FAKE_VOID_FUNC5.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4001__DEFINE_FAKE_VOID_FUNC12_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4056__FAKE_VOID_FUNC12_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4061__DECLARE_FAKE_VOID_FUNC13_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4084__DEFINE_FAKE_VOID_FUNC13_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4141__FAKE_VOID_FUNC13_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4146__DECLARE_FAKE_VOID_FUNC14_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4170__DEFINE_FAKE_VOID_FUNC14_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4229__FAKE_VOID_FUNC14_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4234__DECLARE_FAKE_VOID_FUNC15_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4259__DEFINE_FAKE_VOID_FUNC15_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4320__FAKE_VOID_FUNC15_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4325__DECLARE_FAKE_VOID_FUNC16_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L433__FAKE_VOID_FUNC5.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4351__DEFINE_FAKE_VOID_FUNC16_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L438__DECLARE_FAKE_VOID_FUNC6.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L43__CUSTOM_FFF_FUNCTION_TEMPLATE.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4414__FAKE_VOID_FUNC16_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4419__DECLARE_FAKE_VOID_FUNC17_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4446__DEFINE_FAKE_VOID_FUNC17_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4511__FAKE_VOID_FUNC17_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4516__DECLARE_FAKE_VOID_FUNC18_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4544__DEFINE_FAKE_VOID_FUNC18_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L455__DEFINE_FAKE_VOID_FUNC6.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4611__FAKE_VOID_FUNC18_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4616__DECLARE_FAKE_VOID_FUNC19_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4645__DEFINE_FAKE_VOID_FUNC19_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4714__FAKE_VOID_FUNC19_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4719__DECLARE_FAKE_VOID_FUNC20_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4749__DEFINE_FAKE_VOID_FUNC20_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L47__SET_RETURN_SEQ.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4820__FAKE_VOID_FUNC20_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4825__DECLARE_FAKE_VALUE_FUNC2_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4839__DEFINE_FAKE_VALUE_FUNC2_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4883__FAKE_VALUE_FUNC2_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4888__DECLARE_FAKE_VALUE_FUNC3_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4903__DEFINE_FAKE_VALUE_FUNC3_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L491__FAKE_VOID_FUNC6.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4949__FAKE_VALUE_FUNC3_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4954__DECLARE_FAKE_VALUE_FUNC4_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L496__DECLARE_FAKE_VOID_FUNC7.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L4970__DEFINE_FAKE_VALUE_FUNC4_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5018__FAKE_VALUE_FUNC4_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5023__DECLARE_FAKE_VALUE_FUNC5_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5040__DEFINE_FAKE_VALUE_FUNC5_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5090__FAKE_VALUE_FUNC5_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5095__DECLARE_FAKE_VALUE_FUNC6_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L50__SET_CUSTOM_FAKE_SEQ.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5113__DEFINE_FAKE_VALUE_FUNC6_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L514__DEFINE_FAKE_VOID_FUNC7.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5165__FAKE_VALUE_FUNC6_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5170__DECLARE_FAKE_VALUE_FUNC7_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5189__DEFINE_FAKE_VALUE_FUNC7_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5243__FAKE_VALUE_FUNC7_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5248__DECLARE_FAKE_VALUE_FUNC8_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5268__DEFINE_FAKE_VALUE_FUNC8_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5324__FAKE_VALUE_FUNC8_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5329__DECLARE_FAKE_VALUE_FUNC9_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5350__DEFINE_FAKE_VALUE_FUNC9_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5408__FAKE_VALUE_FUNC9_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5413__DECLARE_FAKE_VALUE_FUNC10_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5435__DEFINE_FAKE_VALUE_FUNC10_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5495__FAKE_VALUE_FUNC10_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5500__DECLARE_FAKE_VALUE_FUNC11_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5523__DEFINE_FAKE_VALUE_FUNC11_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L552__FAKE_VOID_FUNC7.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L557__DECLARE_FAKE_VOID_FUNC8.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5585__FAKE_VALUE_FUNC11_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5590__DECLARE_FAKE_VALUE_FUNC12_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L55__RESET_FAKE.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5614__DEFINE_FAKE_VALUE_FUNC12_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5678__FAKE_VALUE_FUNC12_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5683__DECLARE_FAKE_VALUE_FUNC13_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5708__DEFINE_FAKE_VALUE_FUNC13_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L576__DEFINE_FAKE_VOID_FUNC8.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5774__FAKE_VALUE_FUNC13_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5779__DECLARE_FAKE_VALUE_FUNC14_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5805__DEFINE_FAKE_VALUE_FUNC14_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5873__FAKE_VALUE_FUNC14_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5878__DECLARE_FAKE_VALUE_FUNC15_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5905__DEFINE_FAKE_VALUE_FUNC15_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5975__FAKE_VALUE_FUNC15_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L5980__DECLARE_FAKE_VALUE_FUNC16_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6008__DEFINE_FAKE_VALUE_FUNC16_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6080__FAKE_VALUE_FUNC16_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6085__DECLARE_FAKE_VALUE_FUNC17_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L60__DECLARE_ARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6114__DEFINE_FAKE_VALUE_FUNC17_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L616__FAKE_VOID_FUNC8.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6188__FAKE_VALUE_FUNC17_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6193__DECLARE_FAKE_VALUE_FUNC18_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L621__DECLARE_FAKE_VOID_FUNC9.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6223__DEFINE_FAKE_VALUE_FUNC18_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6299__FAKE_VALUE_FUNC18_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6304__DECLARE_FAKE_VALUE_FUNC19_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6335__DEFINE_FAKE_VALUE_FUNC19_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6413__FAKE_VALUE_FUNC19_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6418__DECLARE_FAKE_VALUE_FUNC20_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L641__DEFINE_FAKE_VOID_FUNC9.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6450__DEFINE_FAKE_VALUE_FUNC20_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L64__DECLARE_ALL_FUNC_COMMON.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6530__FAKE_VALUE_FUNC20_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6535__EXPAND.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6537__PP_NARG_MINUS2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6539__PP_NARG_MINUS2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6541__PP_ARG_MINUS2_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6543__PP_RSEQ_N_MINUS2.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6545__PP_NARG_MINUS1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6547__PP_NARG_MINUS1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6549__PP_ARG_MINUS1_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6551__PP_RSEQ_N_MINUS1.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6557__FAKE_VALUE_FUNC.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6559__FUNC_VALUE.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6561__FUNC_VALUE_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6564__FAKE_VOID_FUNC.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6566__FUNC_VOID.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6568__FUNC_VOID_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6571__FAKE_VALUE_FUNC_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6573__FUNC_VALUE_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6575__FUNC_VALUE_VARARG_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6578__FAKE_VOID_FUNC_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6580__FUNC_VOID_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6582__FUNC_VOID_VARARG_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6588__DECLARE_FAKE_VALUE_FUNC.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6590__DECLARE_FUNC_VALUE.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6592__DECLARE_FUNC_VALUE_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6595__DECLARE_FAKE_VOID_FUNC.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6597__DECLARE_FUNC_VOID.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6599__DECLARE_FUNC_VOID_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6602__DECLARE_FAKE_VALUE_FUNC_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6604__DECLARE_FUNC_VALUE_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6606__DECLARE_FUNC_VALUE_VARARG_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6609__DECLARE_FAKE_VOID_FUNC_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6611__DECLARE_FUNC_VOID_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6613__DECLARE_FUNC_VOID_VARARG_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6619__DEFINE_FAKE_VALUE_FUNC.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6621__DEFINE_FUNC_VALUE.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6623__DEFINE_FUNC_VALUE_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6626__DEFINE_FAKE_VOID_FUNC.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6628__DEFINE_FUNC_VOID.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6630__DEFINE_FUNC_VOID_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6633__DEFINE_FAKE_VALUE_FUNC_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6635__DEFINE_FUNC_VALUE_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6637__DEFINE_FUNC_VALUE_VARARG_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6640__DEFINE_FAKE_VOID_FUNC_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6642__DEFINE_FUNC_VOID_VARARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L6644__DEFINE_FUNC_VOID_VARARG_N.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L683__FAKE_VOID_FUNC9.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L688__DECLARE_FAKE_VOID_FUNC10.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L69__DECLARE_RETURN_VALUE_HISTORY.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L709__DEFINE_FAKE_VOID_FUNC10.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L72__SAVE_ARG.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L753__FAKE_VOID_FUNC10.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L758__DECLARE_FAKE_VOID_FUNC11.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L75__ROOM_FOR_MORE_HISTORY.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L780__DEFINE_FAKE_VOID_FUNC11.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L78__SAVE_RET_HISTORY.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L826__FAKE_VOID_FUNC11.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L82__SAVE_ARG_HISTORY.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L831__DECLARE_FAKE_VOID_FUNC12.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L854__DEFINE_FAKE_VOID_FUNC12.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L85__HISTORY_DROPPED.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L88__DECLARE_VALUE_FUNCTION_VARIABLES.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L902__FAKE_VOID_FUNC12.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L907__DECLARE_FAKE_VOID_FUNC13.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L931__DEFINE_FAKE_VOID_FUNC13.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L94__DECLARE_CUSTOM_FAKE_SEQ_VARIABLES.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L981__FAKE_VOID_FUNC13.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L986__DECLARE_FAKE_VOID_FUNC14.md create mode 100644 source-research/artifacts/macros/test_include_fff_h__L98__INCREMENT_CALL_COUNT.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L26__FIELD.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L28__JINTEGER_MAX_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L33__JINTEGER_MAX_TO_FLOAT.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L34__JINTEGER_MAX_TO_FLOAT_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L38__JINTEGER_MAX_PLUS_4096.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L39__JINTEGER_MAX_PLUS_4096_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L41__JINTEGER_MAX_PLUS_4096_TO_FLOAT.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L42__JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L44__JINTEGER_MIN_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L47__JINTEGER_MIN_TO_FLOAT.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L48__JINTEGER_MIN_TO_FLOAT_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L50__JINTEGER_MIN_MINUS_4096.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L51__JINTEGER_MIN_MINUS_4096_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L53__JINTEGER_MIN_MINUS_4096_TO_FLOAT.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L54__JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L56__SMALL_FLOAT.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L57__SMALL_FLOAT_STR.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L59__UNIX_TIMESTAMP.md create mode 100644 source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L60__UNIX_TIMESTAMP_STR.md create mode 100644 source-research/artifacts/macros/test_src__serialNoteTransaction_test_cpp__L80__SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE.md create mode 100644 source-research/artifacts/types/n_cjson_c__L232__lconv.md create mode 100644 source-research/artifacts/types/n_cjson_c__L239__typedef_239.md create mode 100644 source-research/artifacts/types/n_cjson_c__L340__typedef_340.md create mode 100644 source-research/artifacts/types/n_cjson_c__L82__typedef_82.md create mode 100644 source-research/artifacts/types/n_cjson_h__L103__Jbool.md create mode 100644 source-research/artifacts/types/n_cjson_h__L78__typedef_78.md create mode 100644 source-research/artifacts/types/n_cjson_h__L80__J.md create mode 100644 source-research/artifacts/types/n_cjson_h__L81__J.md create mode 100644 source-research/artifacts/types/n_cjson_h__L83__J.md create mode 100644 source-research/artifacts/types/n_cjson_h__L98__typedef_98.md create mode 100644 source-research/artifacts/types/n_helpers_c__L2388__typedef_2388.md create mode 100644 source-research/artifacts/types/n_helpers_c__L2389__objHeader_s.md create mode 100644 source-research/artifacts/types/n_hooks_c__L190__nNoteResetFn.md create mode 100644 source-research/artifacts/types/n_hooks_c__L191__nTransactionFn.md create mode 100644 source-research/artifacts/types/n_hooks_c__L192__nReceiveFn.md create mode 100644 source-research/artifacts/types/n_hooks_c__L193__nTransmitFn.md create mode 100644 source-research/artifacts/types/note_h__L100__JUINTEGER.md create mode 100644 source-research/artifacts/types/note_h__L105__JTIME.md create mode 100644 source-research/artifacts/types/note_h__L124__delayMsFn.md create mode 100644 source-research/artifacts/types/note_h__L133__freeFn.md create mode 100644 source-research/artifacts/types/note_h__L142__getMsFn.md create mode 100644 source-research/artifacts/types/note_h__L1523__typedef_1523.md create mode 100644 source-research/artifacts/types/note_h__L153__debugOutputFn.md create mode 100644 source-research/artifacts/types/note_h__L166__heartbeatFn.md create mode 100644 source-research/artifacts/types/note_h__L183__i2cReceiveFn.md create mode 100644 source-research/artifacts/types/note_h__L196__i2cResetFn.md create mode 100644 source-research/artifacts/types/note_h__L2109__typedef_2109.md create mode 100644 source-research/artifacts/types/note_h__L211__i2cTransmitFn.md create mode 100644 source-research/artifacts/types/note_h__L223__mallocFn.md create mode 100644 source-research/artifacts/types/note_h__L230__mutexFn.md create mode 100644 source-research/artifacts/types/note_h__L239__serialAvailableFn.md create mode 100644 source-research/artifacts/types/note_h__L248__serialReceiveFn.md create mode 100644 source-research/artifacts/types/note_h__L260__serialResetFn.md create mode 100644 source-research/artifacts/types/note_h__L271__serialTransmitFn.md create mode 100644 source-research/artifacts/types/note_h__L282__txnStartFn.md create mode 100644 source-research/artifacts/types/note_h__L289__txnStopFn.md create mode 100644 source-research/artifacts/types/note_h__L85__JNUMBER.md create mode 100644 source-research/artifacts/types/note_h__L87__JNUMBER.md create mode 100644 source-research/artifacts/types/note_h__L93__JINTEGER.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L27__BinaryImage.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L342__TransferDetails.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L356__TransferHandlerContext.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L372__BinaryTransfer.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L37__BinaryGenerator.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L6__NotecardInterface.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_cpp__L21__content_check_fn.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L12__BuildAllSameValue.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L29__AllZeros.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L33__AllSevens.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L37__BuildFromBinaryImage.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L49__SmallBinaryImage.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L53__BuildRandom.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L63__BinaryTestArgs.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L77__Handler.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L13__test_suite_hook_fn.md create mode 100644 source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L14__test_suite_filter_fn.md create mode 100644 source-research/artifacts/types/test_hitl_scripts_md5srv_py__L25__HTTPException.md create mode 100644 source-research/artifacts/types/test_hitl_scripts_md5srv_py__L33__WebRequestHandler.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1069__typedef_1069.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1154__typedef_1154.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1242__typedef_1242.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L130__fff_function_t.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L131__typedef_131.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1333__typedef_1333.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1427__typedef_1427.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1524__typedef_1524.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L154__typedef_154.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1624__typedef_1624.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1675__typedef_1675.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1729__typedef_1729.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1786__typedef_1786.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1846__typedef_1846.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1909__typedef_1909.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L194__typedef_194.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L1975__typedef_1975.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2044__typedef_2044.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2116__typedef_2116.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2191__typedef_2191.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2269__typedef_2269.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2350__typedef_2350.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L237__typedef_237.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2434__typedef_2434.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2521__typedef_2521.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2611__typedef_2611.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2704__typedef_2704.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2800__typedef_2800.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L283__typedef_283.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L2899__typedef_2899.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3001__typedef_3001.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3106__typedef_3106.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3214__typedef_3214.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3325__typedef_3325.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L332__typedef_332.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3377__typedef_3377.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3432__typedef_3432.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3490__typedef_3490.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3551__typedef_3551.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3615__typedef_3615.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3682__typedef_3682.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3752__typedef_3752.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3825__typedef_3825.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L384__typedef_384.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3901__typedef_3901.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L3980__typedef_3980.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4062__typedef_4062.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4147__typedef_4147.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4235__typedef_4235.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4326__typedef_4326.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L439__typedef_439.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4420__typedef_4420.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4517__typedef_4517.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4617__typedef_4617.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4720__typedef_4720.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4826__typedef_4826.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4889__typedef_4889.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L4955__typedef_4955.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L497__typedef_497.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5024__typedef_5024.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5096__typedef_5096.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5171__typedef_5171.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5249__typedef_5249.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5330__typedef_5330.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5414__typedef_5414.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5501__typedef_5501.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L558__typedef_558.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5591__typedef_5591.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5684__typedef_5684.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5780__typedef_5780.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5879__typedef_5879.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L5981__typedef_5981.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L6086__typedef_6086.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L6194__typedef_6194.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L622__typedef_622.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L6305__typedef_6305.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L6419__typedef_6419.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L689__typedef_689.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L759__typedef_759.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L832__typedef_832.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L908__typedef_908.md create mode 100644 source-research/artifacts/types/test_include_fff_h__L987__typedef_987.md create mode 100644 source-research/artifacts/types/test_src_JGetType_test_cpp__L63__AddStringFn.md create mode 100644 source-research/artifacts/types/test_src_NoteDebug_test_cpp__L21__typedef_21.md create mode 100644 source-research/artifacts/types/test_src_NotePing_test_cpp__L40__class.md create mode 100644 source-research/artifacts/types/test_src__noteChunkedReceive_test_cpp__L18__nReceiveFn.md create mode 100644 source-research/artifacts/types/test_src__noteChunkedTransmit_test_cpp__L18__nTransmitFn.md create mode 100644 source-research/artifacts/types/test_src__noteHardReset_test_cpp__L18__nNoteResetFn.md create mode 100644 source-research/artifacts/types/test_src__noteJSONTransaction_test_cpp__L18__nTransactionFn.md create mode 100644 source-research/frontier/active-slice.json create mode 100644 source-research/frontier/work-queue.json create mode 100644 source-research/inventory/artifact-status.json create mode 100644 source-research/inventory/claims-ledger.json create mode 100644 source-research/inventory/cmake-ast-validation.json create mode 100644 source-research/inventory/compile_commands.default.json create mode 100644 source-research/inventory/compile_commands.lowmem-single.json create mode 100644 source-research/inventory/dependency-graph.json create mode 100644 source-research/inventory/evidence-validation.json create mode 100644 source-research/inventory/graph-substrate.json create mode 100644 source-research/inventory/impact-report.json create mode 100644 source-research/inventory/progress-summary.json create mode 100644 source-research/inventory/repair-plan.json create mode 100644 source-research/inventory/source-drift.json create mode 100644 source-research/inventory/source-inventory.json create mode 100644 source-research/inventory/source-node.schema.json create mode 100644 source-research/inventory/symbol-index.json create mode 100644 source-research/overview.md create mode 100644 source-research/research-index.md create mode 100644 source-research/research-manifest.json create mode 100644 source-research/worker-reports/codecs-binary-portability.md create mode 100644 source-research/worker-reports/ftoa-number-formatting.md create mode 100644 source-research/worker-reports/high-level-helpers.md create mode 100644 source-research/worker-reports/hooks-and-adapter-layer.md create mode 100644 source-research/worker-reports/json-core.md create mode 100644 source-research/worker-reports/json-printing-closure.md create mode 100644 source-research/worker-reports/request-orchestration.md create mode 100644 source-research/worker-reports/transports.md diff --git a/.cursor/rules/architecture-docs.mdc b/.cursor/rules/architecture-docs.mdc index 441e1409..0298a097 100644 --- a/.cursor/rules/architecture-docs.mdc +++ b/.cursor/rules/architecture-docs.mdc @@ -9,10 +9,10 @@ Before non-trivial code changes, read the repository architecture context: - `AGENTS.md` - `ARCHITECTURE.md` -- `docs/architecture/architecture.json` -- `docs/architecture/architecture.html` when a visual overview helps +- `docs/architecture/architecture.html` when a visual graph or traversal overview helps - Relevant files under `docs/architecture/` +- `source-research/research-index.md` and relevant source-research artifacts for architecture, dependency, public API, hook, transport, runtime-flow, build-variant, or broad code-generation work -When a change affects module boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, or build/test strategy, update the closest relevant architecture docs in the same change. Keep the Markdown, JSON, and HTML architecture maps synchronized when applicable. +When a change affects module boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, or build/test strategy, update the closest relevant architecture docs in the same change. Keep the Markdown docs and `docs/architecture/architecture.html` synchronized when applicable. Update `source-research/` when the same change affects source-derived behavior, dependencies, public APIs, hooks, runtime flow, build variants, or architecture claims. If no architecture doc update is needed, say so explicitly in the final response or PR notes. diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 38fb0282..abe1da5a 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -4,10 +4,10 @@ Before making non-trivial code changes in this repository, read: - `AGENTS.md` - `ARCHITECTURE.md` -- `docs/architecture/architecture.json` -- `docs/architecture/architecture.html` when a visual overview helps +- `docs/architecture/architecture.html` when a visual graph or traversal overview helps - Relevant files under `docs/architecture/` +- `source-research/research-index.md` and relevant source-research artifacts for architecture, dependency, public API, hook, transport, runtime-flow, build-variant, or broad code-generation work -Keep architecture documentation current with code changes. Update the closest relevant architecture file when a change affects boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, or build/test strategy. Keep the Markdown, JSON, and HTML architecture maps synchronized when applicable. +Keep architecture documentation current with code changes. Update the closest relevant architecture file when a change affects boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, or build/test strategy. Keep the Markdown docs and `docs/architecture/architecture.html` synchronized when applicable. Update `source-research/` when the same change affects source-derived behavior, dependencies, public APIs, hooks, runtime flow, build variants, or architecture claims. If a change is implementation-only and does not require architecture doc updates, mention that explicitly in PR notes. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 383fbd1b..16a17c12 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,10 +75,16 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Check embedded architecture graph data + - name: Check architecture docs do not reference removed JSON map run: | - node docs/architecture/embed-architecture-json.mjs - git diff --exit-code docs/architecture/architecture.html + architecture_json_pattern='architecture[.]''json' + embed_script_pattern='embed-architecture''-json' + for pattern in "$architecture_json_pattern" "$embed_script_pattern"; do + ! grep -R "$pattern" \ + AGENTS.md ARCHITECTURE.md CLAUDE.md GEMINI.md \ + .github/copilot-instructions.md .cursor/rules/architecture-docs.mdc \ + docs + done build_docs: runs-on: ubuntu-latest diff --git a/AGENTS.md b/AGENTS.md index fe12bb69..de55123b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -5,17 +5,53 @@ This repository uses living architecture documentation. Treat architecture docs Before non-trivial code changes: 1. Read `ARCHITECTURE.md`. -2. Read `docs/architecture/architecture.json` for the structured map. -3. Read `docs/architecture/architecture.html` when a visual overview helps. -4. Read any other relevant files under `docs/architecture/`. +2. Read `docs/architecture/architecture.html` when a visual graph or traversal overview helps. +3. Read any other relevant files under `docs/architecture/`. +4. Read `source-research/research-index.md` and the relevant source-research artifacts described below when the change involves architecture, inter-module dependencies, public APIs, hooks, transports, build variants, runtime flow, or broad code generation. 5. Check `README.md` and tests relevant to the behavior being changed. +After every non-trivial code change, explicitly evaluate both maintenance surfaces: + +1. Architecture docs: update `ARCHITECTURE.md` and `docs/architecture/` when the change affects system shape, flow, boundaries, dependencies, public APIs, runtime model, or testing strategy. +2. Source research: update `source-research/` when the change affects source-derived behavior, dependencies, public APIs, hooks, runtime flow, build variants, or architecture claims. + +If either surface is not affected, say so explicitly in the final response or PR notes. + +## Source Research Artifacts + +This repository includes durable source-derived research under `source-research/`. Use these artifacts as required orientation and impact-analysis context for architecture questions, dependency analysis, public API changes, hook/transport changes, runtime-flow changes, build/test strategy changes, and broad code-generation or refactoring work. + +Start with: + +1. `source-research/research-index.md` +2. `source-research/overview.md` +3. `source-research/inventory/symbol-index.json` +4. `source-research/inventory/dependency-graph.json` +5. `source-research/inventory/claims-ledger.json` +6. Relevant node artifacts under `source-research/artifacts/` + +Use `source-research` to identify relevant symbols, callers, callees, aliases/macros, module boundaries, public surfaces, finalized claims, and known build/configuration variants. Then read the implementation source before making or asserting behavior changes. + +Source files remain authoritative. If source and `source-research` disagree, trust source and update or mark the affected research artifacts stale. If source-research prose and machine-readable JSON disagree, prefer the current JSON and repair stale prose. Use only finalized/source-backed claims as established facts; treat preliminary, stale, or inferred claims as leads to verify in source. + +When code changes affect behavior, dependencies, public APIs, hooks, runtime flow, build variants, or architecture claims, update the relevant `source-research` artifacts in the same change. Prefer the `source-first-repo-research` SKILL tools when available: + +- Run lifecycle and evidence refreshes after artifact updates: + - `research_lifecycle.py analyze source-research --write` + - `research_lifecycle.py evidence source-research --write` + - `validate_research.py source-research` +- For finalized create-complete validation, run `validate_research.py source-research --final-response`. +- For C/C++ graph-impacting changes, rerun `cmake_ast_validate.py` against the relevant compile database, review unresolved edge candidates, and merge source-confirmed repairs with `graph_edge_upsert.py`. +- Do not edit dependency graph facts only in prose. Update canonical JSON artifacts and validate them. +- If the SKILL tools are unavailable, make the source-research update manually from source evidence and state the validation limitation in the final response or PR notes. + When you change architecture-relevant behavior: - Update the closest relevant `ARCHITECTURE.md` or `docs/architecture/*.md` file. -- Keep `docs/architecture/architecture.json` and `docs/architecture/architecture.html` synchronized with the Markdown architecture docs. +- Keep `docs/architecture/architecture.html` synchronized with the Markdown architecture docs and the current source-research evidence. - Add or update an ADR under `docs/architecture/decisions/` when the change records a durable design decision or tradeoff. +- Update `source-research/` when the same change affects source-derived behavior, dependencies, public APIs, hooks, runtime flow, build variants, or architecture claims. - Keep docs factual and current. Remove stale statements instead of adding contradictory notes. -- If no architecture doc update is needed, mention that explicitly in your final response or PR notes. +- Apply the two-surface maintenance check above after every non-trivial code change. `note-c` is a portable C SDK. Keep platform-specific behavior behind hooks or in adapter libraries unless the public architecture intentionally changes. diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 5c92ea64..9be6e6f4 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -4,8 +4,22 @@ This file is the architecture entrypoint for `note-c`. Keep it current when code Companion architecture artifacts: -- `docs/architecture/architecture.html`: human-readable visual architecture map. -- `docs/architecture/architecture.json`: structured architecture map for AI agents and tooling. +- `docs/architecture/architecture.html`: human-readable graph traversal view. +- `source-research/`: source-derived structured evidence for symbols, dependencies, claims, and build variants. + +## How To Use This File + +`ARCHITECTURE.md` is the curated architecture entrypoint. It describes the intended system shape, durable boundaries, public contracts, runtime model, portability constraints, and testing strategy that maintainers should preserve when changing `note-c`. + +For source-backed implementation evidence, use `source-research/`: + +- `source-research/research-index.md`: re-entry point and validation status. +- `source-research/overview.md`: source-derived system summary. +- `source-research/inventory/dependency-graph.json`: caller/callee and dependency graph. +- `source-research/inventory/symbol-index.json`: symbol and artifact lookup. +- `source-research/inventory/claims-ledger.json`: finalized source-backed claims. + +Use this file to understand what the architecture is meant to be. Use `source-research/` to verify how the current source implements it and to scope impact before code changes. Source remains authoritative: if implementation, `source-research/`, and architecture docs disagree, inspect the source, then update the stale architecture or research artifact in the same change. ## Purpose @@ -17,10 +31,10 @@ Companion architecture artifacts: - `note.h`: public SDK API, version constants, hook typedefs, request helpers, and compatibility surface. - `n_lib.h`: internal declarations shared across implementation files. -- `n_request.c`: request/response lifecycle, transaction orchestration, and high-level Notecard communication behavior. -- `n_serial.c`: serial transport implementation and chunked serial transmit/receive behavior. -- `n_i2c.c`: I2C transport implementation and chunked I2C transmit/receive behavior. -- `n_hooks.c`: registration and invocation of platform hooks for memory, time, mutexes, debug output, and transports. +- `n_request.c`: request/response lifecycle, transaction orchestration, retry/timeout behavior, and request ownership boundaries. +- `n_serial.c`: serial transport implementation and chunked newline-framed serial transmit/receive behavior. +- `n_i2c.c`: I2C transport implementation and chunked newline-framed I2C transmit/receive behavior. +- `n_hooks.c`: global function-pointer hook registry, active-interface dispatch, and invocation of platform hooks for memory, time, mutexes, debug output, and transports. - `n_cjson.c`, `n_cjson.h`, `n_cjson_helpers.c`: bundled JSON representation and helper APIs. - `n_helpers.c`, `n_str.c`, `n_printf.c`, `n_atof.c`, `n_ftoa.c`, `n_b64.c`, `n_cobs.c`, `n_md5.c`, `n_const.c`, `n_ua.c`: portability helpers, encoding, formatting, constants, and utility behavior. - `test/`: unit tests and mocks for protecting SDK behavior without requiring real hardware. @@ -50,7 +64,9 @@ platform driver / hardware bus Notecard ``` -Applications normally build requests as `J` objects, send them through `NoteRequest`, `NoteRequestResponse`, or higher-level helpers, then release responses through the JSON/delete APIs. Transport and platform behavior is supplied through hooks so the same core code can run on microcontrollers, embedded Linux, tests, and other C/C++ environments. +Applications normally build requests as `J` objects, send them through `NoteRequest`, `NoteRequestResponse`, retrying variants, or higher-level helpers, then release returned responses through the JSON/delete APIs. The consuming request wrappers delete the input request object after transaction; lower-level `NoteTransaction` paths leave request ownership with the caller. `NoteRequestResponseJSON` is a separate raw newline-delimited JSON string path with caller-owned request and response strings. + +Transport and platform behavior is supplied through hooks so the same core code can run on microcontrollers, embedded Linux, tests, and other C/C++ environments. Serial and I2C transports move raw newline-framed bytes through hook dispatch. Binary payload helpers, not the transport implementations, own COBS framing and MD5 verification. ## Public Contracts @@ -58,8 +74,10 @@ The main compatibility contracts are: - Public functions, typedefs, constants, and macros in `note.h`. - JSON object behavior exposed through `J` and helper functions. +- Request/response ownership semantics for public transaction APIs. - Hook signatures for serial, I2C, memory, mutex, time, and debug output. - Notecard request/response semantics and timeout/retry behavior. +- Build configuration behavior for low-memory, single-precision, user-agent, CRC, and portability-helper variants. - Version constants and release expectations documented in `README.md`. Breaking changes to these contracts require deliberate versioning, migration notes, and architecture documentation updates. @@ -68,10 +86,14 @@ Breaking changes to these contracts require deliberate versioning, migration not `note-c` is intentionally self-contained and portable. It vendors the JSON implementation and avoids mandatory platform runtime dependencies. Adapter repositories may embed or wrap this repository, including `note-arduino`, `note-zephyr`, `note-espidf`, and POSIX-focused integrations. +Build configuration is part of the portability model. CMake detects platform `strlcpy`/`strlcat` support and only includes bundled `n_str.c` helpers when needed. Low-memory builds disable user-agent support and request CRC paths, omit `n_ua.c`, use compact error/log constants, and reduce allocation chunk size. + ## Runtime Model At runtime, host code initializes the relevant hooks, constructs Notecard requests, and calls `note-c` APIs. `note-c` serializes requests, sends bytes through the selected hook-backed transport, parses responses, and returns JSON objects or status to the caller. +Hook state is global to the SDK instance. Hook registration stores caller-owned function pointers, and `_noteSetActiveInterface` selects the active serial or I2C dispatch table. Mutex hooks are optional: many hook setters/getters and transport paths use the internal lock macros when available, but not every hook accessor is lock-protected. + Unit tests use mocks to validate behavior without hardware. Hardware validation may be performed through adapter libraries or Notestation-backed workflows when bus-level or device-level behavior matters. ## Testing Strategy @@ -91,4 +113,4 @@ Update this file or `docs/architecture/` when a change affects: - Cross-repo expectations for adapter libraries. - Build, test, CI, release, or versioning strategy. -When updating architecture, keep this Markdown overview, `docs/architecture/architecture.html`, and `docs/architecture/architecture.json` consistent. +When updating architecture, keep this Markdown overview, `docs/architecture/architecture.html`, and relevant `source-research/` artifacts consistent with the source. diff --git a/CLAUDE.md b/CLAUDE.md index 2bb07514..de3defb8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,15 +1,19 @@ # Claude Instructions -This repository uses living architecture documentation. Treat these files as required context, the same way you would treat README files. +`AGENTS.md` is the canonical repository instruction file. Read it first and follow its architecture-documentation and `source-research/` requirements. Before non-trivial code changes: 1. Read `AGENTS.md` for repository operating rules. 2. Read `ARCHITECTURE.md`. -3. Read `docs/architecture/architecture.json` for the structured map. -4. Read `docs/architecture/architecture.html` when a visual overview helps. -5. Read relevant files under `docs/architecture/`. +3. Read `docs/architecture/architecture.html` when a visual graph or traversal overview helps. +4. Read relevant files under `docs/architecture/`. +5. Read `source-research/research-index.md` and the relevant source-research artifacts named in `AGENTS.md` when the task involves architecture, dependencies, public APIs, hooks, transports, runtime flow, build variants, or broad code generation. -When a change affects architecture, update the docs in the same change, including `ARCHITECTURE.md`, `docs/architecture/architecture.json`, and `docs/architecture/architecture.html` when applicable. Architecture-relevant changes include module boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, and build/test strategy. +When a change affects architecture, update the docs in the same change, including `ARCHITECTURE.md`, `docs/architecture/architecture.html`, and relevant files under `docs/architecture/` when applicable. Architecture-relevant changes include module boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, and build/test strategy. -If no architecture doc update is needed, say that explicitly in your final response or PR notes. +When a change affects source-derived behavior, dependencies, public APIs, hooks, runtime flow, build variants, or architecture claims, update `source-research/` and validate it with the `source-first-repo-research` SKILL tools when available. + +After every non-trivial code change, explicitly evaluate both maintenance surfaces: architecture docs and `source-research/`. + +If no architecture doc or source-research update is needed, say that explicitly in your final response or PR notes. diff --git a/GEMINI.md b/GEMINI.md index bff8c1c2..b956319a 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -1,13 +1,19 @@ # Gemini Instructions -This repository uses living architecture documentation. Treat these files as required context before non-trivial code changes: +`AGENTS.md` is the canonical repository instruction file. Read it first and follow its architecture-documentation and `source-research/` requirements. + +Before non-trivial code changes, required context includes: 1. `AGENTS.md` 2. `ARCHITECTURE.md` -3. `docs/architecture/architecture.json` -4. `docs/architecture/architecture.html` when a visual overview helps -5. Relevant files under `docs/architecture/` +3. `docs/architecture/architecture.html` when a visual graph or traversal overview helps +4. Relevant files under `docs/architecture/` +5. `source-research/research-index.md` and the relevant source-research artifacts named in `AGENTS.md` when the task involves architecture, dependencies, public APIs, hooks, transports, runtime flow, build variants, or broad code generation + +When a change affects module boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, or build/test strategy, update the architecture docs in the same change, including the Markdown docs, `docs/architecture/architecture.html`, and relevant files under `docs/architecture/` when applicable. + +When a change affects source-derived behavior, dependencies, public APIs, hooks, runtime flow, build variants, or architecture claims, update `source-research/` and validate it with the `source-first-repo-research` SKILL tools when available. -When a change affects module boundaries, public APIs, hook signatures, dependencies, data/control flow, transport behavior, runtime assumptions, or build/test strategy, update the architecture docs in the same change, including the Markdown, JSON, and HTML architecture maps when applicable. +After every non-trivial code change, explicitly evaluate both maintenance surfaces: architecture docs and `source-research/`. -If no architecture doc update is needed, say so explicitly in the final response or PR notes. +If no architecture doc or source-research update is needed, say so explicitly in the final response or PR notes. diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index e20c6eb9..576768d4 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -25,9 +25,6 @@ add_custom_target( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DOCS_SRC_DIR}/architecture/architecture.html ${DOCS_BUILD_DIR}/architecture/architecture.html - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${DOCS_SRC_DIR}/architecture/architecture.json - ${DOCS_BUILD_DIR}/architecture/architecture.json USES_TERMINAL COMMENT "Running Sphinx HTML build..." ) diff --git a/docs/architecture.rst b/docs/architecture.rst index c55335e3..df0597a4 100644 --- a/docs/architecture.rst +++ b/docs/architecture.rst @@ -5,11 +5,11 @@ The note-c architecture documentation is maintained with the repository so module boundaries, public contracts, runtime flow, and update triggers stay visible as the SDK evolves. -Open the `interactive architecture map`_ for the visual graph, or inspect the -`structured architecture data`_ used to generate the map. +Open the `interactive architecture map`_ for the visual graph. For structured +source-backed dependency and claim evidence, use the repository's +``source-research/`` artifacts. .. _interactive architecture map: architecture/architecture.html -.. _structured architecture data: architecture/architecture.json For the narrative overview, see the repository-level `ARCHITECTURE.md`_ file. diff --git a/docs/architecture/README.md b/docs/architecture/README.md index fabc86c5..ddb92c52 100644 --- a/docs/architecture/README.md +++ b/docs/architecture/README.md @@ -21,10 +21,9 @@ After code changes: ## File Types - `../../ARCHITECTURE.md`: repository-level architecture entrypoint. -- `architecture.html`: single-file visual map for humans. It embeds data from `architecture.json` so it can be opened directly from disk. -- `architecture.json`: structured map for AI agents and tooling. -- `embed-architecture-json.mjs`: refreshes the embedded JSON block in `architecture.html` from `architecture.json`. -- `../architecture.rst`: Sphinx documentation page that links to the published architecture map and JSON artifact. +- `architecture.html`: single-file graph traversal view for humans and agents. It should summarize architecture at component level and point back to source-backed evidence in `../../source-research/`. +- `../../source-research/`: structured source-derived symbol, dependency, claim, and build-variant evidence for agents and tooling. +- `../architecture.rst`: Sphinx documentation page that links to the published architecture map. - `decisions/*.md`: architecture decision records. - `templates/repo-architecture.md`: template for future architecture docs. - `../../AGENTS.md`, `../../CLAUDE.md`, `../../GEMINI.md`, `../../.github/copilot-instructions.md`, and `../../.cursor/rules/architecture-docs.mdc`: AI entrypoints that point future tools back to these docs. @@ -40,13 +39,7 @@ Architecture docs should capture: - Testing strategy for behavior that crosses module boundaries. - Important tradeoffs, especially when there were plausible alternatives. -Keep `../../ARCHITECTURE.md`, `architecture.html`, and `architecture.json` synchronized when architecture changes. When changing graph data, edit `architecture.json`, then run: - -```bash -node docs/architecture/embed-architecture-json.mjs -``` - -The CI pipeline runs the same embed script and fails if `docs/architecture/architecture.html` changes afterward. Treat `architecture.json` as the hand-edited graph source and commit the refreshed HTML artifact with it. +Keep `../../ARCHITECTURE.md`, `architecture.html`, and relevant `../../source-research/` artifacts synchronized when architecture changes. Treat `source-research/` as the structured source-backed evidence layer, not a replacement for reading implementation source. When graph facts or architecture claims change, update the nearest architecture doc and the canonical source-research JSON artifacts, then run the source-research validation tools described in `../../AGENTS.md`. Architecture docs should not become: diff --git a/docs/architecture/architecture.html b/docs/architecture/architecture.html index b594e10a..8c7e1dcd 100644 --- a/docs/architecture/architecture.html +++ b/docs/architecture/architecture.html @@ -413,207 +413,689 @@ .modal-body { overflow: auto; } + body { + min-width: 0; + background: #f2f5f7; + } + .app-head { + grid-template-columns: minmax(280px, 1fr) auto; + padding: 14px 18px; + } + .app-head h1 { + font-size: 21px; + } + .meta-line { + color: var(--muted); + font-size: 12px; + margin-top: 3px; + } + .statbar { + display: grid; + grid-auto-flow: column; + gap: 8px; + } + .stat { + min-width: 82px; + padding: 7px 9px; + border: 1px solid var(--line); + border-radius: 7px; + background: var(--surface-2); + text-align: right; + } + .stat strong { + display: block; + font-size: 17px; + line-height: 1; + } + .stat span { + color: var(--muted); + font-size: 11px; + } + .graph-workbench { + display: grid; + grid-template-columns: 320px minmax(540px, 1fr) 360px; + grid-template-areas: "left graph right"; + gap: 12px; + min-height: calc(100vh - 70px); + padding: 12px; + align-items: stretch; + } + .left-rail { + grid-area: left; + min-width: 0; + display: grid; + grid-template-rows: auto 1fr; + gap: 12px; + background: transparent; + border: 0; + border-radius: 0; + overflow: visible; + } + .graph-shell { + grid-area: graph; + min-width: 0; + display: grid; + grid-template-rows: auto 1fr; + border: 1px solid var(--line); + border-radius: 8px; + background: var(--surface); + overflow: hidden; + } + .context-rail { + grid-area: right; + min-width: 0; + display: grid; + grid-template-rows: auto auto 1fr; + gap: 12px; + background: transparent; + border: 0; + border-radius: 0; + overflow: visible; + } + .panel { + border: 1px solid var(--line); + border-radius: 8px; + background: var(--surface); + overflow: hidden; + min-width: 0; + } + .panel-title { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + padding: 10px 12px; + border-bottom: 1px solid var(--line); + background: var(--surface-2); + } + .panel-title h2 { + font-size: 13px; + text-transform: uppercase; + letter-spacing: 0.04em; + color: #33424c; + } + .panel-content { + padding: 10px; + overflow: auto; + } + .control-grid { + display: grid; + gap: 9px; + } + label { + display: grid; + gap: 4px; + color: var(--muted); + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; + } + input, + select { + width: 100%; + min-height: 34px; + border: 1px solid var(--line); + border-radius: 7px; + background: #fff; + color: var(--ink); + font: inherit; + font-size: 13px; + padding: 6px 8px; + } + .segmented { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 4px; + } + .segmented button { + min-height: 32px; + padding: 5px 6px; + font-size: 12px; + } + .segmented button.active { + background: var(--blue); + color: #fff; + border-color: var(--blue); + } + .node-list { + display: grid; + gap: 4px; + max-height: calc(100vh - 308px); + overflow: auto; + padding: 8px; + } + .node-row, + .edge-row, + .link-row, + .hotspot-row { + width: 100%; + display: grid; + grid-template-columns: 8px 1fr auto; + gap: 8px; + align-items: center; + padding: 7px 8px; + border: 1px solid transparent; + border-radius: 7px; + background: transparent; + text-align: left; + } + .node-row:hover, + .node-row.active, + .edge-row:hover, + .link-row:hover, + .hotspot-row:hover, + .hotspot-row.active { + border-color: var(--line); + background: var(--surface-2); + } + .node-row .name, + .link-row .name, + .edge-row .name, + .hotspot-row .name { + display: block; + font-weight: 700; + font-size: 13px; + line-height: 1.2; + } + .node-row .sub, + .link-row .sub, + .edge-row .sub, + .hotspot-row .sub { + display: block; + color: var(--muted); + font-size: 11px; + line-height: 1.25; + margin-top: 2px; + } + .kind-bar { + width: 8px; + align-self: stretch; + min-height: 28px; + border-radius: 999px; + background: var(--blue); + } + .kind-bar.consumer { background: var(--violet); } + .kind-bar.contract { background: var(--red); } + .kind-bar.core { background: var(--blue); } + .kind-bar.hook { background: var(--green); } + .kind-bar.transport { background: var(--cyan); } + .kind-bar.external { background: var(--amber); } + .kind-bar.test { background: #4b5563; } + .degree { + display: inline-grid; + grid-auto-flow: column; + gap: 4px; + color: var(--muted); + font-size: 11px; + white-space: nowrap; + } + .graph-toolbar { + display: grid; + grid-template-columns: 1fr auto; + gap: 10px; + align-items: center; + padding: 9px 11px; + border-bottom: 1px solid var(--line); + background: var(--surface-2); + } + .legend-dense { + display: flex; + flex-wrap: wrap; + gap: 6px 10px; + align-items: center; + } + .legend-chip { + display: inline-flex; + align-items: center; + gap: 5px; + color: var(--muted); + font-size: 11px; + } + .graph-actions { + display: flex; + gap: 6px; + } + .graph-actions button { + min-height: 30px; + padding: 5px 8px; + font-size: 12px; + } + .graph-canvas-wrap { + min-height: 520px; + overflow: auto; + background: + linear-gradient(rgba(255,255,255,0.9), rgba(255,255,255,0.9)), + linear-gradient(90deg, rgba(203,215,223,0.44) 1px, transparent 1px), + linear-gradient(rgba(203,215,223,0.44) 1px, transparent 1px); + background-size: auto, 28px 28px, 28px 28px; + } + .graph-view { + display: block; + width: 100%; + min-width: 760px; + height: 100%; + min-height: 620px; + } + .graph-edge { + stroke: #7b8a95; + stroke-width: 1.6; + fill: none; + marker-end: url(#dense-arrow); + opacity: 0.56; + } + .graph-edge.active { + stroke: var(--blue); + stroke-width: 3; + opacity: 1; + marker-end: url(#dense-arrow-active); + } + .graph-edge.path { + stroke: var(--green); + stroke-width: 3.2; + opacity: 1; + marker-end: url(#dense-arrow-path); + } + .graph-edge.dimmed { + opacity: 0.1; + } + .edge-text { + fill: #42515c; + font-size: 10px; + paint-order: stroke; + stroke: #fff; + stroke-width: 4px; + stroke-linejoin: round; + } + .edge-text.dimmed { + opacity: 0.16; + } + .graph-node { + cursor: pointer; + } + .graph-node rect { + fill: #fff; + stroke: var(--line); + stroke-width: 1; + rx: 7; + filter: drop-shadow(0 6px 10px rgba(23, 32, 38, 0.08)); + } + .graph-node .stripe { + stroke-width: 5; + } + .graph-node text { + fill: var(--ink); + font-size: 12px; + font-weight: 700; + pointer-events: none; + } + .graph-node .node-meta { + fill: var(--muted); + font-size: 10px; + font-weight: 600; + } + .graph-node.active rect { + stroke: var(--blue); + stroke-width: 2; + } + .graph-node.focus rect { + stroke: var(--red); + stroke-width: 2.4; + } + .graph-node.path rect { + stroke: var(--green); + stroke-width: 2.4; + } + .graph-node.dimmed { + opacity: 0.24; + } + .summary-block { + display: grid; + gap: 8px; + color: var(--ink); + font-size: 13px; + } + .summary-block p { + color: var(--muted); + } + .tags { + display: flex; + flex-wrap: wrap; + gap: 5px; + } + .tag { + display: inline-flex; + align-items: center; + min-height: 22px; + padding: 3px 7px; + border: 1px solid var(--line); + border-radius: 999px; + background: var(--surface-2); + color: #24323c; + font-size: 11px; + line-height: 1.2; + } + .path-result { + min-height: 30px; + padding: 7px 8px; + border: 1px solid var(--line); + border-radius: 7px; + background: var(--surface-2); + color: var(--muted); + font-size: 12px; + } + .two-col { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 8px; + } + .edge-list, + .relation-list, + .hotspot-list { + display: grid; + gap: 4px; + } + .context-rail .panel-content { + max-height: 280px; + } + .context-rail .panel:last-child .panel-content { + max-height: calc(100vh - 540px); + min-height: 180px; + } + .empty-state { + color: var(--muted); + font-size: 12px; + padding: 6px 0; + } + @media (max-width: 1100px) { + .app-head { + grid-template-columns: 1fr; + } + .statbar { + grid-auto-flow: row; + grid-template-columns: repeat(4, minmax(80px, 1fr)); + } + .graph-workbench { + grid-template-columns: 1fr; + grid-template-areas: + "left" + "graph" + "right"; + } + .node-list, + .context-rail .panel-content, + .context-rail .panel:last-child .panel-content { + max-height: none; + } + } -
+

note-c Architecture Map

+

Component-level projection over source-research for traversal, impact review, and architecture updates.

-
- - - - -
+
-
-
- Legend: - -
+
+
+ +
+ + diff --git a/docs/architecture/architecture.json b/docs/architecture/architecture.json deleted file mode 100644 index 226a79b6..00000000 --- a/docs/architecture/architecture.json +++ /dev/null @@ -1,454 +0,0 @@ -{ - "schemaVersion": "1.1", - "name": "note-c architecture map", - "repository": "blues/note-c", - "purpose": "Portable C SDK for communicating with a Blues Notecard over serial or I2C.", - "lastReviewed": "2026-05-18", - "viewArtifacts": { - "humanMap": "docs/architecture/architecture.html", - "agentMap": "docs/architecture/architecture.json", - "narrative": "ARCHITECTURE.md" - }, - "principles": [ - "Keep the core SDK platform-neutral.", - "Put platform-specific behavior behind hooks or adapter libraries.", - "Treat note.h and hook signatures as compatibility contracts.", - "Update the Markdown, HTML, and JSON maps when architecture-relevant code changes land." - ], - "legend": [ - { - "label": "Consumers", - "description": "Apps, adapters", - "kinds": [ - "consumer" - ] - }, - { - "label": "Public contract", - "description": "Compatibility surface", - "kinds": [ - "contract" - ] - }, - { - "label": "Portable core", - "description": "Request, JSON, helpers", - "kinds": [ - "core" - ] - }, - { - "label": "Transports", - "description": "Serial and I2C", - "kinds": [ - "transport" - ] - }, - { - "label": "Hooks", - "description": "Platform boundary", - "kinds": [ - "hook" - ] - }, - { - "label": "External", - "description": "Bus, Notecard, Notehub", - "kinds": [ - "external" - ] - }, - { - "label": "Tests", - "description": "Unit test coverage", - "kinds": [ - "test" - ] - } - ], - "layers": [ - { - "id": "consumers", - "name": "Consumers and adapters", - "role": "Applications, platform SDKs, and tests that call note-c." - }, - { - "id": "api", - "name": "Public contract", - "role": "The API and hook surface downstream code depends on." - }, - { - "id": "core", - "name": "Portable core", - "role": "Request lifecycle, JSON, helpers, binary codecs, and utility behavior." - }, - { - "id": "transport", - "name": "Transport and hooks", - "role": "Transport selection, chunking, and platform callback boundaries." - }, - { - "id": "external", - "name": "Hardware and cloud boundary", - "role": "Physical bus, Notecard, and Notehub reached by the Notecard." - } - ], - "nodes": [ - { - "id": "apps", - "layer": "consumers", - "name": "Applications", - "kind": "consumer", - "paths": [], - "summary": "User firmware or host apps that build requests and consume responses.", - "contracts": [ - "Calls public APIs in note.h" - ] - }, - { - "id": "adapters", - "layer": "consumers", - "name": "Adapter SDKs", - "kind": "consumer", - "paths": [], - "summary": "Platform integrations such as note-arduino, note-zephyr, note-espidf, and POSIX integrations.", - "contracts": [ - "Own platform setup and hook implementations" - ] - }, - { - "id": "tests", - "layer": "consumers", - "name": "Unit Tests", - "kind": "test", - "paths": [ - "test/" - ], - "summary": "Mock-backed tests for JSON, request flow, hooks, transports, helpers, and edge cases.", - "contracts": [ - "Protects behavior without hardware" - ] - }, - { - "id": "api", - "layer": "api", - "name": "note.h Public API", - "kind": "contract", - "paths": [ - "note.h" - ], - "summary": "Public functions, typedefs, constants, version metadata, request helpers, and hook signatures.", - "contracts": [ - "Compatibility boundary", - "Breaking changes require versioning and migration notes" - ] - }, - { - "id": "request", - "layer": "core", - "name": "Request Core", - "kind": "core", - "paths": [ - "n_request.c", - "n_lib.h" - ], - "summary": "Creates, serializes, sends, retries, parses, and releases Notecard request/response transactions.", - "contracts": [ - "Owns transaction lifecycle", - "Coordinates active interface" - ] - }, - { - "id": "json", - "layer": "core", - "name": "JSON Model", - "kind": "core", - "paths": [ - "n_cjson.c", - "n_cjson.h", - "n_cjson_helpers.c" - ], - "summary": "Bundled JSON object model and helper APIs used by callers and internals.", - "contracts": [ - "J object semantics", - "Allocation ownership" - ] - }, - { - "id": "helpers", - "layer": "core", - "name": "High-level Helpers", - "kind": "core", - "paths": [ - "n_helpers.c" - ], - "summary": "Convenience APIs for common Notecard operations: time, env, location, sync, payload, binary store, and status helpers.", - "contracts": [ - "Builds JSON requests on top of public request APIs" - ] - }, - { - "id": "utilities", - "layer": "core", - "name": "Portable Utilities", - "kind": "core", - "paths": [ - "n_str.c", - "n_printf.c", - "n_atof.c", - "n_ftoa.c", - "n_b64.c", - "n_cobs.c", - "n_md5.c", - "n_const.c", - "n_ua.c" - ], - "summary": "String, number, formatting, encoding, hashing, constants, and user-agent support.", - "contracts": [ - "No platform runtime assumptions" - ] - }, - { - "id": "hooks", - "layer": "transport", - "name": "Platform Hooks", - "kind": "hook", - "paths": [ - "n_hooks.c" - ], - "summary": "Registration and invocation of memory, time, mutex, debug, transaction, serial, I2C, and JSON transaction callbacks.", - "contracts": [ - "Platform boundary", - "Hook signatures are public contracts" - ] - }, - { - "id": "serial", - "layer": "transport", - "name": "Serial Transport", - "kind": "transport", - "paths": [ - "n_serial.c" - ], - "summary": "Serial transaction, reset, receive, transmit, and chunking behavior.", - "contracts": [ - "Uses serial hooks", - "Protects byte-level request/response flow" - ] - }, - { - "id": "i2c", - "layer": "transport", - "name": "I2C Transport", - "kind": "transport", - "paths": [ - "n_i2c.c" - ], - "summary": "I2C transaction, reset, query length, receive, transmit, MTU, and chunking behavior.", - "contracts": [ - "Uses I2C hooks", - "Owns I2C timing and chunking behavior" - ] - }, - { - "id": "bus", - "layer": "external", - "name": "Platform Bus", - "kind": "external", - "paths": [], - "summary": "UART, USB serial, I2C, or test doubles supplied by the host platform.", - "contracts": [ - "Implemented outside note-c" - ] - }, - { - "id": "notecard", - "layer": "external", - "name": "Notecard", - "kind": "external", - "paths": [], - "summary": "Device that accepts JSON requests and returns JSON responses.", - "contracts": [ - "Serial or I2C protocol boundary" - ] - }, - { - "id": "notehub", - "layer": "external", - "name": "Notehub", - "kind": "external", - "paths": [], - "summary": "Cloud service reached by the Notecard; note-c does not communicate with Notehub directly.", - "contracts": [ - "Indirect dependency only" - ] - } - ], - "edges": [ - { - "from": "apps", - "to": "api", - "label": "calls" - }, - { - "from": "adapters", - "to": "api", - "label": "wraps" - }, - { - "from": "tests", - "to": "api", - "label": "exercises" - }, - { - "from": "api", - "to": "request", - "label": "request APIs" - }, - { - "from": "api", - "to": "json", - "label": "J helpers" - }, - { - "from": "api", - "to": "hooks", - "label": "hook registration" - }, - { - "from": "helpers", - "to": "request", - "label": "builds requests" - }, - { - "from": "request", - "to": "json", - "label": "serialize/parse" - }, - { - "from": "request", - "to": "hooks", - "label": "active interface" - }, - { - "from": "request", - "to": "serial", - "label": "serial path" - }, - { - "from": "request", - "to": "i2c", - "label": "I2C path" - }, - { - "from": "serial", - "to": "hooks", - "label": "serial callbacks" - }, - { - "from": "i2c", - "to": "hooks", - "label": "I2C callbacks" - }, - { - "from": "hooks", - "to": "bus", - "label": "platform calls" - }, - { - "from": "bus", - "to": "notecard", - "label": "bytes" - }, - { - "from": "notecard", - "to": "notehub", - "label": "syncs" - }, - { - "from": "tests", - "to": "hooks", - "label": "mocks" - }, - { - "from": "tests", - "to": "serial", - "label": "transport tests" - }, - { - "from": "tests", - "to": "i2c", - "label": "transport tests" - }, - { - "from": "utilities", - "to": "request", - "label": "support" - }, - { - "from": "utilities", - "to": "json", - "label": "support" - } - ], - "hotspots": [ - { - "id": "public-api", - "title": "Public API and hook compatibility", - "nodes": [ - "api", - "hooks" - ], - "description": "The stable SDK surface that applications and adapter libraries compile against, including public request helpers and platform hook signatures.", - "updateRule": "Update docs and consider versioning whenever note.h contracts change." - }, - { - "id": "transaction-flow", - "title": "Request lifecycle", - "nodes": [ - "request", - "json", - "serial", - "i2c" - ], - "description": "The path a Notecard transaction follows as requests are built, serialized, sent over an active transport, parsed, and returned to callers.", - "updateRule": "Update docs when timeout, retry, serialization, parsing, memory ownership, or active-interface behavior changes." - }, - { - "id": "transport-boundary", - "title": "Transport and platform boundary", - "nodes": [ - "serial", - "i2c", - "hooks", - "bus" - ], - "description": "The byte-level boundary between portable note-c transport code and host-provided UART, USB serial, I2C, or test-double implementations.", - "updateRule": "Update docs when byte framing, chunking, MTU, reset, or hook invocation semantics change." - }, - { - "id": "adapter-impact", - "title": "Adapter impact", - "nodes": [ - "adapters", - "api", - "hooks" - ], - "description": "The parts of note-c most likely to require coordinated changes in downstream platform SDKs and integration layers.", - "updateRule": "Update docs when note-arduino, note-zephyr, note-espidf, POSIX, or other adapters need coordinated changes." - } - ], - "updateTriggers": [ - "Changes to note.h public APIs, typedefs, constants, or hook signatures.", - "Changes to request lifecycle, timeout, retry, memory ownership, or response handling.", - "Changes to serial/I2C framing, chunking, transmit, receive, reset, or MTU behavior.", - "Changes to JSON representation or helper semantics.", - "Changes to adapter expectations, build/test strategy, release strategy, or versioning." - ], - "filesToUpdateTogether": [ - "ARCHITECTURE.md", - "docs/architecture/architecture.json", - "docs/architecture/architecture.html", - "docs/architecture/decisions/*.md when a durable design decision changes" - ] -} diff --git a/docs/architecture/embed-architecture-json.mjs b/docs/architecture/embed-architecture-json.mjs deleted file mode 100644 index 67dae385..00000000 --- a/docs/architecture/embed-architecture-json.mjs +++ /dev/null @@ -1,21 +0,0 @@ -import { readFile, writeFile } from "node:fs/promises"; - -const htmlPath = new URL("./architecture.html", import.meta.url); -const jsonPath = new URL("./architecture.json", import.meta.url); - -const html = await readFile(htmlPath, "utf8"); -const architecture = JSON.parse(await readFile(jsonPath, "utf8")); -const embeddedJson = JSON.stringify(architecture); - -const architectureDataBlock = /" -); - -await writeFile(htmlPath, nextHtml); diff --git a/docs/index.rst b/docs/index.rst index 7e999133..bbf2507e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,11 +13,11 @@ Architecture Use the :doc:`architecture overview ` to understand note-c's module boundaries, public contracts, runtime flow, and update triggers. The -overview links to the `interactive architecture map`_ and the -`structured architecture data`_ used to render it. +overview links to the `interactive architecture map`_. Structured source-backed +dependency and claim evidence lives in the repository's ``source-research/`` +artifacts. .. _interactive architecture map: architecture/architecture.html -.. _structured architecture data: architecture/architecture.json .. toctree:: :maxdepth: 1 diff --git a/source-research/artifacts/functions/n_atof_c__L71__JAtoN.md b/source-research/artifacts/functions/n_atof_c__L71__JAtoN.md new file mode 100644 index 00000000..c855cd4b --- /dev/null +++ b/source-research/artifacts/functions/n_atof_c__L71__JAtoN.md @@ -0,0 +1,54 @@ +# `JAtoN` + +## Status + +Finalized. Source-inspected locale-independent decimal string to `JNUMBER` converter. + +## Identity + +- Kind: function +- Definition: `n_atof.c:71` +- Declaration/interface: `note.h:1464` +- Signature/API shape: `JNUMBER JAtoN(const char *string, char **endPtr)` +- Visibility: public C SDK helper +- Public/exported names: `JAtoN` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none in the function body +- Data/type/global dependencies: `JNUMBER`, `NOTE_C_SINGLE_PRECISION`, `MAX_EXPONENT` + +## Behavior + +Parses an ASCII decimal number independently of locale. It skips leading space characters, handles an optional sign, scans a mantissa with at most one `.` decimal point, keeps at most 18 mantissa digits split across two integer accumulators, folds the decimal-position adjustment into the exponent, parses an optional `e`/`E` exponent with optional sign, clamps decimal exponent magnitude to `MAX_EXPONENT`, applies powers of ten by repeated binary decomposition, stores the conversion stop pointer when requested, and returns the signed `JNUMBER` result. + +## Important Boundaries + +- Preconditions and assumptions: `string` must be non-null; there is no null check. +- Error/null/empty behavior: if no mantissa digits are found, returns `0.0` and reports the original input pointer through `endPtr`. +- Ownership and lifetime: no allocation; returned `endPtr` points into caller-owned input. +- Concurrency/global state: no global state and no locale reads. +- Performance shape: linear over the scanned mantissa and exponent text, followed by a bounded power-of-ten loop. +- Portability/platform constraints: single-precision builds omit the largest power-of-ten table entries used for double precision. + +## Direct Call Sites + +Exact source search found production callers in `_parse_number`, `JGetItemType`, and `NoteGetEnvNumber`. + +## Role In Callers + +JSON parsing uses `JAtoN` to populate numeric nodes. `JGetItemType` uses it to classify raw/string values as numeric or zero only when the whole string is consumed. Environment helpers use it to convert string values returned by the Notecard into `JNUMBER`. + +## Tests Observed + +`JAtoN_test.cpp` checks approximate conversion of large and small floating-point values for both single-precision and double-precision build modes. + +## Graph Links + +- Graph node id: `function:n_atof.c:71:JAtoN` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for malformed exponent strings, leading tabs, null input, or `endPtr` stop-position behavior. diff --git a/source-research/artifacts/functions/n_b64_c__L106__JB64DecodeLen.md b/source-research/artifacts/functions/n_b64_c__L106__JB64DecodeLen.md new file mode 100644 index 00000000..bac2ba3d --- /dev/null +++ b/source-research/artifacts/functions/n_b64_c__L106__JB64DecodeLen.md @@ -0,0 +1,60 @@ +# `JB64DecodeLen` + +## Status + +Finalized. Source-inspected public Base64 decoded-length helper. + +## Identity + +- Kind: function +- Definition: `n_b64.c:106` +- Declaration/interface: `note.h:1507` inside the C-callable `extern "C"` surface beginning at `note.h:107` +- Signature/API shape: `int JB64DecodeLen(const char *bufcoded)` +- Visibility: public SDK helper declared in `note.h` +- Public/exported names: `JB64DecodeLen` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads static decode table `pr2six[256]` +- Artifact coverage: source, public declaration, direct callers, and focused tests inspected + +## Behavior + +Treats `bufcoded` as a null-terminated Base64 string and scans bytes through `pr2six` until the first non-Base64 byte. Computes the decoded capacity as `((nprbytes + 3) / 4) * 3` and returns that value plus one byte for a null terminator. + +## Important Boundaries + +- Preconditions and assumptions: `bufcoded` must be non-`NULL`, null-terminated, and readable; no guard exists. +- Error/null/empty behavior: empty or immediately invalid input returns `1`; invalid data after a prefix is treated as the end of encoded input. +- Ownership and lifetime: no allocation; caller owns all buffers. +- Concurrency/global state: reads immutable static table only. +- Portability/platform constraints: table indexes use `unsigned char` values. +- Performance shape: O(encoded prefix length). +- Security or parsing constraints: no validity/error reporting, output bounds check, or overflow guard for very large inputs. + +## Direct Call Sites + +Exact production callers: + +- `n_helpers.c:1875` `NotePayloadRetrieveAfterSleep` sizes the allocation used for a restored sleep payload. +- `n_cjson_helpers.c:258` `JGetBinaryFromObject` sizes the allocation for decoded binary data plus its own convenience terminator. + +## Role In Callers + +Provides decode buffer capacity for higher-level payload and JSON-binary helpers. The callers allocate memory and transfer ownership independently. + +## Tests Observed + +No direct focused tests for `JB64DecodeLen` were found. `test/src/JAddBinaryToObject_test.cpp:72` uses `JB64Decode` to verify an encode/decode round trip through `JAddBinaryToObject`. + +## Graph Links + +- Graph node id: `function:n_b64.c:106:JB64DecodeLen` +- Structured graph: `inventory/dependency-graph.json` +- Verified callers: `NotePayloadRetrieveAfterSleep`, `JGetBinaryFromObject` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for invalid input and overflow behavior were not found. diff --git a/source-research/artifacts/functions/n_b64_c__L121__JB64Decode.md b/source-research/artifacts/functions/n_b64_c__L121__JB64Decode.md new file mode 100644 index 00000000..35e0a95d --- /dev/null +++ b/source-research/artifacts/functions/n_b64_c__L121__JB64Decode.md @@ -0,0 +1,62 @@ +# `JB64Decode` + +## Status + +Finalized. Source-inspected public Base64 decoder. + +## Identity + +- Kind: function +- Definition: `n_b64.c:121` +- Declaration/interface: `note.h:1516` inside the C-callable `extern "C"` surface beginning at `note.h:107` +- Signature/API shape: `int JB64Decode(char *bufplain, const char *bufcoded)` +- Visibility: public SDK helper declared in `note.h` +- Public/exported names: `JB64Decode` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads static decode table `pr2six[256]` +- Artifact coverage: source, public declaration, direct callers, and focused tests inspected + +## Behavior + +Scans `bufcoded` until the first non-Base64 byte, computes an expected decoded byte count, then decodes complete 4-byte groups into caller-provided `bufplain`. Handles remaining 2/3/4-byte tails, appends `'\0'`, adjusts the returned decoded length for short tails/padding, and returns the decoded data length excluding the terminator. + +The implementation treats a one-byte Base64 remainder as an ignored error case. + +## Important Boundaries + +- Preconditions and assumptions: `bufplain` and `bufcoded` must be non-`NULL`; `bufcoded` must be null-terminated; `bufplain` must be large enough for decoded bytes plus terminator. +- Error/null/empty behavior: invalid data terminates scanning; there is no explicit error return for invalid input. +- Ownership and lifetime: no allocation; writes into caller-owned output buffer. +- Concurrency/global state: reads immutable static table only. +- Portability/platform constraints: table indexes use `unsigned char` values. +- Performance shape: O(encoded prefix length). +- Security or parsing constraints: no output bounds check; callers must size buffers with `JB64DecodeLen` or equivalent. + +## Direct Call Sites + +Exact production callers: + +- `n_helpers.c:1881` `NotePayloadRetrieveAfterSleep` decodes the restored sleep payload into an allocated buffer and stores it in `NotePayloadDesc`. +- `n_cjson_helpers.c:262` `JGetBinaryFromObject` decodes a JSON string field into caller-returned binary data. + +## Role In Callers + +Performs the actual decode after callers allocate/own destination storage. Higher-level callers decide whether the resulting buffer is transferred to a descriptor or returned to the API caller. + +## Tests Observed + +`test/src/JAddBinaryToObject_test.cpp:72` decodes the string created by `JAddBinaryToObject`, checks the decoded length against `sizeof(val)`, and compares decoded bytes to the original string. + +## Graph Links + +- Graph node id: `function:n_b64.c:121:JB64Decode` +- Structured graph: `inventory/dependency-graph.json` +- Verified callers: `NotePayloadRetrieveAfterSleep`, `JGetBinaryFromObject` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for invalid Base64 and caller buffer undersizing were not found. diff --git a/source-research/artifacts/functions/n_b64_c__L169__JB64EncodeLen.md b/source-research/artifacts/functions/n_b64_c__L169__JB64EncodeLen.md new file mode 100644 index 00000000..75247231 --- /dev/null +++ b/source-research/artifacts/functions/n_b64_c__L169__JB64EncodeLen.md @@ -0,0 +1,60 @@ +# `JB64EncodeLen` + +## Status + +Finalized. Source-inspected public Base64 encoded-length helper. + +## Identity + +- Kind: function +- Definition: `n_b64.c:169` +- Declaration/interface: `note.h:1489` inside the C-callable `extern "C"` surface beginning at `note.h:107` +- Signature/API shape: `int JB64EncodeLen(int len)` +- Visibility: public SDK helper declared in `note.h` +- Public/exported names: `JB64EncodeLen` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none +- Artifact coverage: source, public declaration, direct callers, and focused tests inspected + +## Behavior + +Returns `((len + 2) / 3 * 4) + 1`, which is the encoded character count rounded to a four-byte Base64 block plus a null terminator. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a non-negative input length in the representable `int` range. +- Error/null/empty behavior: `len == 0` returns `1`. +- Ownership and lifetime: no allocation; caller owns any buffer sized from the result. +- Concurrency/global state: none. +- Portability/platform constraints: integer arithmetic uses `int`; no overflow guard. +- Performance shape: O(1). +- Security or parsing constraints: negative or very large lengths are not guarded. + +## Direct Call Sites + +Exact production callers: + +- `n_helpers.c:1716` `NotePayloadSaveAndSleep` sizes a temporary Base64 payload buffer. +- `n_cjson_helpers.c:220` `JAddBinaryToObject` sizes a JSON string backing buffer. + +## Role In Callers + +Provides allocation size for higher-level payload and JSON-binary encode paths. The callers allocate and free/transfer the buffer. + +## Tests Observed + +No direct focused tests for `JB64EncodeLen` were found. `test/src/JAddBinaryToObject_test.cpp:72` verifies the encode/decode round trip produced by the `JAddBinaryToObject` path. + +## Graph Links + +- Graph node id: `function:n_b64.c:169:JB64EncodeLen` +- Structured graph: `inventory/dependency-graph.json` +- Verified callers: `NotePayloadSaveAndSleep`, `JAddBinaryToObject` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for negative/overflow lengths were not found. diff --git a/source-research/artifacts/functions/n_b64_c__L174__JB64Encode.md b/source-research/artifacts/functions/n_b64_c__L174__JB64Encode.md new file mode 100644 index 00000000..77fd2bcd --- /dev/null +++ b/source-research/artifacts/functions/n_b64_c__L174__JB64Encode.md @@ -0,0 +1,60 @@ +# `JB64Encode` + +## Status + +Finalized. Source-inspected public Base64 encoder. + +## Identity + +- Kind: function +- Definition: `n_b64.c:174` +- Declaration/interface: `note.h:1499` inside the C-callable `extern "C"` surface beginning at `note.h:107` +- Signature/API shape: `int JB64Encode(char *encoded, const char *string, int len)` +- Visibility: public SDK helper declared in `note.h` +- Public/exported names: `JB64Encode` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads static alphabet `basis_64` +- Artifact coverage: source, public declaration, direct callers, and focused tests inspected + +## Behavior + +Writes Base64 output for complete three-byte groups using `basis_64`, emits `=` padding for one- or two-byte tails, appends `'\0'`, and returns `p - encoded`. The returned count includes the null terminator. + +## Important Boundaries + +- Preconditions and assumptions: `encoded` and `string` must be non-`NULL`; `encoded` must be large enough for `JB64EncodeLen(len)` bytes; `len` is expected non-negative. +- Error/null/empty behavior: `len == 0` writes only `'\0'` and returns `1`. +- Ownership and lifetime: no allocation; writes into caller-owned output buffer. +- Concurrency/global state: reads immutable static alphabet only. +- Portability/platform constraints: input is `const char *`; bit operations on signed `char` values are partly masked but signed-char behavior remains worth noting for binary data portability. +- Performance shape: O(len). +- Security or parsing constraints: no output bounds check or invalid argument guard. + +## Direct Call Sites + +Exact production callers: + +- `n_helpers.c:1725` `NotePayloadSaveAndSleep` encodes a sleep-state payload before calling `NoteSleep`. +- `n_cjson_helpers.c:225` `JAddBinaryToObject` encodes binary data into a JSON string backing buffer. + +## Role In Callers + +Performs encode after callers allocate destination storage. Higher-level callers either free the temporary encoded buffer or transfer it into a JSON string value. + +## Tests Observed + +`test/src/JAddBinaryToObject_test.cpp:72` decodes the string produced by `JAddBinaryToObject`, checks decoded length against `sizeof(val)`, and compares decoded bytes to the original string. + +## Graph Links + +- Graph node id: `function:n_b64.c:174:JB64Encode` +- Structured graph: `inventory/dependency-graph.json` +- Verified callers: `NotePayloadSaveAndSleep`, `JAddBinaryToObject` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for zero-length, non-text binary bytes, and signed-char edge cases were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L1032__JPrint.md b/source-research/artifacts/functions/n_cjson_c__L1032__JPrint.md new file mode 100644 index 00000000..d69e4cd5 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1032__JPrint.md @@ -0,0 +1,63 @@ +# `JPrint` + +## Status + +Finalized. Source-inspected public formatted JSON print wrapper, finalized `_print` callee, declaration, no-caller search, and focused test search. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1032` +- Declaration/interface: `n_cjson.h:193` +- Public/exported names: `JPrint` +- Macro aliases/wrappers: declared with `N_CJSON_PUBLIC` +- Signature/API shape: `char *JPrint(const J *item)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: returns caller-owned allocated JSON text when successful + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:983:_print` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: allocation and free behavior are inherited from `_print` through configured JSON hooks +- Artifact coverage: source, declaration, finalized callee, no-caller search, ownership behavior, and focused test search inspected + +## Behavior + +Returns `NULL` when `item` is `NULL`. Otherwise calls `_print(item, true, false)` and casts the returned `unsigned char *` to `char *`. The `format=true` argument requests formatted JSON output; `omitempty=false` means false, zero, and empty-string fields are not omitted by this wrapper. + +## Important Boundaries + +- Preconditions and assumptions: caller passes either `NULL` or a valid `J` tree. +- Error/null/empty behavior: null input returns `NULL`; allocation or serialization failure returns `NULL` through `_print`. +- Ownership and lifetime: successful return is newly allocated JSON text; callers free it with the configured JSON free path such as `JFree`. +- Concurrency/global state: allocator/free behavior follows configured hooks inherited from `_print`. +- Portability/platform constraints: portable JSON printing; formatting details are inherited from cJSON print internals. +- Performance shape: uses `_print`'s allocating buffer-growth strategy and final tight copy. +- Security or parsing constraints: does not validate tree integrity before delegating to `_print`. + +## Direct Call Sites + +Exact source search found only the public declaration, source definition, and the memory-management note in `n_cjson.h`. No production callers were found in this repository. + +## Role In Callers + +No repository production caller currently uses this formatted heap-printing API. It remains public for downstream users of the JSON API. + +## Tests Observed + +No direct focused tests for `JPrint` were found. Printing behavior is exercised elsewhere through `JPrintUnformatted` and `_print`, but not through this formatted wrapper. + +## Test Coverage Notes + +Focused tests do not directly cover formatted printing through `JPrint`, null input, or allocation-failure propagation through this wrapper. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1032:JPrint` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md b/source-research/artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md new file mode 100644 index 00000000..ad978b56 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md @@ -0,0 +1,55 @@ +# `JPrintUnformatted` + +## Status + +Finalized. Source-inspected public unformatted JSON serializer. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1051` +- Declaration/interface: `n_cjson.h:195` +- Signature/API shape: `char *JPrintUnformatted(const J *item)` +- Visibility: public cJSON/note-c JSON API +- Public/exported names: `JPrintUnformatted`, macro alias `JConvertToJSONString` in `n_cjson.h:310` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:983:_print` finalized +- External/system dependencies: none +- Data/type/global dependencies: caller-provided `J` tree + +## Behavior + +Returns NULL for a null item. Otherwise delegates to `_print(item, false, false)`, producing heap-allocated compact JSON with no formatting whitespace and no omit-empty filtering. The returned string is owned by the caller and must be freed through the configured JSON free path. + +## Important Boundaries + +- Preconditions and assumptions: input `J` tree must be valid for the print engine. +- Error/null/empty behavior: null input or `_print` failure returns NULL. +- Ownership and lifetime: transfers ownership of the allocated result to the caller. +- Concurrency/global state: allocator/free behavior follows configured note-c hooks through `_print`. +- Performance shape: follows `_print` and `_ensure` growth behavior. +- Portability/platform constraints: this is the serialization mode used by request/transaction paths before adding the newline expected by transport hooks. + +## Direct Call Sites + +Exact source search found production callers in `NoteRequestResponseJSON`, `_noteTransactionShouldLock`, and `NotePing`. Tests call or fake it in `JPrintUnformatted_test.cpp`, `JSON_number_handling_test.cpp`, `NotePing_test.cpp`, and `NoteRequestResponseJSON_test.cpp`. + +## Role In Callers + +`_noteTransactionShouldLock` serializes the request object through this function before timeout, CRC, transport, and retry handling. Raw JSON helper paths also use it to turn generated error documents back into response JSON. + +## Tests Observed + +`JPrintUnformatted_test.cpp` exercises mixed scalar/container output. `JSON_number_handling_test.cpp` gives focused number serialization coverage. `NoteRequestResponseJSON_test.cpp` fakes this function for raw JSON request/response paths. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1051:JPrintUnformatted` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for allocation failure through this public wrapper or for the `JConvertToJSONString` alias. diff --git a/source-research/artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md b/source-research/artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md new file mode 100644 index 00000000..6d266f83 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md @@ -0,0 +1,63 @@ +# `JPrintUnformattedOmitEmpty` + +## Status + +Finalized. Source-inspected public omit-empty JSON print wrapper, finalized `_print` callee, declaration, no-caller search, and focused test search. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1059` +- Declaration/interface: `n_cjson.h:197` +- Public/exported names: `JPrintUnformattedOmitEmpty` +- Macro aliases/wrappers: declared with `N_CJSON_PUBLIC` +- Signature/API shape: `char *JPrintUnformattedOmitEmpty(const J *item)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: returns caller-owned allocated JSON text when successful + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:983:_print` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: allocation and free behavior are inherited from `_print` through configured JSON hooks +- Artifact coverage: source, declaration, finalized callee, no-caller search, ownership behavior, and focused test search inspected + +## Behavior + +Returns `NULL` when `item` is `NULL`. Otherwise calls `_print(item, false, true)` and casts the returned `unsigned char *` to `char *`. The `format=false` argument requests compact JSON output; `omitempty=true` requests omission of fields considered empty by the finalized print implementation. + +## Important Boundaries + +- Preconditions and assumptions: caller passes either `NULL` or a valid `J` tree. +- Error/null/empty behavior: null input returns `NULL`; allocation or serialization failure returns `NULL` through `_print`. +- Ownership and lifetime: successful return is newly allocated JSON text; callers free it with the configured JSON free path such as `JFree`. +- Concurrency/global state: allocator/free behavior follows configured hooks inherited from `_print`. +- Portability/platform constraints: portable JSON printing; omit-empty behavior is inherited from cJSON print internals. +- Performance shape: uses `_print`'s allocating buffer-growth strategy and final tight copy. +- Security or parsing constraints: does not validate tree integrity before delegating to `_print`. + +## Direct Call Sites + +Exact source search found only the public declaration and source definition. No production callers were found in this repository. + +## Role In Callers + +No repository production caller currently uses this omit-empty heap-printing API. It remains public for downstream users of the JSON API. + +## Tests Observed + +No direct focused tests for `JPrintUnformattedOmitEmpty` or omit-empty printing were found. + +## Test Coverage Notes + +Focused tests do not directly cover omit-empty serialization, null input, or allocation-failure propagation through this wrapper. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1059:JPrintUnformattedOmitEmpty` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md b/source-research/artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md new file mode 100644 index 00000000..9825c6a6 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md @@ -0,0 +1,65 @@ +# `JPrintBuffered` + +## Status + +Finalized. Source-inspected public buffered JSON print API, finalized allocation/print/free callees, declaration, no-caller search, and focused test search. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1067` +- Declaration/interface: `n_cjson.h:199` +- Public/exported names: `JPrintBuffered` +- Macro aliases/wrappers: declared with `N_CJSON_PUBLIC` +- Signature/API shape: `char *JPrintBuffered(const J *item, int prebuffer, Jbool fmt)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: allocates an initial print buffer and returns it to the caller on success + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_cjson.c:1179:_print_value` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: `printbuffer` fields; allocator/free hooks through `_Malloc` and `_Free` +- Artifact coverage: source, declaration, finalized callees, no-caller search, ownership behavior, and focused test search inspected + +## Behavior + +Initializes a zeroed `printbuffer`. Returns `NULL` when `item` is null or `prebuffer` is negative. Allocates `prebuffer` bytes with `_Malloc`; allocation failure returns `NULL`. It then sets the print buffer length, offset, `noalloc=false`, and `format=fmt`, and delegates serialization to `_print_value(item, &p)`. If serialization fails, it frees `p.buffer` and returns `NULL`; otherwise it returns `p.buffer` cast to `char *`. + +## Important Boundaries + +- Preconditions and assumptions: caller passes either `NULL` or a valid `J` tree; `prebuffer` is a non-negative initial allocation size. A zero `prebuffer` is passed to `_Malloc(0)` and follows the allocator hook's behavior. +- Error/null/empty behavior: null item, negative prebuffer, allocation failure, or `_print_value` failure returns `NULL`; print failure frees the allocated working buffer before returning. +- Ownership and lifetime: successful return transfers ownership of the allocated print buffer to the caller, who must free it with the configured JSON free path such as `JFree`. +- Concurrency/global state: allocation/free behavior follows configured hooks. +- Portability/platform constraints: portable JSON printing; formatting behavior is inherited from `_print_value`. +- Performance shape: starts with caller-specified buffer size and can grow through print internals because `noalloc=false`. +- Security or parsing constraints: does not validate tree integrity before delegating to `_print_value`. + +## Direct Call Sites + +Exact source search found only the public declaration and source definition. No production callers were found in this repository. + +## Role In Callers + +No repository production caller currently uses this buffered heap-printing API. It remains public for downstream users that want to supply an initial buffer-size estimate. + +## Tests Observed + +No direct focused tests for `JPrintBuffered` were found. Its main serializer callee `_print_value` is covered through other print APIs. + +## Test Coverage Notes + +Focused tests do not directly cover null input, negative or zero prebuffer, allocation failure, print failure cleanup, or formatted/unformatted output through this wrapper. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1067:JPrintBuffered` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1097__printPreallocated.md b/source-research/artifacts/functions/n_cjson_c__L1097__printPreallocated.md new file mode 100644 index 00000000..a4705506 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1097__printPreallocated.md @@ -0,0 +1,65 @@ +# `_printPreallocated` + +## Status + +Finalized. Source-inspected JSON preallocated-buffer print helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1097` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _printPreallocated(J *item, char *buf, const int len, const Jbool fmt, const Jbool omit)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none +- Macro aliases/wrappers: public wrappers `JPrintPreallocated` and `JPrintPreallocatedOmitEmpty` +- Ownership/lifetime role: wraps caller-owned print storage without taking ownership + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1179:_print_value` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: initializes stack `printbuffer` over caller-provided storage +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `false` when `item` is `NULL`, `buf` is `NULL`, or `len < 0`. Otherwise builds a stack `printbuffer` with `buffer=buf`, `length=(size_t)len`, `offset=0`, `noalloc=true`, `format=fmt`, and `omitempty=omit`, then returns `_print_value(item, &p)` directly. + +Because the printbuffer has `noalloc=true`, downstream `_ensure` calls never grow the caller buffer. `len == 0` is accepted by this helper but downstream printing fails once `_ensure` cannot fit requested output plus terminator. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies writable storage large enough for the selected formatted/unformatted JSON plus terminator. +- Error/null/empty behavior: null item/buffer and negative length fail before printing; undersized buffers fail through print callees. Partial bytes may already have been written before a later recursive failure. +- Ownership and lifetime: caller retains full responsibility for `buf`; this helper does not allocate, free, or return a length. +- Concurrency/global state: no global state. +- Portability/platform constraints: public header warns that size estimation is not exact and callers should over-allocate by 5 bytes. +- Performance shape: O(serialized JSON size) with no realloc growth path. +- Security or parsing constraints: bounded by `_ensure` capacity checks, including `INT_MAX` rejection in the shared print path. + +## Direct Call Sites + +Exact source search found direct callers: + +- `n_cjson.c:1120` `JPrintPreallocatedOmitEmpty` passes `omit=true`. +- `n_cjson.c:1125` `JPrintPreallocated` passes `omit=false`. + +## Role In Callers + +This helper is the common implementation for public preallocated print APIs. It binds caller memory and print options into the shared `_print_value` serializer. + +## Tests Observed + +None. `rg -n "JPrintPreallocated|JPrintPreallocatedOmitEmpty|_printPreallocated" test` found no focused tests. Closest print tests exercise `JPrintUnformatted`, which goes through `_print` rather than this helper. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1097:_printPreallocated` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_print_value`. + +## Evidence Gaps + +No unresolved source gaps for this node. Focused preallocated-print tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L110__JVersion.md b/source-research/artifacts/functions/n_cjson_c__L110__JVersion.md new file mode 100644 index 00000000..696a1e3c --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L110__JVersion.md @@ -0,0 +1,65 @@ +# `JVersion` + +## Status + +Finalized. Source-inspected public CJSON version helper, declaration, macro dependency, and direct source references. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:110` +- Declaration/interface: `n_cjson.h:180` +- Public/exported names: `JVersion` +- Macro aliases/wrappers: declared/defined through `N_CJSON_PUBLIC` +- Signature/API shape: `const char *JVersion(void)` +- Visibility: public CJSON API exported according to `N_CJSON_PUBLIC` +- Ownership/lifetime role: returns a compile-time string literal; caller must not free or modify it + +## Dependency Status + +- Project-local dependencies: +- `macro:note.h:40:NOTE_C_STRINGIZE` finalized in this slice +- External/system dependencies: none +- Data/type/global dependencies: compile-time `N_CJSON_VERSION_MAJOR`, `N_CJSON_VERSION_MINOR`, and `N_CJSON_VERSION_PATCH` macros from `n_cjson.h` +- Artifact coverage: implementation, header declaration, macro dependency, and direct source references inspected + +## Behavior + +Returns the CJSON version string built at compile time from `N_CJSON_VERSION_MAJOR`, `N_CJSON_VERSION_MINOR`, and `N_CJSON_VERSION_PATCH` using `NOTE_C_STRINGIZE`, currently `"1.7.7"`. The surrounding compile-time guard in `n_cjson.c:106`-`n_cjson.c:108` fails the build if the implementation and header version macros disagree. + +## Important Boundaries + +- Preconditions and assumptions: version macros are defined consistently with the implementation compile-time guard. +- Error/null/empty behavior: no runtime error path; mismatched version macros are a compile-time error. +- Ownership and lifetime: returns a string literal with static storage duration; no allocation. +- Concurrency/global state: no runtime state. +- Portability/platform constraints: public export/calling convention depends on `N_CJSON_PUBLIC`. +- Performance shape: O(1). +- Security or parsing constraints: no parsing; consumers should treat the returned pointer as read-only. + +## Direct Call Sites + +Exact source search found only: + +- `n_cjson.h:180` public declaration. +- `n_cjson.c:110` definition. + +No production source callers were found in this repository. + +## Role In Callers + +Public utility for external consumers that need to query the bundled CJSON compatibility version. It is not used by note-c production code. + +## Tests Observed + +No focused tests for `JVersion` were found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:110:JVersion` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NOTE_C_STRINGIZE`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md b/source-research/artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md new file mode 100644 index 00000000..1eea42e9 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md @@ -0,0 +1,60 @@ +# `JPrintPreallocatedOmitEmpty` + +## Status + +Finalized. Source-inspected public preallocated JSON print wrapper with omit-empty mode. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1118` +- Declaration/interface: `n_cjson.h:203` +- Signature/API shape: `Jbool JPrintPreallocatedOmitEmpty(J *item, char *buf, const int len, const Jbool fmt)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JPrintPreallocatedOmitEmpty` +- Macro aliases/wrappers: none +- Ownership/lifetime role: public preallocated print entry; caller owns buffer + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1097:_printPreallocated` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: writes through caller buffer via `_printPreallocated` +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `_printPreallocated(item, buf, len, fmt, true)` directly. This selects the omit-empty object-printing behavior while preserving the caller-provided formatting flag. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies writable storage; public header warns to over-allocate because estimates are not always exact. +- Error/null/empty behavior: inherits `_printPreallocated` false returns for null item/buffer, negative length, undersized buffer, or print failure. +- Ownership and lifetime: caller retains full responsibility for the buffer; no allocation or free occurs. +- Concurrency/global state: no global state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(serialized JSON size) with no growth allocation. +- Security or parsing constraints: omit-empty mode skips false, zero, and blank-string object fields through the shared object printer; buffer bounds are enforced by `_ensure`. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `n_cjson.h:203`. + +## Role In Callers + +This is the public caller-owned-buffer print API for omit-empty output. + +## Tests Observed + +None. `rg -n "JPrintPreallocated|JPrintPreallocatedOmitEmpty|_printPreallocated" test` found no focused tests. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1118:JPrintPreallocatedOmitEmpty` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_printPreallocated`. + +## Evidence Gaps + +No unresolved source gaps for this node. Focused preallocated-print tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md b/source-research/artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md new file mode 100644 index 00000000..881d13b0 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md @@ -0,0 +1,60 @@ +# `JPrintPreallocated` + +## Status + +Finalized. Source-inspected public preallocated JSON print wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1123` +- Declaration/interface: `n_cjson.h:202` +- Signature/API shape: `Jbool JPrintPreallocated(J *item, char *buf, const int len, const Jbool fmt)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JPrintPreallocated` +- Macro aliases/wrappers: none +- Ownership/lifetime role: public preallocated print entry; caller owns buffer + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1097:_printPreallocated` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: writes through caller buffer via `_printPreallocated` +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `_printPreallocated(item, buf, len, fmt, false)` directly. This disables omit-empty behavior while preserving the caller-provided formatting flag. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies writable storage; public header warns to over-allocate because estimates are not always exact. +- Error/null/empty behavior: inherits `_printPreallocated` false returns for null item/buffer, negative length, undersized buffer, or print failure. +- Ownership and lifetime: caller retains full responsibility for the buffer; no allocation or free occurs. +- Concurrency/global state: no global state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(serialized JSON size) with no growth allocation. +- Security or parsing constraints: buffer bounds are enforced by `_ensure`; no omit-empty filtering is applied. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `n_cjson.h:202`. + +## Role In Callers + +This is the public caller-owned-buffer print API for normal formatted or unformatted output. + +## Tests Observed + +None. `rg -n "JPrintPreallocated|JPrintPreallocatedOmitEmpty|_printPreallocated" test` found no focused tests. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1123:JPrintPreallocated` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_printPreallocated`. + +## Evidence Gaps + +No unresolved source gaps for this node. Focused preallocated-print tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L1129__parse_value.md b/source-research/artifacts/functions/n_cjson_c__L1129__parse_value.md new file mode 100644 index 00000000..4f0a4267 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1129__parse_value.md @@ -0,0 +1,61 @@ +# `_parse_value` + +## Status + +Finalized. Source-inspected JSON parse dispatcher. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1129` +- Declaration/interface: file-local prototype at `n_cjson.c:862` +- Signature/API shape: `Jbool _parse_value(J * const item, parse_buffer * const input_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.c:247:can_read` finalized + - `macro:n_cjson.c:252:buffer_at_offset` finalized + - `macro:n_cjson.c:249:can_access_at_index` finalized + - `function:n_cjson.c:604:_parse_string` finalized + - `function:n_cjson.c:255:_parse_number` finalized + - `function:n_cjson.c:1245:_parse_array` recursive SCC peer + - `function:n_cjson.c:1395:_parse_object` recursive SCC peer +- External/system dependencies: `strncmp` +- Data/type/global dependencies: JSON literal constants, `J.type`, `J.valueint` + +## Behavior + +Rejects null item or invalid input buffer, then dispatches by the current input byte. It recognizes `null`, `false`, and `true` literals, setting item type and advancing offset. It delegates strings, numbers, arrays, and objects to their specialized parsers. If no JSON value form matches, returns false. + +## Important Boundaries + +- Preconditions and assumptions: caller positions the parse buffer at a non-whitespace candidate value byte. +- Error/null/empty behavior: invalid inputs or unmatched syntax return false. +- Ownership and lifetime: scalar literals do not allocate; delegated parsers manage child/string ownership. +- Concurrency/global state: no global state. +- Performance shape: constant dispatch plus delegated parser cost. +- Portability/platform constraints: forms the parser recursion SCC with `_parse_array` and `_parse_object`. + +## Direct Call Sites + +Exact source search found direct callers in `JParseWithOpts`, `_parse_array`, and `_parse_object`. + +## Role In Callers + +This is the central JSON parser dispatcher for root values and recursive container children. + +## Tests Observed + +`JSON_number_handling_test.cpp`, `JPrintUnformatted_test.cpp`, and request/response tests exercise this through `JParse`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1129:_parse_value` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused direct tests were identified for each malformed scalar literal variant. diff --git a/source-research/artifacts/functions/n_cjson_c__L115__j_tolower.md b/source-research/artifacts/functions/n_cjson_c__L115__j_tolower.md new file mode 100644 index 00000000..342a0a02 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L115__j_tolower.md @@ -0,0 +1,53 @@ +# `_j_tolower` + +## Status + +Finalized. Source-inspected ASCII lowercase helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:115` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `char _j_tolower(char c)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Returns `c` unchanged unless it is in ASCII uppercase range `'A'` through `'Z'`; uppercase characters are converted by adding 32. + +## Important Boundaries + +- Preconditions and assumptions: ASCII-compatible character constants. +- Error/null/empty behavior: not applicable. +- Ownership and lifetime: no memory access. +- Concurrency/global state: no global state. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found calls from `_case_insensitive_strcmp` at `n_cjson.c:137` and `n_cjson.c:143`. + +## Role In Callers + +`_case_insensitive_strcmp` uses `_j_tolower` for cJSON object-key case-insensitive comparisons. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:115:_j_tolower` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1179__print_value.md b/source-research/artifacts/functions/n_cjson_c__L1179__print_value.md new file mode 100644 index 00000000..29f4ee7a --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1179__print_value.md @@ -0,0 +1,60 @@ +# `_print_value` + +## Status + +Finalized. Source-inspected JSON value printer and dispatcher. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1179` +- Declaration/interface: file-local prototype at `n_cjson.c:863` +- Signature/API shape: `Jbool _print_value(const J * const item, printbuffer * const output_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:351:_ensure` finalized + - `function:n_str.c:31:strlcpy` finalized + - `function:n_cjson.c:412:_print_number` finalized + - `function:n_cjson.c:856:_print_string` finalized + - `function:n_cjson.c:1341:_print_array` recursive SCC peer + - `function:n_cjson.c:1523:_print_object` recursive SCC peer +- External/system dependencies: `strlen`, `memcpy` +- Data/type/global dependencies: `J.type`, `J.valuestring`, JSON type constants, constant JSON literal strings + +## Behavior + +Rejects null item or output buffer, then dispatches on `item->type & 0xFF`. Null, false, and true values reserve enough space through `_ensure` and copy the fixed JSON literal through `strlcpy`. Number and string nodes delegate to `_print_number` and `_print_string`. Raw nodes require non-null `valuestring`, reserve `strlen(valuestring) + 1`, and copy the raw bytes including the terminator. Array and object nodes delegate to `_print_array` and `_print_object`. Unknown base types return false. + +## Important Boundaries + +- Preconditions and assumptions: caller owns a valid printbuffer and updates offsets at call boundaries where needed. +- Error/null/empty behavior: null inputs, raw nodes with null `valuestring`, unknown types, or failed callee/ensure operations return false. +- Ownership and lifetime: no standalone allocation; writes into caller-provided printbuffer storage. +- Concurrency/global state: no global state. +- Performance shape: O(value size plus recursive child output). +- Portability/platform constraints: forms a recursive SCC with `_print_array` and `_print_object`; print-side recursion is tracked by `printbuffer.depth` but no source-level nesting limit is enforced by these print helpers. + +## Direct Call Sites + +Exact source search found direct callers in `_print`, `JPrintBuffered`, `_printPreallocated`, `_print_array`, and `_print_object`. + +## Role In Callers + +This is the central JSON serialization dispatcher behind all public print APIs. `JPrintUnformatted` reaches it through `_print`; array/object printing re-enters it for each child. + +## Tests Observed + +`JPrintUnformatted_test.cpp` exercises strings, numbers, booleans, null, arrays, and nested objects through the public unformatted print API. `JSON_number_handling_test.cpp` gives focused coverage of number serialization through this dispatcher. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1179:_print_value` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for raw node printing, allocation failure, formatted output, omit-empty output, or preallocated-buffer failure behavior. diff --git a/source-research/artifacts/functions/n_cjson_c__L1245__parse_array.md b/source-research/artifacts/functions/n_cjson_c__L1245__parse_array.md new file mode 100644 index 00000000..c8502049 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1245__parse_array.md @@ -0,0 +1,61 @@ +# `_parse_array` + +## Status + +Finalized. Source-inspected JSON array parser in the recursive parser SCC. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1245` +- Declaration/interface: file-local prototype at `n_cjson.c:864` +- Signature/API shape: `Jbool _parse_array(J * const item, parse_buffer * const input_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.c:252:buffer_at_offset` finalized + - `function:n_cjson.c:870:_buffer_skip_whitespace` finalized + - `macro:n_cjson.c:249:can_access_at_index` finalized + - `macro:n_cjson.c:250:cannot_access_at_index` finalized + - `function:n_cjson.c:194:_jNew_Item` finalized + - `function:n_cjson.c:1129:_parse_value` recursive SCC peer + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: `parse_buffer.depth`, `N_CJSON_NESTING_LIMIT`, `J.child`, `J.next`, `J.prev`, `JArray` + +## Behavior + +Rejects excessive nesting, increments parse depth, verifies `[`, skips whitespace, accepts `]` as an empty array, then parses comma-separated child values. Each child is allocated with `_jNew_Item`, linked into a child list, and populated by recursive `_parse_value`. On the closing `]`, it decrements depth, stores `JArray` and the child head on `item`, advances past the delimiter, and returns true. Failures delete any partial child list and return false. + +## Important Boundaries + +- Preconditions and assumptions: internal callers provide a non-null `item` and parse buffer positioned at `[`. +- Error/null/empty behavior: malformed delimiters, nesting limit, child allocation failure, or child parse failure return false. +- Ownership and lifetime: on success `item` owns the child list; on failure partial children are deleted. +- Concurrency/global state: no global state. +- Performance shape: linear in child count plus recursive value parsing. +- Portability/platform constraints: recursion depth is bounded by `N_CJSON_NESTING_LIMIT` during parsing. + +## Direct Call Sites + +Exact source search found `_parse_value` as the production caller for array values. + +## Role In Callers + +`JParseWithOpts` reaches this helper through `_parse_value` for root or nested arrays. + +## Tests Observed + +`JPrintUnformatted_test.cpp` and request/response parser tests exercise arrays indirectly through `JParse`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1245:_parse_array` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused direct tests were identified for nesting-limit failure or partial-child cleanup. diff --git a/source-research/artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md b/source-research/artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md new file mode 100644 index 00000000..b2f3a03f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md @@ -0,0 +1,56 @@ +# `_case_insensitive_strcmp` + +## Status + +Finalized. Source-inspected case-insensitive cJSON key comparison helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:127` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `int _case_insensitive_strcmp(const unsigned char *string1, const unsigned char *string2)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:115:_j_tolower` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads caller-provided NUL-terminated strings + +## Behavior + +Returns `1` if either input is `NULL`, `0` if the two pointers are identical, otherwise compares the strings byte by byte after applying `_j_tolower`. It returns `0` when both strings reach NUL together or the difference between lowercased mismatching bytes. + +## Important Boundaries + +- Preconditions and assumptions: non-null inputs must be NUL-terminated strings. +- Error/null/empty behavior: two NULL pointers are not considered equal; any NULL input returns nonzero. +- Ownership and lifetime: reads caller memory only. +- Concurrency/global state: no global state. +- Portability/platform constraints: ASCII-only lowercasing through `_j_tolower`. +- Performance shape: O(length of common prefix). + +## Direct Call Sites + +Exact source search found `_get_object_item` as the production caller at `n_cjson.c:1724`. + +## Role In Callers + +`_get_object_item` uses this helper for default case-insensitive object-key lookup. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:127:_case_insensitive_strcmp` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_j_tolower`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1341__print_array.md b/source-research/artifacts/functions/n_cjson_c__L1341__print_array.md new file mode 100644 index 00000000..02dd074e --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1341__print_array.md @@ -0,0 +1,57 @@ +# `_print_array` + +## Status + +Finalized. Source-inspected JSON array printer in the recursive print-value SCC. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1341` +- Declaration/interface: file-local prototype at `n_cjson.c:865` +- Signature/API shape: `Jbool _print_array(const J * const item, printbuffer * const output_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:351:_ensure` finalized + - `function:n_cjson.c:1179:_print_value` recursive SCC peer + - `function:n_cjson.c:400:_update_offset` finalized +- External/system dependencies: none +- Data/type/global dependencies: `J.child`, `J.next`, `printbuffer.format`, `printbuffer.offset`, `printbuffer.depth` + +## Behavior + +Writes `[` into the printbuffer, increments offset and depth, then walks the array child linked list. Each child is emitted through `_print_value`, `_update_offset` advances past the emitted fragment, and comma separators are inserted between siblings with an added space in formatted mode. The helper finally reserves room for `]` plus a terminator, writes the closing bracket and NUL, decrements depth, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: caller passes a non-null array `item`; the function reads `item->child` before checking `output_buffer`. +- Error/null/empty behavior: null `output_buffer`, child print failure, or `_ensure` failure returns false. +- Ownership and lifetime: no standalone allocation; writes into caller-owned printbuffer storage. +- Concurrency/global state: no global state. +- Performance shape: O(number of array children plus recursive child output). +- Portability/platform constraints: participates in the `_print_value`/`_print_array`/`_print_object` recursion; no print-side nesting limit is enforced here. + +## Direct Call Sites + +Exact source search found `_print_value` as the production caller for `JArray` nodes. + +## Role In Callers + +All public print entry points reach this helper through `_print_value` when serializing arrays, including recursive arrays nested inside objects or other arrays. + +## Tests Observed + +`JPrintUnformatted_test.cpp` exercises arrays and nested arrays through `JPrintUnformatted`. JSON number tests also exercise object printing that can contain numbers, but array coverage is mainly the focused print test. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1341:_print_array` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for allocation failure, formatted array output, deeply recursive arrays, or preallocated-buffer failure behavior. diff --git a/source-research/artifacts/functions/n_cjson_c__L1395__parse_object.md b/source-research/artifacts/functions/n_cjson_c__L1395__parse_object.md new file mode 100644 index 00000000..64874468 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1395__parse_object.md @@ -0,0 +1,62 @@ +# `_parse_object` + +## Status + +Finalized. Source-inspected JSON object parser in the recursive parser SCC. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1395` +- Declaration/interface: file-local prototype at `n_cjson.c:866` +- Signature/API shape: `Jbool _parse_object(J * const item, parse_buffer * const input_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.c:250:cannot_access_at_index` finalized + - `macro:n_cjson.c:252:buffer_at_offset` finalized + - `function:n_cjson.c:870:_buffer_skip_whitespace` finalized + - `macro:n_cjson.c:249:can_access_at_index` finalized + - `function:n_cjson.c:194:_jNew_Item` finalized + - `function:n_cjson.c:604:_parse_string` finalized + - `function:n_cjson.c:1129:_parse_value` recursive SCC peer + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: `parse_buffer.depth`, `N_CJSON_NESTING_LIMIT`, `J.child`, `J.next`, `J.prev`, `J.string`, `J.valuestring`, `JObject` + +## Behavior + +Rejects excessive nesting, increments parse depth, verifies `{`, skips whitespace, accepts `}` as an empty object, then parses comma-separated key/value members. Each member is allocated with `_jNew_Item`, linked into a child list, parses its key with `_parse_string`, moves the key from `valuestring` to `string`, requires `:`, parses the value through recursive `_parse_value`, and skips whitespace. On closing `}`, it decrements depth, stores `JObject` and the child head on `item`, advances past the delimiter, and returns true. Failures delete any partial child list and return false. + +## Important Boundaries + +- Preconditions and assumptions: internal callers provide a non-null `item` and parse buffer positioned at `{`. +- Error/null/empty behavior: malformed delimiters, key parse failure, missing colon, child allocation failure, nesting limit, or value parse failure return false. +- Ownership and lifetime: on success `item` owns child members and key strings; on failure partial children are deleted. +- Concurrency/global state: no global state. +- Performance shape: linear in member count plus recursive value parsing. +- Portability/platform constraints: recursion depth is bounded by `N_CJSON_NESTING_LIMIT` during parsing. + +## Direct Call Sites + +Exact source search found `_parse_value` as the production caller for object values. + +## Role In Callers + +`JParseWithOpts` reaches this helper through `_parse_value` for root or nested objects. + +## Tests Observed + +`JPrintUnformatted_test.cpp`, `NoteTransaction_test.cpp`, `NoteRequestResponseJSON_test.cpp`, and helper tests exercise object parsing indirectly through `JParse`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1395:_parse_object` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused direct tests were identified for nesting-limit failure, partial-member cleanup, or malformed object-key offset reporting. diff --git a/source-research/artifacts/functions/n_cjson_c__L146__j_strdup.md b/source-research/artifacts/functions/n_cjson_c__L146__j_strdup.md new file mode 100644 index 00000000..0c46bc0f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L146__j_strdup.md @@ -0,0 +1,63 @@ +# `_j_strdup` + +## Status + +Finalized. Source-inspected JSON string duplication helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:146` +- Declaration/interface: file-local `NOTE_C_STATIC` forward at `n_cjson.c:89` +- Signature/API shape: `unsigned char *_j_strdup(const unsigned char *string)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized +- External/system dependencies: `strlen`, `memcpy` +- Data/type/global dependencies: allocates through SDK allocator hook; no global state of its own + +## Behavior + +Returns `NULL` when `string` is `NULL`. Otherwise computes `strlen(string) + sizeof("")`, allocates that many bytes through `_Malloc`, returns `NULL` if allocation fails, and copies the source string including the NUL terminator into the allocated buffer with `memcpy`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must be NUL-terminated. +- Error/null/empty behavior: null input or allocation failure returns `NULL`. +- Ownership and lifetime: returns newly allocated memory owned by the caller; callers free it through `_Free`/`JDelete` paths. +- Concurrency/global state: allocation uses the global allocator hook behind `_Malloc`. +- Portability/platform constraints: avoids direct libc allocation; routes through SDK hook. +- Performance shape: O(strlen(string)). + +## Direct Call Sites + +Exact source search found `_j_strdup` used in: + +- `n_cjson.c:1848` by `_add_item_to_object` to duplicate object keys. +- `n_cjson.c:2264` by object replacement key handling. +- `n_cjson.c:2365` by `JCreateString`. +- `n_cjson.c:2425` by `JCreateRaw`. +- `n_cjson.c:2571` and `n_cjson.c:2577` by `JDuplicate`. + +## Role In Callers + +In the active JSON add path, `_add_item_to_object` uses `_j_strdup` for non-constant field names and treats `NULL` as attachment failure. + +## Tests Observed + +None. No focused direct test was inspected for this helper. + +## Graph Links + +- Graph node id: `function:n_cjson.c:146:_j_strdup` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_Malloc`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md b/source-research/artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md new file mode 100644 index 00000000..e14924a3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md @@ -0,0 +1,55 @@ +# `_last_non_omitted_object` + +## Status + +Finalized. Source-inspected object-printer look-ahead helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1507` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `bool _last_non_omitted_object(J * item, printbuffer * const output_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson_helpers.c:387:JGetItemType` finalized +- External/system dependencies: none +- Data/type/global dependencies: `J.next`, `printbuffer.omitempty`, omit-empty `JTYPE_*` constants + +## Behavior + +When omit-empty is disabled, returns whether the current object member has no `next` sibling. When omit-empty is enabled, walks following siblings and returns false as soon as a later field would be printed. Fields classified as `JTYPE_BOOL_FALSE`, `JTYPE_NUMBER_ZERO`, or `JTYPE_STRING_BLANK` are skipped by the look-ahead; any other later type means the current field is not the last non-omitted field. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies non-null `item` and `output_buffer`. +- Error/null/empty behavior: no null checks and no error channel. +- Ownership and lifetime: no allocation; traverses the caller-owned object child list. +- Concurrency/global state: no global state. +- Performance shape: O(number of following object siblings) when omit-empty is enabled. +- Portability/platform constraints: omit decisions follow `JGetItemType` numeric/string classification. + +## Direct Call Sites + +Exact source search found `_print_object` as the sole production caller. + +## Role In Callers + +`_print_object` uses this helper after printing a field to decide whether to emit a comma, avoiding trailing commas when later siblings are omitted. + +## Tests Observed + +No direct omit-empty tests were found in `test/src`. `JGetType_test.cpp` covers the `JGetItemType` classifications this helper relies on. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1507:_last_non_omitted_object` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused omit-empty print test was inspected for comma suppression across omitted fields. diff --git a/source-research/artifacts/functions/n_cjson_c__L1523__print_object.md b/source-research/artifacts/functions/n_cjson_c__L1523__print_object.md new file mode 100644 index 00000000..72211a9a --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1523__print_object.md @@ -0,0 +1,60 @@ +# `_print_object` + +## Status + +Finalized. Source-inspected JSON object printer in the recursive print-value SCC. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1523` +- Declaration/interface: file-local prototype at `n_cjson.c:867` +- Signature/API shape: `Jbool _print_object(const J * const item, printbuffer * const output_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:351:_ensure` finalized + - `function:n_cjson_helpers.c:387:JGetItemType` finalized + - `function:n_cjson.c:744:_print_string_ptr` finalized + - `function:n_cjson.c:400:_update_offset` finalized + - `function:n_cjson.c:1179:_print_value` recursive SCC peer + - `function:n_cjson.c:1507:_last_non_omitted_object` finalized +- External/system dependencies: none +- Data/type/global dependencies: `J.child`, `J.next`, `J.string`, `printbuffer.format`, `printbuffer.omitempty`, `printbuffer.offset`, `printbuffer.depth`, `PRINT_TAB_CHARS` + +## Behavior + +Writes the opening object delimiter, optional formatted newline, and then walks the object child linked list. In formatted mode it emits indentation before each member. In omit-empty mode it classifies each current field with `JGetItemType` and skips false booleans, zero numbers, and blank strings. Printed fields serialize the key with `_print_string_ptr`, write `:` plus optional spacing, recursively emit the value with `_print_value`, update the offset, and use `_last_non_omitted_object` to decide whether a comma is needed before an optional newline. After the loop, it emits optional closing indentation, writes `}` and a NUL terminator, decrements depth, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: caller passes a non-null object `item`; the function reads `item->child` before checking `output_buffer`. +- Error/null/empty behavior: null `output_buffer`, key/value print failure, or `_ensure` failure returns false. +- Ownership and lifetime: no standalone allocation; writes into caller-owned printbuffer storage. +- Concurrency/global state: no global state. +- Performance shape: O(number of object members plus recursive child output); omit-empty look-ahead can add sibling scans. +- Portability/platform constraints: default source sets `PRINT_TAB_CHARS` to 4. The dormant `PRINT_TAB_CHARS == 0` formatted branch references `output_buffer_offset`, which is not found elsewhere by source search. + +## Direct Call Sites + +Exact source search found `_print_value` as the production caller for `JObject` nodes. + +## Role In Callers + +All public print entry points reach this helper through `_print_value` when serializing objects, including the request serialization path through `JPrintUnformatted`. + +## Tests Observed + +`JPrintUnformatted_test.cpp` exercises nested object printing through `JPrintUnformatted`. `JSON_number_handling_test.cpp` uses object serialization for numeric fields. `JGetType_test.cpp` covers the detailed type classifications used by omit-empty decisions, but no focused omit-empty print test was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1523:_print_object` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for formatted object output, omit-empty output, allocation failure, or the dormant `PRINT_TAB_CHARS == 0` path. diff --git a/source-research/artifacts/functions/n_cjson_c__L1660__JGetArraySize.md b/source-research/artifacts/functions/n_cjson_c__L1660__JGetArraySize.md new file mode 100644 index 00000000..ce9bb17f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1660__JGetArraySize.md @@ -0,0 +1,63 @@ +# `JGetArraySize` + +## Status + +Finalized. Source-inspected public array/object child-count helper, macro alias, no-caller search, and focused test search. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1660` +- Declaration/interface: `n_cjson.h:208` +- Public/exported names: `JGetArraySize` +- Macro aliases/wrappers: `JGetObjectItems` expands to `JGetArraySize` at `n_cjson.h:209` +- Signature/API shape: `int JGetArraySize(const J *array)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: read-only traversal; no allocation or ownership transfer + +## Dependency Status + +- Project-local dependencies: + - No project-local callees +- External/system dependencies: none +- Data/type/global dependencies: reads `J.child` and `J.next` +- Artifact coverage: source, declaration, alias, direct caller search, overflow boundary, and focused test search inspected + +## Behavior + +Returns 0 for a null `array`. Otherwise starts at `array->child`, walks the sibling chain through `child->next`, increments a `size_t` counter for each child, and returns the count cast to `int`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input should point to a valid `J` object with an acyclic child chain. +- Error/null/empty behavior: null input and objects/arrays with no child return 0. +- Ownership and lifetime: no allocation, no frees, no ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: count is accumulated as `size_t` but returned as `int`; source notes this can overflow without an API break. +- Performance shape: O(number of child nodes). +- Security or parsing constraints: no validation of type, list integrity, or cycles. + +## Direct Call Sites + +Exact source search found only the public declaration, the `JGetObjectItems` alias, and the implementation. No production callers were found in this repository. + +## Role In Callers + +No repository production caller currently uses this public count helper. The `JGetObjectItems` alias gives object-count semantics over the same child chain. + +## Tests Observed + +No direct focused tests for `JGetArraySize` or `JGetObjectItems` were found. + +## Test Coverage Notes + +Focused tests do not directly cover null input, empty arrays/objects, non-empty traversal, alias use, or return-value overflow. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1660:JGetArraySize` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1681__get_array_item.md b/source-research/artifacts/functions/n_cjson_c__L1681__get_array_item.md new file mode 100644 index 00000000..de4974c3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1681__get_array_item.md @@ -0,0 +1,64 @@ +# `_get_array_item` + +## Status + +Finalized. Source-inspected private JSON array/object child traversal helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1681` +- Declaration/interface: file-local `NOTE_C_STATIC`; no public header declaration +- Signature/API shape: `J *_get_array_item(const J *array, size_t index)` +- Visibility: internal to `n_cjson.c` unless statics are exposed for tests +- Public/exported names: none; public callers expose array index access and mutation + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `J.child` and sibling `J.next` links from the intrusive JSON tree/list +- Artifact coverage: source, declaration absence, direct callers, and focused test search inspected + +## Behavior + +Returns `NULL` when `array` is `NULL`. Otherwise starts at `array->child` and walks `next` links while `index > 0`, decrementing the index on each step. Returns the child at the requested zero-based position, or `NULL` when the chain ends before that position. + +The helper does not check `array->type`; despite its name, it can traverse any `J` node's child list. Public `JGetArrayItem`, `JDetachItemFromArray`, `JInsertItemInArray`, and `JReplaceItemInArray` supply the bounds/type-facing API behavior around this raw traversal. + +## Important Boundaries + +- Preconditions and assumptions: `array`, when non-`NULL`, points to a valid `J` node whose `child`/`next` links are well formed. +- Error/null/empty behavior: `NULL` array, empty child list, and out-of-range index all return `NULL`. +- Ownership and lifetime: returns a borrowed child pointer; does not allocate, detach, delete, or copy. +- Concurrency/global state: no global state or locking. +- Portability/platform constraints: none beyond ordinary pointer traversal. +- Performance shape: O(index) over the child list. +- Security or parsing constraints: no membership/type validation; callers that expose public APIs must prevent negative indexes before casting to `size_t`. + +## Direct Call Sites + +Exact source search found four direct callers: + +- `n_cjson.c:1707` `JGetArrayItem` rejects `NULL` arrays and negative indexes, then returns the borrowed `_get_array_item` result. +- `n_cjson.c:2124` `JDetachItemFromArray` rejects `NULL` arrays and negative indexes, then passes the found child to `JDetachItemViaPointer`. +- `n_cjson.c:2188` `JInsertItemInArray` uses the found child as the insertion point; a missing child appends through `_add_item_to_array`. +- `n_cjson.c:2248` `JReplaceItemInArray` passes the found child to `JReplaceItemViaPointer`; failure deletes the replacement. + +## Role In Callers + +This is the shared positional lookup primitive behind public array access, detach, insert, and replace APIs. It intentionally leaves ownership unchanged; higher-level callers decide whether a returned child is borrowed, detached, replaced, or deleted. + +## Tests Observed + +Focused search found no direct tests for `_get_array_item` or `JGetArrayItem`. Adjacent array tests exercise array creation/retrieval through `JCreateArray`, `JAddItemToObject`, and `JGetArray` in `test/src/JGetArray_test.cpp:21`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1681:_get_array_item` +- Structured graph: `inventory/dependency-graph.json` +- Verified callers: `JGetArrayItem`, `JDetachItemFromArray`, `JInsertItemInArray`, `JReplaceItemInArray` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for index retrieval and out-of-range public behavior were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md b/source-research/artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md new file mode 100644 index 00000000..6589d453 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md @@ -0,0 +1,60 @@ +# `JGetArrayItem` + +## Status + +Finalized. Source-inspected public JSON array index accessor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1698` +- Declaration/interface: `n_cjson.h:211` +- Signature/API shape: `J *JGetArrayItem(const J *array, int index)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JGetArrayItem` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1681:_get_array_item` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `J.child`/`J.next` links through `_get_array_item` +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns `NULL` when `array` is `NULL` or `index < 0`. Otherwise casts the index to `size_t` and returns `_get_array_item(array, (size_t)index)`, which yields a borrowed pointer to the child at that zero-based position or `NULL` when out of range. + +The API does not check that the parent node has type `JArray`. + +## Important Boundaries + +- Preconditions and assumptions: non-null parent must have a well-formed child/sibling list. +- Error/null/empty behavior: null array, negative index, empty array, and out-of-range index return `NULL`. +- Ownership and lifetime: returns a borrowed pointer; no allocation, detach, copy, or delete. +- Concurrency/global state: no global state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(index) over the child list. +- Security or parsing constraints: no type validation. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers can use it for borrowed indexed access into array/object child lists. + +## Tests Observed + +No focused test references for `JGetArrayItem` were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1698:JGetArrayItem` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_get_array_item` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L1710__get_object_item.md b/source-research/artifacts/functions/n_cjson_c__L1710__get_object_item.md new file mode 100644 index 00000000..fee9d6cc --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1710__get_object_item.md @@ -0,0 +1,57 @@ +# `_get_object_item` + +## Status + +Finalized. Source-inspected JSON object child lookup helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1710` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `J *_get_object_item(const J * const object, const char * const name, const Jbool case_sensitive)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:127:_case_insensitive_strcmp` finalized +- External/system dependencies: `strcmp` for case-sensitive lookup +- Data/type/global dependencies: reads the child linked list under `object` + +## Behavior + +Returns `NULL` when `object` or `name` is `NULL`. Otherwise walks `object->child` until it finds a child whose key matches `name`. Case-sensitive mode uses `strcmp`; default mode uses `_case_insensitive_strcmp`. Returns the matching child pointer or `NULL` when none is found. + +## Important Boundaries + +- Preconditions and assumptions: object child nodes have valid `string` pointers for comparison; the helper does not verify object type. +- Error/null/empty behavior: null object/name returns `NULL`; null child key in case-insensitive mode compares non-equal through `_case_insensitive_strcmp`. +- Ownership and lifetime: returns a borrowed pointer into the parent object. +- Concurrency/global state: no global state. +- Performance shape: O(number of children * key length). + +## Direct Call Sites + +Exact source search found callers: + +- `JGetObjectItem`, `JGetObjectItemCaseSensitive`, object replacement, and `JCompare` in `n_cjson.c`. + +## Role In Callers + +`JGetObjectItem` uses this helper with case-insensitive lookup. `JGetString` reaches it through `JGetObjectItem`. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1710:_get_object_item` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_case_insensitive_strcmp`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md b/source-research/artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md new file mode 100644 index 00000000..64a9ea5d --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md @@ -0,0 +1,56 @@ +# `JGetObjectItem` + +## Status + +Finalized. Source-inspected public JSON object child lookup wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1732` +- Declaration/interface: `n_cjson.h:213` +- Signature/API shape: `J *JGetObjectItem(const J * const object, const char * const string)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JGetObjectItem` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1710:_get_object_item` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: reads object child list + +## Behavior + +Returns `NULL` when `object` is `NULL`; otherwise delegates to `_get_object_item(object, string, false)` for case-insensitive lookup. + +## Important Boundaries + +- Preconditions and assumptions: `string` may be null; lower helper returns `NULL` for null names. +- Error/null/empty behavior: null object/name or missing key returns `NULL`. +- Ownership and lifetime: returns a borrowed pointer into the object tree. +- Concurrency/global state: no global state. +- Performance shape: O(number of children * key length). + +## Direct Call Sites + +Exact source search found broad helper fanout in `n_cjson_helpers.c`, direct cJSON object detach/has-item callers, and the active `JGetString` lookup path. + +## Role In Callers + +`JGetString` calls `JGetObjectItem` to find the requested field before checking that it is a string. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1732:JGetObjectItem` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_get_object_item`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md b/source-research/artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md new file mode 100644 index 00000000..f2d75c9d --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md @@ -0,0 +1,62 @@ +# `JGetObjectItemCaseSensitive` + +## Status + +Finalized. Source-inspected public case-sensitive JSON object lookup wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1740` +- Declaration/interface: `n_cjson.h:214` +- Signature/API shape: `J *JGetObjectItemCaseSensitive(const J * const object, const char * const string)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JGetObjectItemCaseSensitive` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1710:_get_object_item` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: reads object child list through `_get_object_item` +- Artifact coverage: source, header declaration, direct callers, and focused tests inspected + +## Behavior + +Returns `NULL` when `object` is `NULL`; otherwise delegates to `_get_object_item(object, string, true)`. A `NULL` key or missing key returns `NULL` through the lower helper. The returned pointer is borrowed from the object tree. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `object` is actually a JSON object. +- Error/null/empty behavior: null object/name or missing key returns `NULL`. +- Ownership and lifetime: returns a borrowed child pointer with no allocation or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(number of children * key length). +- Security or parsing constraints: object-child key strings are assumed valid for `strcmp`. + +## Direct Call Sites + +Exact source search found one production caller: + +- `n_cjson.c:2152` `JDetachItemFromObjectCaseSensitive` looks up the named child and detaches it through `JDetachItemViaPointer`. + +No focused test references were found under `test/src`. + +## Role In Callers + +This is the public case-sensitive lookup front end and the lookup primitive for case-sensitive object detach/delete wrappers. + +## Tests Observed + +None found by exact focused test search for this symbol. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1740:JGetObjectItemCaseSensitive` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_get_object_item` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for case-sensitive lookup were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md b/source-research/artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md new file mode 100644 index 00000000..fbedf63f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md @@ -0,0 +1,60 @@ +# `JHasObjectItem` + +## Status + +Finalized. Source-inspected public JSON object membership wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1748` +- Declaration/interface: `n_cjson.h:215` +- Public/exported names: `JHasObjectItem` +- Macro aliases/wrappers: none found +- Signature/API shape: `Jbool JHasObjectItem(const J *object, const char *string)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: borrowed read-only object lookup predicate + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: reads object child list through `JGetObjectItem` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `false` when `object` is `NULL`. Otherwise calls `JGetObjectItem(object, string)` and returns `1` when the lookup finds an item, `0` when it returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `string` is passed through to `JGetObjectItem`; a null name is handled by the lower lookup helper as not found. +- Error/null/empty behavior: null object, null name, and missing key all produce false. +- Ownership and lifetime: does not allocate or transfer ownership. +- Concurrency/global state: no global state. +- Portability/platform constraints: no platform-specific behavior. +- Performance shape: O(number of children * key length) via case-insensitive object lookup. +- Security or parsing constraints: no parsing; relies on existing object tree structure. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:215`, the definition in `n_cjson.c:1748`, and one focused test assertion in `test/src/NoteRequestResponseJSON_test.cpp:448`. No production repository caller was found. + +## Role In Callers + +No production caller role in repository source. The focused test uses the predicate to assert that an error JSON response omits the `id` field. + +## Tests Observed + +Focused evidence in `test/src/NoteRequestResponseJSON_test.cpp:448` checks `!JHasObjectItem(json, "id")` for a parsed error response. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1748:JHasObjectItem` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `JGetObjectItem`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1757__suffix_object.md b/source-research/artifacts/functions/n_cjson_c__L1757__suffix_object.md new file mode 100644 index 00000000..5a7b8630 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1757__suffix_object.md @@ -0,0 +1,56 @@ +# `_suffix_object` + +## Status + +Finalized. Source-inspected JSON doubly-linked-list append helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1757` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `void _suffix_object(J *prev, J *item)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: mutates caller-provided `J` nodes + +## Behavior + +Links `item` after `prev` by setting `prev->next = item` and `item->prev = prev`. + +## Important Boundaries + +- Preconditions and assumptions: both pointers must be non-null valid `J` nodes; no null checks. +- Error/null/empty behavior: none. +- Ownership and lifetime: does not allocate or free; it only mutates links. +- Concurrency/global state: no global state. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found callers in `n_cjson.c`: + +- `n_cjson.c:1801` from `_add_item_to_array`. +- `n_cjson.c:2481`, `n_cjson.c:2511`, and `n_cjson.c:2541` from array creation helpers. + +## Role In Callers + +In the active JSON add path, `_add_item_to_array` uses `_suffix_object` after walking to the last child. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1757:_suffix_object` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L175__JMalloc.md b/source-research/artifacts/functions/n_cjson_c__L175__JMalloc.md new file mode 100644 index 00000000..3aad027f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L175__JMalloc.md @@ -0,0 +1,60 @@ +# `JMalloc` + +## Status + +Finalized. Source-inspected public CJSON allocation wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:175` +- Declaration/interface: `n_cjson.h:325` +- Public/exported names: `JMalloc` +- Macro aliases/wrappers: none for `JMalloc`; implementation delegates through internal `_Malloc` alias in `n_lib.h:241` +- Signature/API shape: `void *JMalloc(size_t size)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: allocates through the SDK allocator hook and transfers returned memory to caller + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` expands to finalized `NoteMalloc` +- External/system dependencies: allocator hook used by `NoteMalloc` +- Data/type/global dependencies: reads allocator hook state through `NoteMalloc` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `_Malloc(size)`, where `_Malloc` is the internal alias for `NoteMalloc`. If no allocation hook is registered or the hook fails, the delegated call returns `NULL`; otherwise the returned pointer is passed through unchanged. + +## Important Boundaries + +- Preconditions and assumptions: allocation semantics are supplied by the registered platform allocator hook. +- Error/null/empty behavior: no hook or hook failure returns `NULL`; no error string is produced. +- Ownership and lifetime: returned allocation belongs to the caller and should be freed with the paired SDK free path. +- Concurrency/global state: delegates to `NoteMalloc`, which reads hook globals without taking the Notecard lock. +- Portability/platform constraints: allocation policy stays behind SDK hooks rather than libc calls in this wrapper. +- Performance shape: one allocator wrapper call plus any optional debug work in `NoteMalloc`. +- Security or parsing constraints: no parsing or bounds checks; requested size is passed through unchanged. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:325` and the definition in `n_cjson.c:175`. No production or test caller was found in repository source. + +## Role In Callers + +No repository caller role. This function exposes the SDK allocator hook through the public cJSON-compatible API surface. + +## Tests Observed + +None. Exact focused test search found no direct `JMalloc` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:175:JMalloc` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_Malloc` / `NoteMalloc`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1764__create_reference.md b/source-research/artifacts/functions/n_cjson_c__L1764__create_reference.md new file mode 100644 index 00000000..2f8ce024 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1764__create_reference.md @@ -0,0 +1,63 @@ +# `_create_reference` + +## Status + +Finalized. Source-inspected JSON shallow reference wrapper constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1764` +- Declaration/interface: file-local `NOTE_C_STATIC`; no public header declaration +- Signature/API shape: `J *_create_reference(const J *item)` +- Visibility: internal to `n_cjson.c` unless statics are exposed for tests +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: copies `J` node fields and sets `JIsReference` +- Artifact coverage: source, direct callers, ownership behavior, and focused test search inspected + +## Behavior + +Returns `NULL` when `item` is `NULL`. Otherwise allocates a new zeroed `J` node with `_jNew_Item`; allocation failure returns `NULL`. On success, shallow-copies the source `J` into the new node, clears `reference->string`, sets `JIsReference` in the type flags, clears `next` and `prev`, and returns the wrapper. + +The referenced child/value storage is not duplicated. + +## Important Boundaries + +- Preconditions and assumptions: non-null `item` points to a valid `J`. +- Error/null/empty behavior: null input or allocation failure returns `NULL`. +- Ownership and lifetime: caller owns the wrapper node, but the wrapper does not own referenced child/value storage because `JIsReference` prevents recursive child/value freeing in `JDelete`. +- Concurrency/global state: allocation follows SDK allocator hook state through `_jNew_Item`. +- Portability/platform constraints: shallow copy assumes stable `J` layout. +- Performance shape: O(sizeof(J)). +- Security or parsing constraints: no deep-copy validation; lifetime of referenced data must outlive the reference wrapper. + +## Direct Call Sites + +Exact production callers: + +- `n_cjson.c:1894` `JAddItemReferenceToArray`. +- `n_cjson.c:1905` `JAddItemReferenceToObject`. + +## Role In Callers + +Creates the non-owning wrapper that lets a JSON array/object refer to an existing `J` item without corrupting or transferring ownership of the original item. + +## Tests Observed + +No focused test references for this helper or public reference-add wrappers were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1764:_create_reference` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_jNew_Item` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for reference wrapper deletion semantics were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L1783__add_item_to_array.md b/source-research/artifacts/functions/n_cjson_c__L1783__add_item_to_array.md new file mode 100644 index 00000000..3029005c --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1783__add_item_to_array.md @@ -0,0 +1,60 @@ +# `_add_item_to_array` + +## Status + +Finalized. Source-inspected JSON child-list append helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1783` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _add_item_to_array(J *array, J *item)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1757:_suffix_object` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates `array->child` or the terminal child link + +## Behavior + +Returns `false` if `array` or `item` is `NULL`. If `array->child` is `NULL`, stores `item` as the first child. Otherwise walks the `next` chain to the last child and appends `item` using `_suffix_object`. Returns `true` after a successful append. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `array` is actually an array/object node or that `item` is unlinked. +- Error/null/empty behavior: null array or item returns `false` and does not free `item`. +- Ownership and lifetime: transfers list membership to the parent on success; allocation/free decisions remain with callers. +- Concurrency/global state: no global state. +- Performance shape: O(number of existing children). + +## Direct Call Sites + +Exact source search found callers in `n_cjson.c`: + +- `n_cjson.c:1814` from `JAddItemToArray`. +- `n_cjson.c:1863` from `_add_item_to_object`. +- `n_cjson.c:1895` from `JAddItemReferenceToArray`. +- `n_cjson.c:2190` from `JInsertItemInArray`. + +## Role In Callers + +In the active `JAddIntToObject` path, `_add_item_to_object` delegates final child insertion to this helper after preparing the key string and type flags. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1783:_add_item_to_array` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_suffix_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md b/source-research/artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md new file mode 100644 index 00000000..4917dfdb --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md @@ -0,0 +1,61 @@ +# `JAddItemToArray` + +## Status + +Finalized. Source-inspected public array attach helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1808` +- Declaration/interface: `n_cjson.h:261` +- Public/exported names: `JAddItemToArray` +- Macro aliases/wrappers: none found +- Signature/API shape: `void JAddItemToArray(J *array, J *item)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: transfers `item` into the array/object child chain on success; consumes/deletes `item` on failure + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1783:_add_item_to_array` finalized +- External/system dependencies: free hook may be reached on cleanup through `JDelete` / `_Free` +- Data/type/global dependencies: mutates `array->child`, `item->prev`, and linked-list `next` fields through `_add_item_to_array` +- Artifact coverage: source-inspected artifact + +## Behavior + +If `array` or `item` is `NULL`, calls `JDelete(item)` and returns. Otherwise calls `_add_item_to_array(array, item)`. If the helper reports failure, deletes `item`; on success it returns with `item` linked into the array/object child list. + +## Important Boundaries + +- Preconditions and assumptions: does not verify `array->type`; any non-null `J *` can have its child list mutated. +- Error/null/empty behavior: invalid inputs consume/delete `item` when non-null; `JDelete(NULL)` is a no-op by loop shape. +- Ownership and lifetime: successful attach makes `item` part of `array`'s child chain so later parent deletion reaches it. +- Concurrency/global state: no direct global state; cleanup may use the configured free hook through `JDelete`. +- Portability/platform constraints: no platform-specific behavior. +- Performance shape: O(number of existing children) append traversal for non-empty child chains. +- Security or parsing constraints: does not clear or validate pre-existing `item->next`/`item->prev`; relies on callers supplying a detached item. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:261` and the definition in `n_cjson.c:1808`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public cJSON-compatible helper for downstream code that transfers a caller-created item into an array/object child list. + +## Tests Observed + +None. Focused searches found no direct tests for `JAddItemToArray` or `_add_item_to_array`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1808:JAddItemToArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDelete` and `_add_item_to_array`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1826__cast_away_const.md b/source-research/artifacts/functions/n_cjson_c__L1826__cast_away_const.md new file mode 100644 index 00000000..48035b62 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1826__cast_away_const.md @@ -0,0 +1,57 @@ +# `_cast_away_const` + +## Status + +Finalized. Source-inspected const-cast helper for JSON reference/constant-key paths. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1826` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `void *_cast_away_const(const void *string)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Returns the input pointer cast from `const void *` to `void *`. + +## Important Boundaries + +- Preconditions and assumptions: callers must preserve const-correct ownership semantics separately, usually by setting `JStringIsConst`. +- Error/null/empty behavior: null input returns null after cast. +- Ownership and lifetime: does not allocate, free, or copy. +- Concurrency/global state: no global state. +- Portability/platform constraints: compiler diagnostics around the definition suppress cast-qual warnings for GCC/Clang. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found callers in `n_cjson.c`: + +- `n_cjson.c:1845` from `_add_item_to_object` for constant keys. +- `n_cjson.c:2379`, `n_cjson.c:2389`, `n_cjson.c:2402`, and `n_cjson.c:2415` from string/object/array reference constructors. + +## Role In Callers + +In the active JSON add path, `_add_item_to_object` uses `_cast_away_const` only when `constant_key` is true and then marks the item type with `JStringIsConst`. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1826:_cast_away_const` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1835__add_item_to_object.md b/source-research/artifacts/functions/n_cjson_c__L1835__add_item_to_object.md new file mode 100644 index 00000000..da2dd6b4 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1835__add_item_to_object.md @@ -0,0 +1,62 @@ +# `_add_item_to_object` + +## Status + +Finalized. Source-inspected JSON object-field attachment helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1835` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _add_item_to_object(J * const object, const char * const string, J * const item, const Jbool constant_key)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1826:_cast_away_const` finalized + - `function:n_cjson.c:146:_j_strdup` finalized + - `macro:n_lib.h:242:_Free` finalized + - `function:n_cjson.c:1783:_add_item_to_array` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: mutates `item->string`, `item->type`, and the object's child list + +## Behavior + +Returns `false` if `object`, `string`, or `item` is `NULL`. For constant keys, it casts the key pointer with `_cast_away_const` and marks the item type with `JStringIsConst`. For normal keys, it duplicates the key with `_j_strdup`; allocation failure returns `false`. If the item already owns a non-constant key string, it frees that string through `_Free`. It then installs the new key and type flags on `item` and delegates insertion to `_add_item_to_array(object, item)`. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a valid object-like `J` parent and an item intended to be adopted by that parent. +- Error/null/empty behavior: null inputs or failed key duplication return `false` without freeing `item`. +- Ownership and lifetime: on success, `item` becomes part of the parent child list. For non-constant keys, the helper owns a duplicated key string. Existing non-constant `item->string` is released before replacement. +- Concurrency/global state: allocation/free uses SDK hook globals through `_j_strdup` and `_Free`. +- Portability/platform constraints: const-key paths are represented by `JStringIsConst` so `JDelete` will not free borrowed key strings. +- Performance shape: O(strlen(key) + number of existing children). + +## Direct Call Sites + +Exact source search found callers in `n_cjson.c`: + +- Public item add/reference wrappers: `JAddItemToObject`, `JAddItemToObjectCS`, `JAddItemReferenceToObject`. +- Typed object add wrappers: `JAddTrueToObject`, `JAddFalseToObject`, `JAddBoolToObject`, `JAddNumberToObject`, `JAddIntToObject`, `JAddStringToObject`, `JAddRawToObject`, `JAddObjectToObject`, `JAddArrayToObject`. + +## Role In Callers + +In the active receive path, `JAddIntToObject` uses this helper to attach `"offset"` and `"length"` numeric children to the `card.binary.get` request object. The helper transfers the new number item into the request object on success. + +## Tests Observed + +None. No focused direct test was inspected for this helper. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1835:_add_item_to_object` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_cast_away_const`, `_j_strdup`, `_Free`, and `_add_item_to_array`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md b/source-research/artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md new file mode 100644 index 00000000..0bcb02e3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md @@ -0,0 +1,56 @@ +# `JAddItemToObject` + +## Status + +Finalized. Source-inspected public object child ownership wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1866` +- Declaration/interface: `n_cjson.h:262` +- Signature/API shape: `void JAddItemToObject(J *object, const char *string, J *item)` +- Visibility: public cJSON/note-c JSON API +- Public/exported names: `JAddItemToObject` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized +- External/system dependencies: none +- Data/type/global dependencies: `J` object/list ownership + +## Behavior + +Deletes `item` and returns when `object`, `string`, or `item` is null. Otherwise delegates to `_add_item_to_object(object, string, item, false)`, which duplicates the key and appends the item. If the lower-level add fails, the wrapper deletes `item`. + +## Important Boundaries + +- Preconditions and assumptions: caller transfers ownership of `item` on every non-null call path. +- Error/null/empty behavior: invalid inputs or add failure do not report status; they clean up `item` and return. +- Ownership and lifetime: on success, object owns `item`; on failure, `item` is deleted. +- Concurrency/global state: allocator/free behavior follows JSON hook configuration through callees. +- Performance shape: bounded by key duplication plus append traversal in `_add_item_to_object`. +- Portability/platform constraints: none beyond JSON allocator hooks. + +## Direct Call Sites + +Exact source search found production callers in binary helper JSON assembly, user-agent injection in `_noteTransactionShouldLock`, and helper macros such as `NoteAddBodyToObject`. Focused tests call it in JSON helper tests and invalid-item type classification. + +## Role In Callers + +`_noteTransactionShouldLock` uses this wrapper to attach the generated user-agent body to a request object when the hub.set/product predicate passes. + +## Tests Observed + +`JGetArray_test.cpp`, `JGetObject_test.cpp`, and `JGetType_test.cpp` exercise successful attachment. `NoteTransaction_test.cpp` covers user-agent transaction cases that reach this wrapper indirectly. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1866:JAddItemToObject` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test was inspected for the wrapper deleting `item` on null object/key or `_add_item_to_object` failure. diff --git a/source-research/artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md b/source-research/artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md new file mode 100644 index 00000000..eb99be37 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md @@ -0,0 +1,61 @@ +# `JAddItemToObjectCS` + +## Status + +Finalized. Source-inspected public constant-key object attach helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1878` +- Declaration/interface: `n_cjson.h:266` +- Public/exported names: `JAddItemToObjectCS` +- Macro aliases/wrappers: none found +- Signature/API shape: `void JAddItemToObjectCS(J *object, const char *string, J *item)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: transfers `item` into `object` on success while borrowing a constant key string + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized +- External/system dependencies: free hook may be reached on cleanup through `JDelete` / `_Free` +- Data/type/global dependencies: marks `item->type` with `JStringIsConst` through `_add_item_to_object` +- Artifact coverage: source-inspected artifact + +## Behavior + +If `object`, `string`, or `item` is `NULL`, calls `JDelete(item)` and returns. Otherwise calls `_add_item_to_object(object, string, item, true)`. If that helper reports failure, deletes `item`; on success it returns with `item` linked into the object. + +## Important Boundaries + +- Preconditions and assumptions: caller must supply a key string that outlives the JSON object, matching the header warning for constant-string keys. +- Error/null/empty behavior: invalid inputs consume/delete `item` when non-null; no error status is returned. +- Ownership and lifetime: on success, the object owns `item`; `item->string` borrows `string` and is protected from `JDelete` by `JStringIsConst`. +- Concurrency/global state: no direct global state; cleanup may use the configured free hook through `JDelete`. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: avoids key duplication; append cost is inherited from `_add_item_to_object` / `_add_item_to_array`. +- Security or parsing constraints: no parsing; unsafe if the borrowed key pointer does not remain valid for the JSON object's lifetime. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:266` and the definition in `n_cjson.c:1878`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public convenience/API helper for downstream code that wants object insertion without duplicating a constant key string. + +## Tests Observed + +None. Focused searches found no direct tests for `JAddItemToObjectCS`, `ObjectCS`, or `JStringIsConst`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1878:JAddItemToObjectCS` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDelete` and `_add_item_to_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md b/source-research/artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md new file mode 100644 index 00000000..e3ff49aa --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md @@ -0,0 +1,62 @@ +# `JAddItemReferenceToArray` + +## Status + +Finalized. Source-inspected public JSON array reference-add wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1889` +- Declaration/interface: `n_cjson.h:268` +- Signature/API shape: `void JAddItemReferenceToArray(J *array, J *item)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JAddItemReferenceToArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1764:_create_reference` finalized + - `function:n_cjson.c:1783:_add_item_to_array` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates array child list through `_add_item_to_array` +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns without action when `array` or `item` is `NULL`. Otherwise creates a shallow non-owning reference wrapper with `_create_reference(item)` and tries to append that wrapper to `array` with `_add_item_to_array`. If append fails, deletes the wrapper with `JDelete`. + +The API is void and exposes no success/failure status. + +## Important Boundaries + +- Preconditions and assumptions: `array` is a valid object/array-like parent and `item` is a valid `J` whose lifetime remains valid. +- Error/null/empty behavior: null array/item is a no-op; allocation failure yields a null wrapper and append failure, then `JDelete(NULL)` no-op. +- Ownership and lifetime: on success, the array owns the wrapper node, not the referenced item's child/value storage. +- Concurrency/global state: allocation/free follows SDK allocator hook state. +- Portability/platform constraints: follows `_create_reference` shallow-copy semantics. +- Performance shape: O(number of existing children) append. +- Security or parsing constraints: no type validation for `array`. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers can add a borrowed/reference view of an existing item to an array. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1889:JAddItemReferenceToArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_create_reference`, `_add_item_to_array`, and `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L188__JFree.md b/source-research/artifacts/functions/n_cjson_c__L188__JFree.md new file mode 100644 index 00000000..d02d6e9d --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L188__JFree.md @@ -0,0 +1,60 @@ +# `JFree` + +## Status + +Finalized. Source-inspected public CJSON free wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:188` +- Declaration/interface: `n_cjson.h:326` +- Public/exported names: `JFree` +- Macro aliases/wrappers: none for `JFree`; implementation delegates through internal `_Free` alias in `n_lib.h:242` +- Signature/API shape: `void JFree(void *p)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: releases caller-provided memory through the SDK free hook + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:242:_Free` expands to finalized `NoteFree` +- External/system dependencies: free hook used by `NoteFree` +- Data/type/global dependencies: reads free-hook state through `NoteFree` +- Artifact coverage: source-inspected artifact + +## Behavior + +Calls `_Free(p)`, where `_Free` is the internal alias for `NoteFree`, and returns. If no free hook is registered, the delegated call is a no-op; otherwise the pointer is passed to the hook unchanged. + +## Important Boundaries + +- Preconditions and assumptions: pointer must be appropriate for the currently configured free hook; the source does not track allocator provenance. +- Error/null/empty behavior: returns no status; null pointers are forwarded to `NoteFree` and then to the hook if one is configured. +- Ownership and lifetime: releases memory according to the registered platform hook's contract. +- Concurrency/global state: delegates to `NoteFree`, which reads hook globals without taking the Notecard lock. +- Portability/platform constraints: deallocation policy stays behind SDK hooks rather than direct libc calls in this wrapper. +- Performance shape: one free-wrapper call plus optional debug work in `NoteFree`. +- Security or parsing constraints: changing allocation/free hooks between allocation and `JFree` can mismatch memory ownership conventions. + +## Direct Call Sites + +Exact production source search found only the public declaration in `n_cjson.h:326` and the definition in `n_cjson.c:188`. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Tests and public comments use `JFree` as the release API for buffers returned by JSON print paths and helper APIs. + +## Tests Observed + +Focused cleanup usage appears in `test/src/JPrintUnformatted_test.cpp:55` and `test/src/JSON_number_handling_test.cpp` for printed JSON output. Underlying hook behavior is covered by `test/src/NoteFree_test.cpp`, which verifies unset hooks no-op and set hooks receive the pointer. No direct test assertion covers `JFree(NULL)`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:188:JFree` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_Free` / `NoteFree`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md b/source-research/artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md new file mode 100644 index 00000000..99ab9c80 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md @@ -0,0 +1,62 @@ +# `JAddItemReferenceToObject` + +## Status + +Finalized. Source-inspected public JSON object reference-add wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1900` +- Declaration/interface: `n_cjson.h:269` +- Signature/API shape: `void JAddItemReferenceToObject(J *object, const char *string, J *item)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JAddItemReferenceToObject` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1764:_create_reference` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates object child list and wrapper key through `_add_item_to_object` +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns without action when `object`, `string`, or `item` is `NULL`. Otherwise creates a shallow non-owning reference wrapper with `_create_reference(item)` and attaches that wrapper to `object` under `string` using `_add_item_to_object(..., false)`. If attachment fails, deletes the wrapper with `JDelete`. + +The API is void and exposes no success/failure status. + +## Important Boundaries + +- Preconditions and assumptions: `object` is a valid object-like parent, `string` is a valid key, and referenced `item` remains valid. +- Error/null/empty behavior: null inputs are no-ops; allocation/key-duplication/append failure deletes only the wrapper. +- Ownership and lifetime: on success, the object owns the wrapper node and duplicated key string, not the referenced item's child/value storage. +- Concurrency/global state: allocation/free follows SDK allocator hook state. +- Portability/platform constraints: follows `_create_reference` shallow-copy semantics. +- Performance shape: O(strlen(key) + number of object children). +- Security or parsing constraints: no type validation for `object`. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers can add a borrowed/reference view of an existing item to an object under a duplicated key. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1900:JAddItemReferenceToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_create_reference`, `_add_item_to_object`, and `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md b/source-research/artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md new file mode 100644 index 00000000..c5275631 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md @@ -0,0 +1,62 @@ +# `JAddTrueToObject` + +## Status + +Finalized. Source-inspected public create-and-add true-object helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1911` +- Declaration/interface: `n_cjson.h:301` +- Public/exported names: `JAddTrueToObject` +- Macro aliases/wrappers: none found +- Signature/API shape: `J *JAddTrueToObject(J * const object, const char * const name)` +- Visibility: public cJSON helper implemented in `n_cjson.c` +- Ownership/lifetime role: creates a new true item and transfers it into the object on success + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2303:JCreateTrue` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: allocator/free hooks may be reached through callees +- Data/type/global dependencies: allocator/free behavior occurs through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` when `object` is `NULL`. Otherwise creates a true item with `JCreateTrue()`, attempts `_add_item_to_object(object, name, true_item, false)`, and returns the created item on successful attach. If attach fails, it calls `JDelete(true_item)` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `name` is duplicated by `_add_item_to_object` because this helper uses the non-constant-key path. +- Error/null/empty behavior: null object, allocation failure, null name, key duplication failure, or array/object attach failure returns `NULL`. +- Ownership and lifetime: on success, the object owns the newly-created child and duplicated key; on failure, the temporary child is deleted before return. +- Concurrency/global state: no direct global state; allocation/free behavior is delegated through callees. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one item allocation, key duplication, and append traversal in `_add_item_to_object`. +- Security or parsing constraints: no parsing; does not validate the target object's type before mutating its child list. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:301` and the definition in `n_cjson.c:1911`. No production repository caller was found. `JAddBoolToObject` is a sibling API and does not delegate to this helper. + +## Role In Callers + +No repository caller role. Public convenience helper for downstream users that need to create and attach a true-valued object field in one call. + +## Tests Observed + +None. Exact focused test search found no direct `JAddTrueToObject` use. Adjacent boolean tests exercise `JAddBoolToObject`, which does not call this function. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1911:JAddTrueToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateTrue`, `_add_item_to_object`, and `JDelete`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md b/source-research/artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md new file mode 100644 index 00000000..4abccd50 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md @@ -0,0 +1,62 @@ +# `JAddFalseToObject` + +## Status + +Finalized. Source-inspected public create-and-add false-object helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1926` +- Declaration/interface: `n_cjson.h:302` +- Public/exported names: `JAddFalseToObject` +- Macro aliases/wrappers: none found +- Signature/API shape: `J *JAddFalseToObject(J * const object, const char * const name)` +- Visibility: public cJSON helper implemented in `n_cjson.c` +- Ownership/lifetime role: creates a new false item and transfers it into the object on success + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2312:JCreateFalse` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: allocator/free behavior occurs through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` when `object` is `NULL`. Otherwise creates a false item with `JCreateFalse()`, attempts `_add_item_to_object(object, name, false_item, false)`, and returns the created item on successful attach. If attach fails, it calls `JDelete(false_item)` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `name` is passed to `_add_item_to_object`; a null name causes attach failure and cleanup. +- Error/null/empty behavior: null object, allocation failure, null name, key duplication failure, or array/object attach failure returns `NULL`. +- Ownership and lifetime: on success, the object owns the newly-created child; on failure, the temporary child is deleted before return. +- Concurrency/global state: no direct global state; allocation/free behavior is delegated through callees. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one item allocation, optional key duplication, and append traversal in `_add_item_to_object`. +- Security or parsing constraints: no parsing; relies on object/list invariants maintained by the JSON tree helpers. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:302` and the definition in `n_cjson.c:1926`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public convenience helper for downstream users that need to create and attach a false-valued object field in one call. + +## Tests Observed + +None. Exact focused test search found no direct `JAddFalseToObject` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1926:JAddFalseToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateFalse`, `_add_item_to_object`, and `JDelete`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L194__jNew_Item.md b/source-research/artifacts/functions/n_cjson_c__L194__jNew_Item.md new file mode 100644 index 00000000..070c8467 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L194__jNew_Item.md @@ -0,0 +1,56 @@ +# `_jNew_Item` + +## Status + +Finalized. Source-inspected JSON node allocator/initializer. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:194` +- Declaration/interface: file-local `NOTE_C_STATIC` forward at `n_cjson.c:89` +- Signature/API shape: `J *_jNew_Item(void)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized +- External/system dependencies: `memset` +- Data/type/global dependencies: allocates through SDK allocator hook + +## Behavior + +Allocates `sizeof(J)` bytes through `_Malloc`. If allocation succeeds, zeroes the entire `J` structure with `memset`. Returns the allocated zeroed node or `NULL` on allocation failure. + +## Important Boundaries + +- Preconditions and assumptions: allocator hook must be installed for allocation to succeed. +- Error/null/empty behavior: allocation failure returns `NULL`. +- Ownership and lifetime: returns caller-owned `J` node; callers release it through `JDelete` or `_Free` paths. +- Concurrency/global state: allocation uses global allocator hook behind `_Malloc`. +- Portability/platform constraints: routes allocation through SDK hook. +- Performance shape: O(sizeof(J)). + +## Direct Call Sites + +Exact graph/source inspection found broad constructors and parser callers, including `JParseWithOpts`, `_parse_array`, `_parse_object`, `_create_reference`, typed JSON value creators, array/object creators, and `JDuplicate`. + +## Role In Callers + +In the active `JAddIntToObject` path, `JCreateInteger` uses `_jNew_Item` to allocate a zeroed JSON number node before assigning integer values. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:194:_jNew_Item` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_Malloc`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md b/source-research/artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md new file mode 100644 index 00000000..bb60cd21 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md @@ -0,0 +1,64 @@ +# `JAddBoolToObject` + +## Status + +Final. Behavior, declaration, direct call sites, ownership, error handling, and focused test usage have been inspected. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1950` +- Declaration/interface: `n_cjson.h:303` +- Public/exported names: `JAddBoolToObject` +- Macro aliases/wrappers: unverified +- Signature/API shape: `J *JAddBoolToObject(J * const object, const char * const name, const Jbool boolean)` +- Visibility: public cJSON helper +- Ownership/lifetime role: creates a boolean `J` child and transfers ownership to `object` on successful attachment; deletes the created child on attach failure + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:2321:JCreateBool` (calls, verified; creates `JTrue`/`JFalse`) +- `function:n_cjson.c:1835:_add_item_to_object` (calls, verified; attaches child under `name`) +- `function:n_cjson.c:209:JDelete` (calls on attach failure, verified) +- External/system dependencies: allocator through `JCreateBool` +- Data/type/global dependencies: none +- Artifact coverage: generated artifact exists + +## Behavior + +Adds a boolean field to an object. If `object == NULL`, returns `NULL` without allocating. Otherwise creates a boolean item with `JCreateBool(boolean)`, attempts to attach it with `_add_item_to_object(object, name, bool_item, false)`, returns the new item on success, and deletes the new item plus returns `NULL` on failure. + +## Important Boundaries + +- Preconditions and assumptions: `object` should be a valid object node for successful attachment; the helper itself only checks for `NULL` +- Error/null/empty behavior: `NULL` object returns `NULL`; allocation failure or attach failure returns `NULL`; `name` validation is delegated to `_add_item_to_object` +- Ownership and lifetime: caller owns the parent; on success the parent owns the new child, on failure this function frees the new child +- Concurrency/global state: no global state +- Portability/platform constraints: none beyond configured cJSON allocator hooks +- Performance shape: one allocation plus object-child insertion cost +- Security or parsing constraints: no parsing; object/key validity is delegated to lower-level object insertion + +## Direct Call Sites + +Verified direct production callers in `n_helpers.c`: request builders for delete/reset/start/align/sync flags at `496`, `562`, `1487`, `1843`, `1909`, `2003`, `2038`, `2045`, `2100`, and sync-status polling at `2347`. Test callers use it to construct boolean fields in `JGetBool`, `JGetType`, `NoteGetStatus`, and `NoteIsConnected` tests. + +## Role In Callers + +Convenience constructor/attacher for boolean request/response fields. Callers generally ignore its return value after constructing best-effort request JSON. + +## Tests Observed + +Focused evidence: + +- `test/src/JGetBool_test.cpp` verifies boolean fields added with this helper are read as booleans. +- `test/src/JGetType_test.cpp` verifies true and false fields are typed as `JTYPE_BOOL_TRUE` and `JTYPE_BOOL_FALSE`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1950:JAddBoolToObject` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test directly forces `JCreateBool` or `_add_item_to_object` failure through this helper; failure behavior is source-inspected. diff --git a/source-research/artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md b/source-research/artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md new file mode 100644 index 00000000..6f212843 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md @@ -0,0 +1,57 @@ +# `JAddNumberToObject` + +## Status + +Finalized. Source-inspected public numeric object-field helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1974` +- Declaration/interface: `n_cjson.h:304` +- Signature/API shape: `J *JAddNumberToObject(J * const object, const char * const name, const JNUMBER number)` +- Visibility: public cJSON/note-c JSON API +- Public/exported names: `JAddNumberToObject` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2330:JCreateNumber` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: object field ownership + +## Behavior + +Returns NULL for null object. Otherwise creates a number node, attempts to attach it to the object with a duplicated key, returns the new node on success, and deletes the node before returning NULL on failure. + +## Important Boundaries + +- Preconditions and assumptions: `name` is passed through to `_add_item_to_object`; null name follows that helper's failure path. +- Error/null/empty behavior: null object, allocation failure, or add failure returns NULL. +- Ownership and lifetime: on success object owns the number node; on failure this helper deletes it. +- Concurrency/global state: allocator/free behavior follows note-c hooks. +- Performance shape: object append plus allocation. +- Portability/platform constraints: number storage follows `JCreateNumber`. + +## Direct Call Sites + +Exact source search found callers in user-agent construction, helper APIs, and tests. + +## Role In Callers + +`NoteUserAgent` uses this helper for optional CPU numeric fields. + +## Tests Observed + +`JSON_number_handling_test.cpp`, `JGetInt_test.cpp`, `JGetNumber_test.cpp`, and `NoteUserAgent_test.cpp` exercise this helper indirectly. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1974:JAddNumberToObject` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md b/source-research/artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md new file mode 100644 index 00000000..7219f800 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md @@ -0,0 +1,68 @@ +# `JAddIntToObject` + +## Status + +Finalized. Source-inspected JSON integer field add wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:1989` +- Declaration/interface: `n_cjson.h:305` +- Signature/API shape: `J *JAddIntToObject(J * const object, const char * const name, const JINTEGER integer)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JAddIntToObject` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2349:JCreateInteger` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: mutates caller-provided JSON object through cJSON child list/key fields + +## Behavior + +Returns `NULL` immediately if `object` is `NULL`. Otherwise creates a JSON number node with `JCreateInteger(integer)`, attempts to attach it to `object` under `name` using `_add_item_to_object(..., false)`, and returns the new item on success. If attachment fails, it deletes the created item with `JDelete` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a mutable JSON object and field name; `name == NULL` causes `_add_item_to_object` failure and cleanup. +- Error/null/empty behavior: null object, allocation failure, null name, or attachment failure returns `NULL`. +- Ownership and lifetime: on success, ownership of the new item transfers to `object`; on failure, this wrapper cleans up the created item. +- Concurrency/global state: allocation/free uses SDK allocator hooks through lower JSON helpers. +- Portability/platform constraints: integer value is stored as both `JINTEGER` and `JNUMBER` by `JCreateInteger`. +- Performance shape: O(strlen(name) + number of existing object children). + +## Direct Call Sites + +Exact source search found production callers: + +- `n_request.c:62` adds an `"id"` field to generated error documents. +- `n_helpers.c:98` and `n_helpers.c:99` add auxiliary serial settings. +- `n_helpers.c:386` and `n_helpers.c:387` add `"offset"` and `"length"` for `NoteBinaryStoreReceive`. +- `n_helpers.c:644` and `n_helpers.c:646` add `"cobs"` and optional `"offset"` for `NoteBinaryStoreTransmit`. + +## Role In Callers + +In the active receive path, `NoteBinaryStoreReceive` uses `JAddIntToObject` to add request parameters to `card.binary.get` before dispatching `_noteTransactionShouldLock`. + +## Tests Observed + +Focused numeric evidence: + +- `test/src/JSON_number_handling_test.cpp:243` adds `JINTEGER_MAX` and verifies exact JSON printing. +- `test/src/JSON_number_handling_test.cpp:400` adds a Unix timestamp integer and verifies exact JSON printing in a single-precision-sensitive case. + +## Graph Links + +- Graph node id: `function:n_cjson.c:1989:JAddIntToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateInteger`, `_add_item_to_object`, and `JDelete`. +- Verified incoming edges from `NoteBinaryStoreReceive`, `NoteBinaryStoreTransmit`, `NoteAuxSerialFlowControl`, and `_errDoc`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md b/source-research/artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md new file mode 100644 index 00000000..16929c29 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md @@ -0,0 +1,58 @@ +# `JAddStringToObject` + +## Status + +Finalized. Source-inspected JSON string-field add wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2013` +- Declaration/interface: `n_cjson.h:306` +- Signature/API shape: `J *JAddStringToObject(J * const object, const char * const name, const char * const string)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JAddStringToObject` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2360:JCreateString` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates the target JSON object's child list through `_add_item_to_object` + +## Behavior + +Returns `NULL` if `object` or `string` is `NULL`. Otherwise creates an owned string node with `JCreateString(string)` and attempts to attach it to `object` under `name` through `_add_item_to_object(object, name, string_item, false)`. On successful attach, returns the new string item. On attach failure, deletes `string_item` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `object` must be a valid JSON object-like node; `name` is passed through to `_add_item_to_object`, where null names fail. +- Error/null/empty behavior: null object or string returns `NULL`; allocation/attach failure returns `NULL`. +- Ownership and lifetime: on success, ownership of the new string item transfers to the object; on failure, the temporary item is deleted. +- Concurrency/global state: no global state except allocator/free hooks reached through finalized callees. +- Performance shape: O(length of string + number of existing object children). + +## Direct Call Sites + +Exact source search found broad production fanout in high-level helpers (`n_helpers.c`), request/error construction (`n_request.c`), user-agent construction (`n_ua.c`), and the active binary transmit path for `"status"`. `NoteNewRequest` uses it to attach the `"req"` field. + +## Role In Callers + +`NoteNewRequest` depends on `JAddStringToObject` to populate the request object with `c_req`/`"req"` and the caller-provided request name. Higher-level helpers use it for request parameters and response/error fixture construction. + +## Tests Observed + +Focused tests such as `test/src/JGetString_test.cpp` and many helper tests create object string fields through `JAddStringToObject` and assert downstream retrieval/error behavior. `test/src/NoteAuxSerialFlowControl_test.cpp` includes a fake `NoteNewRequest` implementation that mirrors `JCreateObject` plus `JAddStringToObject`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2013:JAddStringToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateString`, `_add_item_to_object`, and `JDelete`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md b/source-research/artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md new file mode 100644 index 00000000..670e5745 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md @@ -0,0 +1,62 @@ +# `JAddRawToObject` + +## Status + +Finalized. Source-inspected public create-and-add raw-string object helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2028` +- Declaration/interface: `n_cjson.h:307` +- Public/exported names: `JAddRawToObject` +- Macro aliases/wrappers: none found +- Signature/API shape: `J *JAddRawToObject(J * const object, const char * const name, const char * const raw)` +- Visibility: public cJSON helper implemented in `n_cjson.c` +- Ownership/lifetime role: creates a raw JSON item and transfers it into the object on success + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2420:JCreateRaw` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: allocator/free hooks may be reached through callees +- Data/type/global dependencies: allocator/free behavior occurs through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` when `object` or `raw` is `NULL`. Otherwise creates a raw item with `JCreateRaw(raw)`, attempts `_add_item_to_object(object, name, raw_item, false)`, and returns the created item on successful attach. If attach fails, it calls `JDelete(raw_item)` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `raw` should be a NUL-terminated string; this wrapper does not validate that it contains well-formed JSON. +- Error/null/empty behavior: null object, null raw value, allocation failure, null name, key duplication failure, or attach failure returns `NULL`. +- Ownership and lifetime: on success, the object owns the new raw child, the duplicated key, and the raw node's duplicated `valuestring`; on failure, the temporary child is deleted. +- Concurrency/global state: no direct global state; allocation/free behavior is delegated through callees. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: duplicates `raw`, duplicates `name`, then appends to the object child list. +- Security or parsing constraints: raw string content bypasses JSON validation by design of `JCreateRaw`. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:307`, the definition in `n_cjson.c:2028`, and focused test references. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public convenience helper for downstream users that need to attach a raw-valued object field in one call. + +## Tests Observed + +Focused evidence in `test/src/JGetType_test.cpp` includes `JAddRawToObject` in the string-helper matrix and checks regular, empty, null `valuestring`, numeric-zero, and numeric-nonzero classification behavior through `JGetType`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2028:JAddRawToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateRaw`, `_add_item_to_object`, and `JDelete`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md b/source-research/artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md new file mode 100644 index 00000000..934711d7 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md @@ -0,0 +1,62 @@ +# `JAddObjectToObject` + +## Status + +Finalized. Source-inspected public create-and-add object helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2051` +- Declaration/interface: `n_cjson.h:308` +- Public/exported names: `JAddObjectToObject` +- Macro aliases/wrappers: none found +- Signature/API shape: `J *JAddObjectToObject(J * const object, const char * const name)` +- Visibility: public cJSON helper implemented in `n_cjson.c` +- Ownership/lifetime role: creates a new object item and transfers it into the parent object on success + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2450:JCreateObject` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: allocator/free hooks may be reached through callees +- Data/type/global dependencies: allocator/free behavior occurs through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` when `object` is `NULL`. Otherwise creates an object item with `JCreateObject()`, attempts `_add_item_to_object(object, name, object_item, false)`, and returns the created item on successful attach. If attach fails, it calls `JDelete(object_item)` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `name` is duplicated by `_add_item_to_object`; target `object` type is not validated. +- Error/null/empty behavior: null object, allocation failure, null name, key duplication failure, or attach failure returns `NULL`. +- Ownership and lifetime: on success, parent object owns the newly-created child and duplicated key; on failure after allocation, the temporary child is deleted. +- Concurrency/global state: no direct global state; allocation/free behavior is delegated through callees. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one object allocation, key duplication, and append traversal in `_add_item_to_object`. +- Security or parsing constraints: no duplicate-key check and no parent type validation. + +## Direct Call Sites + +Exact production source search found only the public declaration in `n_cjson.h:308` and the definition in `n_cjson.c:2051`. Focused test/support uses appear under `test/`. + +## Role In Callers + +No production repository caller role. Test/HITL support uses it to create a nested body object and then write fields into the returned child pointer. + +## Tests Observed + +Focused evidence in `test/src/JGetType_test.cpp:131` calls `JAddObjectToObject` and asserts `JGetType(json, field) == JTYPE_OBJECT`. HITL support in `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:1244` creates a `"body"` child and immediately writes into the returned object pointer. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2051:JAddObjectToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateObject`, `_add_item_to_object`, and `JDelete`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md b/source-research/artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md new file mode 100644 index 00000000..d3341114 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md @@ -0,0 +1,60 @@ +# `JAddArrayToObject` + +## Status + +Finalized. Source-inspected public JSON object array-field constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2074` +- Declaration/interface: `n_cjson.h:309` +- Signature/API shape: `J *JAddArrayToObject(J * const object, const char * const name)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JAddArrayToObject` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2434:JCreateArray` finalized + - `function:n_cjson.c:1835:_add_item_to_object` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: creates and attaches an owned `JArray` child +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns `NULL` when `object` is `NULL`. Otherwise creates a new array node with `JCreateArray`, attaches it to `object` under `name` using `_add_item_to_object(..., false)`, and returns the array on success. If attachment fails, deletes the array and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `name` must be non-null for attachment to succeed. +- Error/null/empty behavior: null object, allocation failure, null key, key duplication failure, or append failure returns `NULL`. +- Ownership and lifetime: on success, the object owns the returned array child; on failure, the temporary array is deleted. +- Concurrency/global state: allocation/free follows SDK allocator hook state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(strlen(name) + number of object children). +- Security or parsing constraints: no type validation for `object`. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers use it to create and attach an empty array field in one call. + +## Tests Observed + +`test/src/JGetType_test.cpp:134-137` exercises this wrapper and expects the field type to be `JTYPE_ARRAY`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2074:JAddArrayToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateArray`, `_add_item_to_object`, and `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md b/source-research/artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md new file mode 100644 index 00000000..980c178e --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md @@ -0,0 +1,71 @@ +# `JDetachItemViaPointer` + +## Status + +Finalized. Source-inspected public JSON child detachment primitive. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2089` +- Declaration/interface: `n_cjson.h:272` +- Signature/API shape: `J *JDetachItemViaPointer(J *parent, J * const item)` +- Visibility: public through `N_CJSON_PUBLIC`, whose export/calling-convention shape is configured in `n_cjson.h:134-144` +- Public/exported names: `JDetachItemViaPointer` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: mutates `J.child`, `J.prev`, and `J.next` links in an intrusive child/sibling list +- Artifact coverage: source, header declaration, direct callers, and focused test search inspected + +## Behavior + +Returns `NULL` when `parent` or `item` is `NULL`. Otherwise detaches `item` from its sibling list: + +- if `item->prev` exists, assigns `item->prev->next = item->next`; +- if `item->next` exists, assigns `item->next->prev = item->prev`; +- if `item` is `parent->child`, moves `parent->child` to `item->next`; +- clears `item->prev` and `item->next`; +- returns the detached `item`. + +The function does not free the item. Ownership of the detached subtree remains with the caller. + +## Important Boundaries + +- Preconditions and assumptions: `item`, when non-`NULL`, is assumed to belong to `parent` or at least have sibling links that are safe to mutate. +- Error/null/empty behavior: `NULL` parent or item returns `NULL`; a non-child unrelated item is not rejected. +- Ownership and lifetime: transfers the detached item to the caller without deleting it; deletion wrappers call `JDelete` on the returned pointer. +- Concurrency/global state: no global state or locking. +- Portability/platform constraints: public export macro is platform/config dependent via `N_CJSON_PUBLIC`. +- Performance shape: O(1) pointer rewiring. +- Security or parsing constraints: no membership validation; misuse with an unrelated or corrupted `item` can mutate arbitrary sibling links. + +## Direct Call Sites + +Exact source search found three production callers: + +- `n_cjson.c:2124` `JDetachItemFromArray` finds an array child by index with `_get_array_item`, then detaches it. +- `n_cjson.c:2143` `JDetachItemFromObject` finds an object child with `JGetObjectItem`, then detaches it. +- `n_cjson.c:2154` `JDetachItemFromObjectCaseSensitive` finds an object child with `JGetObjectItemCaseSensitive`, then detaches it. + +Deletion wrappers such as `JDeleteItemFromArray` indirectly free detached nodes by calling `JDelete(JDetachItemFromArray(...))`. + +## Role In Callers + +This is the shared low-level detach primitive for array and object removal APIs. Public wrappers perform lookup from the same parent before calling it, which avoids the missing membership check in normal API use. + +## Tests Observed + +Focused search found no direct tests for `JDetachItemViaPointer`, `JDetachItemFromArray`, or array deletion wrappers. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2089:JDetachItemViaPointer` +- Structured graph: `inventory/dependency-graph.json` +- Verified callers: `JDetachItemFromArray`, `JDetachItemFromObject`, `JDetachItemFromObjectCaseSensitive` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests for detach-link rewiring and unrelated-item misuse were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L209__JDelete.md b/source-research/artifacts/functions/n_cjson_c__L209__JDelete.md new file mode 100644 index 00000000..77e8bafd --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L209__JDelete.md @@ -0,0 +1,65 @@ +# `JDelete` + +## Status + +Finalized. Source-inspected recursive JSON node/tree/list cleanup routine. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:209` +- Declaration/interface: not found in `note.h`; public-style `N_CJSON_PUBLIC` definition used by SDK sources +- Signature/API shape: `void JDelete(J *item)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JDelete` +- Macro aliases/wrappers: `NoteDeleteResponse(rsp)` in `note.h:486` + +## Dependency Status + +- Project-local dependencies: + - Recursive self-call for child cleanup + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: frees node-owned strings and child lists according to item type flags + +## Behavior + +Walks a linked list of `J` items. For each item, saves `item->next`, recursively deletes `item->child` when the item is not a reference, frees `valuestring` when the item is not a reference, frees `string` when it is not marked `JStringIsConst`, frees the item itself, and advances to the saved next item. + +## Important Boundaries + +- Preconditions and assumptions: accepts `NULL` and treats it as an empty list; otherwise expects valid `J` list/tree links and ownership flags. +- Error/null/empty behavior: `NULL` input is a no-op. +- Ownership and lifetime: releases the full owned node/list/tree structure; borrowed/reference children or constant strings are not freed. +- Concurrency/global state: deallocation uses the SDK free hook behind `_Free`. +- Portability/platform constraints: relies on `JIsReference` and `JStringIsConst` flags to preserve borrowed data. +- Performance shape: O(number of linked/tree nodes), recursive by child depth. + +## Direct Call Sites + +Exact source search found broad production fanout: + +- Internal recursive child cleanup at `n_cjson.c:215`. +- JSON parse/print/create/add/replace/delete paths throughout `n_cjson.c`, including typed add wrappers such as `JAddIntToObject`. +- Request/response ownership cleanup in `n_request.c`. +- Binary and high-level helper response/request cleanup in `n_helpers.c`. +- Payload helper cleanup in `n_cjson_helpers.c`. +- Macro wrapper `NoteDeleteResponse(rsp)` in `note.h:486`. + +## Role In Callers + +In the active `JAddIntToObject` path, `JDelete(integer_item)` releases the newly created integer node if object attachment fails, preventing leaked JSON items. + +## Tests Observed + +None. No focused direct `JDelete` test was inspected in this slice. + +## Graph Links + +- Graph node id: `function:n_cjson.c:209:JDelete` +- Structured graph: `inventory/dependency-graph.json` +- Verified cleanup edge to `_Free` and recursive child cleanup semantics. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md b/source-research/artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md new file mode 100644 index 00000000..30988c74 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md @@ -0,0 +1,63 @@ +# `JDetachItemFromArray` + +## Status + +Finalized. Source-inspected public JSON array detach-by-index wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2115` +- Declaration/interface: `n_cjson.h:273` +- Signature/API shape: `J *JDetachItemFromArray(J *array, int which)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JDetachItemFromArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1681:_get_array_item` finalized + - `function:n_cjson.c:2089:JDetachItemViaPointer` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates parent/child/sibling links through `JDetachItemViaPointer` +- Artifact coverage: source, header declaration, direct callers, and focused tests inspected + +## Behavior + +Returns `NULL` when `array` is `NULL` or `which < 0`. Otherwise finds the indexed child with `_get_array_item` and passes that pointer to `JDetachItemViaPointer`. Missing/out-of-range indexes therefore return `NULL`. + +On success, the selected child is unlinked from the parent list and returned with `prev`/`next` cleared. The caller owns the detached item. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `array` has type `JArray`. +- Error/null/empty behavior: null array, negative index, empty array, out-of-range index, or missing child returns `NULL`. +- Ownership and lifetime: transfers ownership of the detached item to the caller; does not delete it. +- Concurrency/global state: no global state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(index) lookup plus O(1) detach. +- Security or parsing constraints: lookup from the same parent prevents normal API use from passing an unrelated item to `JDetachItemViaPointer`. + +## Direct Call Sites + +Exact source search found one production caller: + +- `n_cjson.c:2132` `JDeleteItemFromArray` detaches the indexed child and immediately deletes it with `JDelete`. + +## Role In Callers + +Provides the ownership-transfer half of the array remove API. `JDeleteItemFromArray` consumes the returned node; public callers may retain it. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2115:JDetachItemFromArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_get_array_item` and `JDetachItemViaPointer` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused detach tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md b/source-research/artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md new file mode 100644 index 00000000..1f15d413 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md @@ -0,0 +1,61 @@ +# `JDeleteItemFromArray` + +## Status + +Finalized. Source-inspected public JSON array delete-by-index wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2127` +- Declaration/interface: `n_cjson.h:274` +- Signature/API shape: `void JDeleteItemFromArray(J *array, int which)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JDeleteItemFromArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2115:JDetachItemFromArray` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: consumes detached `J` ownership through `JDelete` +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns immediately when `array` is `NULL`. Otherwise calls `JDelete(JDetachItemFromArray(array, which))`. Invalid indexes flow through `JDetachItemFromArray` as `NULL`, and `JDelete(NULL)` is a no-op. + +The API is void and exposes no success/failure status. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `array` has type `JArray`. +- Error/null/empty behavior: null array, missing item, or invalid index results in no deletion and no status. +- Ownership and lifetime: consumes and frees the detached node/tree when an item is found. +- Concurrency/global state: deallocation uses allocator hook state behind `JDelete`/`_Free`. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(index) lookup plus recursive delete cost for the removed subtree. +- Security or parsing constraints: no type validation. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers use it as the consuming/freeing variant of `JDetachItemFromArray`. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2127:JDeleteItemFromArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDetachItemFromArray` and `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md b/source-research/artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md new file mode 100644 index 00000000..2ad51954 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md @@ -0,0 +1,64 @@ +# `JDetachItemFromObject` + +## Status + +Finalized. Source-inspected public JSON object detach-by-key wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2135` +- Declaration/interface: `n_cjson.h:275` +- Signature/API shape: `J *JDetachItemFromObject(J *object, const char *string)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JDetachItemFromObject` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2089:JDetachItemViaPointer` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates object child/sibling links through `JDetachItemViaPointer` +- Artifact coverage: source, header declaration, direct callers, and focused tests inspected + +## Behavior + +Returns `NULL` when `object` is `NULL`. Otherwise performs a case-insensitive lookup with `JGetObjectItem(object, string)` and passes the result to `JDetachItemViaPointer`. A `NULL` key or missing key returns `NULL` through lookup/detach. + +On success, the matched child is unlinked from the object and returned with `prev`/`next` cleared. The caller owns the detached item. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `object` has type `JObject`. +- Error/null/empty behavior: null object/name or missing key returns `NULL`. +- Ownership and lifetime: transfers detached item ownership to the caller. +- Concurrency/global state: no global state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(number of children * key length) lookup plus O(1) detach. +- Security or parsing constraints: normal wrapper use finds the child from the same parent before detaching. + +## Direct Call Sites + +Exact source search found production callers: + +- `n_cjson.c:2162` `JDeleteItemFromObject` deletes the detached item. +- `n_helpers.c:2146` detaches `"body"` from a response object in helper response handling. + +## Role In Callers + +Provides the ownership-transfer half of object key removal and supports callers that need to keep or reparent a detached subtree. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2135:JDetachItemFromObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JGetObjectItem` and `JDetachItemViaPointer` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md b/source-research/artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md new file mode 100644 index 00000000..0a6c7407 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md @@ -0,0 +1,63 @@ +# `JDetachItemFromObjectCaseSensitive` + +## Status + +Finalized. Source-inspected public case-sensitive JSON object detach-by-key wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2146` +- Declaration/interface: `n_cjson.h:276` +- Signature/API shape: `J *JDetachItemFromObjectCaseSensitive(J *object, const char *string)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JDetachItemFromObjectCaseSensitive` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1740:JGetObjectItemCaseSensitive` finalized + - `function:n_cjson.c:2089:JDetachItemViaPointer` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates object child/sibling links through `JDetachItemViaPointer` +- Artifact coverage: source, header declaration, direct callers, and focused tests inspected + +## Behavior + +Returns `NULL` when `object` is `NULL`. Otherwise performs a case-sensitive lookup with `JGetObjectItemCaseSensitive(object, string)` and passes the result to `JDetachItemViaPointer`. Null or missing keys result in `NULL`. + +On success, the matched child is unlinked from the object and returned with `prev`/`next` cleared. The caller owns the detached item. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `object` has type `JObject`. +- Error/null/empty behavior: null object/name or missing key returns `NULL`. +- Ownership and lifetime: transfers detached item ownership to the caller. +- Concurrency/global state: no global state. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(number of children * key length) lookup plus O(1) detach. +- Security or parsing constraints: normal wrapper use finds the child from the same parent before detaching. + +## Direct Call Sites + +Exact source search found one production caller: + +- `n_cjson.c:2170` `JDeleteItemFromObjectCaseSensitive` deletes the detached item. + +## Role In Callers + +Provides the case-sensitive ownership-transfer half of object key removal. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JGetObjectItemCaseSensitive` and `JDetachItemViaPointer` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md b/source-research/artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md new file mode 100644 index 00000000..8f38b5d8 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md @@ -0,0 +1,61 @@ +# `JDeleteItemFromObject` + +## Status + +Finalized. Source-inspected public JSON object delete-by-key wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2157` +- Declaration/interface: `n_cjson.h:277` +- Signature/API shape: `void JDeleteItemFromObject(J *object, const char *string)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JDeleteItemFromObject` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2135:JDetachItemFromObject` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: consumes detached `J` ownership through `JDelete` +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns immediately when `object` is `NULL`. Otherwise calls `JDelete(JDetachItemFromObject(object, string))`. Null or missing keys flow to `JDelete(NULL)`, which is a no-op. + +The API is void and exposes no success/failure status. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `object` has type `JObject`. +- Error/null/empty behavior: null object/name or missing key results in no deletion and no status. +- Ownership and lifetime: consumes and frees the detached node/tree when a matching child is found. +- Concurrency/global state: deallocation uses allocator hook state behind `JDelete`/`_Free`. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: lookup cost plus recursive delete cost for the removed subtree. +- Security or parsing constraints: no type validation. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers use it as the consuming/freeing variant of `JDetachItemFromObject`. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2157:JDeleteItemFromObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDetachItemFromObject` and `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md b/source-research/artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md new file mode 100644 index 00000000..d3b0c782 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md @@ -0,0 +1,61 @@ +# `JDeleteItemFromObjectCaseSensitive` + +## Status + +Finalized. Source-inspected public case-sensitive JSON object delete-by-key wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2165` +- Declaration/interface: `n_cjson.h:278` +- Signature/API shape: `void JDeleteItemFromObjectCaseSensitive(J *object, const char *string)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JDeleteItemFromObjectCaseSensitive` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: consumes detached `J` ownership through `JDelete` +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns immediately when `object` is `NULL`. Otherwise calls `JDelete(JDetachItemFromObjectCaseSensitive(object, string))`. Null or missing keys flow to `JDelete(NULL)`, which is a no-op. + +The API is void and exposes no success/failure status. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `object` has type `JObject`. +- Error/null/empty behavior: null object/name or missing key results in no deletion and no status. +- Ownership and lifetime: consumes and frees the detached node/tree when a matching child is found. +- Concurrency/global state: deallocation uses allocator hook state behind `JDelete`/`_Free`. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: lookup cost plus recursive delete cost for the removed subtree. +- Security or parsing constraints: no type validation. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers use it as the consuming/freeing variant of `JDetachItemFromObjectCaseSensitive`. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2165:JDeleteItemFromObjectCaseSensitive` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDetachItemFromObjectCaseSensitive` and `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md b/source-research/artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md new file mode 100644 index 00000000..f09a4881 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md @@ -0,0 +1,64 @@ +# `JInsertItemInArray` + +## Status + +Finalized. Source-inspected public JSON array insertion wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2174` +- Declaration/interface: `n_cjson.h:281` +- Signature/API shape: `void JInsertItemInArray(J *array, int which, J *newitem)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JInsertItemInArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1681:_get_array_item` finalized + - `function:n_cjson.c:1783:_add_item_to_array` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates `J.child`, `J.prev`, and `J.next` links +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Deletes `newitem` and returns when `array` or `newitem` is `NULL`, or when `which < 0`. Otherwise finds the indexed child with `_get_array_item`. + +If no child exists at that index, attempts to append `newitem` with `_add_item_to_array`; if append fails, deletes `newitem`. If a child exists, inserts `newitem` before that child by wiring `newitem->next`, `newitem->prev`, the found child's `prev`, and either `array->child` or the previous sibling's `next`. + +The API is void and exposes no success/failure status. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `array` has type `JArray`; assumes `newitem` can safely be linked. +- Error/null/empty behavior: invalid parent/item/index consumes `newitem` when non-null; out-of-range index appends. +- Ownership and lifetime: on success, parent takes ownership/list membership of `newitem`; on invalid/failure paths, `newitem` is deleted. +- Concurrency/global state: deallocation uses allocator hook state behind `JDelete`/`_Free`. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(index) lookup, or O(children) append when index is out of range. +- Security or parsing constraints: no type validation and no guard that `newitem` is detached before insertion. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers can insert before an existing index or append when the index is beyond the current list. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2174:JInsertItemInArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDelete`, `_get_array_item`, and `_add_item_to_array` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md b/source-research/artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md new file mode 100644 index 00000000..a8ebc44f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md @@ -0,0 +1,63 @@ +# `JReplaceItemViaPointer` + +## Status + +Finalized. Source-inspected public JSON replacement primitive by child pointer. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2206` +- Declaration/interface: `n_cjson.h:282` +- Signature/API shape: `Jbool JReplaceItemViaPointer(J * const parent, J * const item, J *replacement)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JReplaceItemViaPointer` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates `J.child`, `J.prev`, and `J.next` links +- Artifact coverage: source, header declaration, direct callers, and focused tests inspected + +## Behavior + +Returns `false` when `parent`, `item`, or `replacement` is `NULL`, without freeing `replacement`. If `replacement == item`, returns `true` as a no-op. + +Otherwise copies the replaced item's sibling links to `replacement`, updates adjacent siblings to point at `replacement`, updates `parent->child` when replacing the first child, clears the old item's `next`/`prev`, deletes the old item with `JDelete`, and returns `true`. + +## Important Boundaries + +- Preconditions and assumptions: assumes `item` belongs to `parent` or at least has sibling links safe to mutate. +- Error/null/empty behavior: null inputs return `false`; replacement ownership remains with the caller on `false`. +- Ownership and lifetime: on success, parent takes ownership/list membership of `replacement` and the replaced item is deleted; on `replacement == item`, ownership is unchanged. +- Concurrency/global state: deallocation uses allocator hook state behind `JDelete`/`_Free`. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(1) pointer rewiring plus recursive delete cost for the old subtree. +- Security or parsing constraints: no membership validation; misuse with unrelated/corrupted links can mutate arbitrary sibling links. + +## Direct Call Sites + +Exact source search found production callers: + +- `n_cjson.c:2248` `JReplaceItemInArray` replaces the child at an array index. +- `n_cjson.c:2276` `_replace_item_in_object` replaces an object child after key lookup and replacement-key preparation. + +## Role In Callers + +This is the shared low-level replace primitive for array and object replace APIs. Higher wrappers provide lookup and failure cleanup for `replacement`. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2206:JReplaceItemViaPointer` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Focused replacement tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md b/source-research/artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md new file mode 100644 index 00000000..7dc6c45f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md @@ -0,0 +1,64 @@ +# `JReplaceItemInArray` + +## Status + +Finalized. Source-inspected public JSON array replace-by-index wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2236` +- Declaration/interface: `n_cjson.h:283` +- Signature/API shape: `void JReplaceItemInArray(J *array, int which, J *newitem)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JReplaceItemInArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1681:_get_array_item` finalized + - `function:n_cjson.c:2206:JReplaceItemViaPointer` finalized +- External/system dependencies: none +- Data/type/global dependencies: mutates parent/child/sibling links through `JReplaceItemViaPointer` +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Deletes `newitem` and returns when `array` or `newitem` is `NULL`, or when `which < 0`. Otherwise finds the indexed child with `_get_array_item` and attempts replacement with `JReplaceItemViaPointer`. If replacement fails, deletes `newitem`. + +Out-of-range indexes therefore consume/delete `newitem`, because `_get_array_item` returns `NULL` and `JReplaceItemViaPointer` returns `false`. + +The API is void and exposes no success/failure status. + +## Important Boundaries + +- Preconditions and assumptions: does not validate that `array` has type `JArray`. +- Error/null/empty behavior: null parent/item, negative index, or out-of-range index deletes `newitem` when non-null and returns no status. +- Ownership and lifetime: on success, parent takes ownership/list membership of `newitem` and old item is deleted; on failure, `newitem` is deleted. +- Concurrency/global state: deallocation uses allocator hook state behind `JDelete`/`_Free`. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(index) lookup plus O(1) pointer replacement and old-subtree delete cost. +- Security or parsing constraints: no type validation. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers use it as the consuming array replacement API. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2236:JReplaceItemInArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_get_array_item`, `JReplaceItemViaPointer`, and `JDelete` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md b/source-research/artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md new file mode 100644 index 00000000..f5899473 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md @@ -0,0 +1,68 @@ +# `_replace_item_in_object` + +## Status + +Finalized. Source-inspected JSON object replacement helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2253` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _replace_item_in_object(J *object, const char *string, J *replacement, Jbool case_sensitive)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none +- Macro aliases/wrappers: public wrappers `JReplaceItemInObject` and `JReplaceItemInObjectCaseSensitive` +- Ownership/lifetime role: prepares replacement key ownership and delegates child replacement + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1710:_get_object_item` finalized + - `function:n_cjson.c:146:_j_strdup` finalized + - `macro:n_lib.h:242:_Free` finalized + - `function:n_cjson.c:2206:JReplaceItemViaPointer` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: mutates `replacement->string`, `replacement->type`, and object child links through `JReplaceItemViaPointer` +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `false` when `object`, `replacement`, or `string` is `NULL`, when `_get_object_item(object, string, case_sensitive)` finds no existing child, or when duplicating `string` with `_j_strdup` fails. + +On success, duplicates `string`, releases any existing non-constant `replacement->string`, installs the duplicated key on `replacement`, clears `JStringIsConst` on the replacement type, and calls `JReplaceItemViaPointer(object, existing, replacement)`. It returns `true` after that call. + +## Important Boundaries + +- Preconditions and assumptions: assumes the found child belongs to `object`; no object type check is performed beyond child lookup. +- Error/null/empty behavior: false return leaves `replacement` ownership with the caller; public wrappers delete it on false. +- Ownership and lifetime: successful replacement transfers `replacement` into `object`; the replaced child is deleted by `JReplaceItemViaPointer`. The replacement key becomes allocator-owned and non-constant even when the replacement previously used `JStringIsConst`. +- Concurrency/global state: allocation/deallocation routes through the SDK allocator hooks. +- Portability/platform constraints: uses SDK `_j_strdup`/`_Free` instead of direct libc allocation. +- Performance shape: O(number of object children * key length) for lookup plus O(key length) duplication and O(1) link replacement. +- Security or parsing constraints: replacement relies on `JReplaceItemViaPointer` membership assumptions after lookup; malformed object child links can still affect pointer rewiring. + +## Direct Call Sites + +Exact source search found direct callers: + +- `n_cjson.c:2287` `JReplaceItemInObject` calls with `case_sensitive=false`. +- `n_cjson.c:2298` `JReplaceItemInObjectCaseSensitive` calls with `case_sensitive=true`. + +## Role In Callers + +This helper centralizes object-key lookup, key ownership rewrite, and pointer replacement for both public object replacement APIs. It deliberately returns a status instead of deleting `replacement`; cleanup policy lives in the public wrappers. + +## Tests Observed + +None. `rg -n "JReplaceItemInObject|JReplaceItemInObjectCaseSensitive|JReplaceItemViaPointer|ReplaceItem" test/src` found no focused replacement tests. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2253:_replace_item_in_object` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_get_object_item`, `_j_strdup`, `_Free`, and `JReplaceItemViaPointer`. + +## Evidence Gaps + +No unresolved source gaps for this node. Focused replacement tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md b/source-research/artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md new file mode 100644 index 00000000..f2294f82 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md @@ -0,0 +1,61 @@ +# `JReplaceItemInObject` + +## Status + +Finalized. Source-inspected public case-insensitive JSON object replacement wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2281` +- Declaration/interface: `n_cjson.h:284` +- Signature/API shape: `void JReplaceItemInObject(J *object, const char *string, J *newitem)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JReplaceItemInObject` +- Macro aliases/wrappers: none +- Ownership/lifetime role: public cleanup/transfer wrapper around `_replace_item_in_object` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:2253:_replace_item_in_object` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: mutates object children through `_replace_item_in_object` +- Artifact coverage: generated artifact exists + +## Behavior + +Deletes `newitem` and returns when `object` or `newitem` is `NULL`. Otherwise calls `_replace_item_in_object(object, string, newitem, false)` for case-insensitive key lookup. If replacement fails, deletes `newitem`; on success, ownership transfers into `object`. + +## Important Boundaries + +- Preconditions and assumptions: `object` is expected to be an object-like `J`; no type check is performed. +- Error/null/empty behavior: null `string`, missing target key, allocation failure, or helper failure consume/delete `newitem`. +- Ownership and lifetime: caller gives `newitem` to this API unconditionally; it is either installed into `object` or deleted. +- Concurrency/global state: cleanup and key allocation use allocator hooks through callees. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(number of object children * key length) plus replacement subtree delete cost. +- Security or parsing constraints: lookup is case-insensitive; duplicate keys that differ only by case resolve to the first matching child. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `n_cjson.h:284`. + +## Role In Callers + +This is the public case-insensitive object replacement API. It supplies the caller-facing ownership contract around the private helper. + +## Tests Observed + +None. `rg -n "JReplaceItemInObject|JReplaceItemInObjectCaseSensitive|JReplaceItemViaPointer|ReplaceItem" test/src` found no focused replacement tests. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2281:JReplaceItemInObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDelete` and `_replace_item_in_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. Focused replacement tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md b/source-research/artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md new file mode 100644 index 00000000..ce9e57ec --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md @@ -0,0 +1,61 @@ +# `JReplaceItemInObjectCaseSensitive` + +## Status + +Finalized. Source-inspected public case-sensitive JSON object replacement wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2292` +- Declaration/interface: `n_cjson.h:285` +- Signature/API shape: `void JReplaceItemInObjectCaseSensitive(J *object, const char *string, J *newitem)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JReplaceItemInObjectCaseSensitive` +- Macro aliases/wrappers: none +- Ownership/lifetime role: public cleanup/transfer wrapper around `_replace_item_in_object` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:2253:_replace_item_in_object` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: mutates object children through `_replace_item_in_object` +- Artifact coverage: generated artifact exists + +## Behavior + +Deletes `newitem` and returns when `object` or `newitem` is `NULL`. Otherwise calls `_replace_item_in_object(object, string, newitem, true)` for case-sensitive key lookup. If replacement fails, deletes `newitem`; on success, ownership transfers into `object`. + +## Important Boundaries + +- Preconditions and assumptions: `object` is expected to be an object-like `J`; no type check is performed. +- Error/null/empty behavior: null `string`, exact-key miss, allocation failure, or helper failure consume/delete `newitem`. +- Ownership and lifetime: caller gives `newitem` to this API unconditionally; it is either installed into `object` or deleted. +- Concurrency/global state: cleanup and key allocation use allocator hooks through callees. +- Portability/platform constraints: public export macro is platform/config dependent. +- Performance shape: O(number of object children * key length) plus replacement subtree delete cost. +- Security or parsing constraints: lookup is exact-case `strcmp` through `_get_object_item`; duplicate exact keys resolve to the first matching child. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `n_cjson.h:285`. + +## Role In Callers + +This is the public case-sensitive object replacement API. It supplies the caller-facing ownership contract around the private helper. + +## Tests Observed + +None. `rg -n "JReplaceItemInObject|JReplaceItemInObjectCaseSensitive|JReplaceItemViaPointer|ReplaceItem" test/src` found no focused replacement tests. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2292:JReplaceItemInObjectCaseSensitive` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JDelete` and `_replace_item_in_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. Focused replacement tests were not found. diff --git a/source-research/artifacts/functions/n_cjson_c__L229__get_decimal_point.md b/source-research/artifacts/functions/n_cjson_c__L229__get_decimal_point.md new file mode 100644 index 00000000..479d1c54 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L229__get_decimal_point.md @@ -0,0 +1,53 @@ +# `_get_decimal_point` + +## Status + +Finalized. Source-inspected decimal separator helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:229` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `unsigned char _get_decimal_point(void)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `localeconv` only when `ENABLE_LOCALES` is defined +- Data/type/global dependencies: locale state only in locale-enabled builds + +## Behavior + +Returns the current locale decimal separator when `ENABLE_LOCALES` is defined, using `localeconv()->decimal_point[0]`. Otherwise returns `'.'`. + +## Important Boundaries + +- Preconditions and assumptions: locale-enabled builds assume `localeconv()` returns a valid decimal point string. +- Error/null/empty behavior: no error channel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: locale-enabled variant reads process locale state. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found callers in `_parse_number` and `_print_number`. + +## Role In Callers + +Number parse/print helpers normalize between locale decimal separators and JSON's required `.` separator. + +## Tests Observed + +Focused JSON number handling tests exercise number printing through `_print_number`; no locale-specific test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:229:_get_decimal_point` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2303__JCreateTrue.md b/source-research/artifacts/functions/n_cjson_c__L2303__JCreateTrue.md new file mode 100644 index 00000000..e98ce6ba --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2303__JCreateTrue.md @@ -0,0 +1,59 @@ +# `JCreateTrue` + +## Status + +Finalized. Source-inspected simple JSON true constructor and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2303` +- Declaration/interface: `n_cjson.h:235` +- Public/exported names: `JCreateTrue` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `J *JCreateTrue(void)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: returns newly allocated JSON node owned by caller + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:194:_jNew_Item` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `item->type = JTrue` +- Artifact coverage: source, declaration, direct caller, and focused-test search inspected + +## Behavior + +Allocates a zeroed `J` with `_jNew_Item`; if allocation succeeds, sets `type = JTrue`; returns the new item or `NULL` on allocation failure. + +## Important Boundaries + +- Preconditions and assumptions: allocator hook must be configured for allocation to succeed. +- Error/null/empty behavior: allocation failure returns `NULL`. +- Ownership and lifetime: caller owns the returned node and must attach or delete it. +- Concurrency/global state: allocation uses SDK allocator hook through `_jNew_Item`. +- Portability/platform constraints: none beyond allocator hook behavior. +- Performance shape: O(1). +- Security or parsing constraints: no parsing. + +## Direct Call Sites + +Exact production caller: `n_cjson.c:1917` `JAddTrueToObject`. + +## Role In Callers + +Creates the child item that `JAddTrueToObject` attaches to an object or deletes on attach failure. + +## Tests Observed + +No direct focused test for `JCreateTrue` was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2303:JCreateTrue` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2312__JCreateFalse.md b/source-research/artifacts/functions/n_cjson_c__L2312__JCreateFalse.md new file mode 100644 index 00000000..62d09cb8 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2312__JCreateFalse.md @@ -0,0 +1,59 @@ +# `JCreateFalse` + +## Status + +Finalized. Source-inspected simple JSON false constructor and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2312` +- Declaration/interface: `n_cjson.h:236` +- Public/exported names: `JCreateFalse` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `J *JCreateFalse(void)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: returns newly allocated JSON node owned by caller + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:194:_jNew_Item` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `item->type = JFalse` +- Artifact coverage: source, declaration, direct caller, and focused-test search inspected + +## Behavior + +Allocates a zeroed `J` with `_jNew_Item`; if allocation succeeds, sets `type = JFalse`; returns the new item or `NULL` on allocation failure. + +## Important Boundaries + +- Preconditions and assumptions: allocator hook must be configured for allocation to succeed. +- Error/null/empty behavior: allocation failure returns `NULL`. +- Ownership and lifetime: caller owns the returned node and must attach or delete it. +- Concurrency/global state: allocation uses SDK allocator hook through `_jNew_Item`. +- Portability/platform constraints: none beyond allocator hook behavior. +- Performance shape: O(1). +- Security or parsing constraints: no parsing. + +## Direct Call Sites + +Exact production caller: `n_cjson.c:1932` `JAddFalseToObject`. + +## Role In Callers + +Creates the child item that `JAddFalseToObject` attaches to an object or deletes on attach failure. + +## Tests Observed + +No direct focused test for `JCreateFalse` was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2312:JCreateFalse` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2321__JCreateBool.md b/source-research/artifacts/functions/n_cjson_c__L2321__JCreateBool.md new file mode 100644 index 00000000..49feb648 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2321__JCreateBool.md @@ -0,0 +1,62 @@ +# `JCreateBool` + +## Status + +Final. Behavior, declaration, allocation/null behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2321` +- Declaration/interface: `n_cjson.h:237` +- Public/exported names: `JCreateBool` +- Macro aliases/wrappers: unverified +- Signature/API shape: `J *JCreateBool(Jbool b)` +- Visibility: public cJSON constructor +- Ownership/lifetime role: returns a newly allocated boolean node owned by the caller until attached or deleted + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:194:_jNew_Item` (calls, verified; allocates and zeroes a `J` node) +- External/system dependencies: configured cJSON allocator through `_jNew_Item` +- Data/type/global dependencies: none +- Artifact coverage: generated artifact exists + +## Behavior + +Allocates a new `J` item and sets its type to `JTrue` when `b` is true or `JFalse` when `b` is false. If allocation fails, returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: allocator hooks must be configured for allocation to succeed +- Error/null/empty behavior: allocation failure returns `NULL` +- Ownership and lifetime: caller owns the returned node and must attach it to a parent or delete it +- Concurrency/global state: no global state beyond allocator hooks used by `_jNew_Item` +- Portability/platform constraints: none +- Performance shape: one allocation and one type assignment +- Security or parsing constraints: no parsing or external input handling + +## Direct Call Sites + +Verified direct production caller: `n_cjson.c:1956` in `JAddBoolToObject`. Focused tests call it in `test/src/JType_test.cpp` and `test/src/JBoolValue_test.cpp`. + +## Role In Callers + +Boolean-node constructor used directly by tests and by object field creation. + +## Tests Observed + +Focused evidence: + +- `test/src/JType_test.cpp` includes both `JCreateBool(true)` and `JCreateBool(false)` in type-name coverage. +- `test/src/JBoolValue_test.cpp` verifies false and true boolean nodes read back through `JBoolValue`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2321:JCreateBool` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test forces allocation failure; null behavior is source-inspected through `_jNew_Item` return handling. diff --git a/source-research/artifacts/functions/n_cjson_c__L2330__JCreateNumber.md b/source-research/artifacts/functions/n_cjson_c__L2330__JCreateNumber.md new file mode 100644 index 00000000..fc607e91 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2330__JCreateNumber.md @@ -0,0 +1,55 @@ +# `JCreateNumber` + +## Status + +Finalized. Source-inspected JSON number node constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2330` +- Declaration/interface: `n_cjson.h:289` +- Signature/API shape: `J *JCreateNumber(JNUMBER num)` +- Visibility: public cJSON/note-c JSON API +- Public/exported names: `JCreateNumber` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized +- External/system dependencies: none +- Data/type/global dependencies: `JNumber`, `JINTEGER_MIN`, `JINTEGER_MAX` + +## Behavior + +Allocates a new `J`, sets type to `JNumber`, stores `valuenumber`, and saturates `valueint` to integer min/max when the number is outside the `JINTEGER` range. Otherwise casts the numeric value to `JINTEGER`. Returns NULL on allocation failure. + +## Important Boundaries + +- Preconditions and assumptions: numeric conversion follows C casts for in-range values. +- Error/null/empty behavior: allocation failure returns NULL. +- Ownership and lifetime: caller owns the returned node. +- Concurrency/global state: allocator behavior follows note-c hooks through `_jNew_Item`. +- Performance shape: O(1). +- Portability/platform constraints: precision and range follow `JNUMBER` and `JINTEGER`. + +## Direct Call Sites + +Exact source search found direct callers including `JAddNumberToObject` and number array helpers. + +## Role In Callers + +`JAddNumberToObject` uses this constructor before transferring the number node into an object field. + +## Tests Observed + +`JSON_number_handling_test.cpp` exercises this through `JAddNumberToObject` and `JPrintUnformatted`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2330:JCreateNumber` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2349__JCreateInteger.md b/source-research/artifacts/functions/n_cjson_c__L2349__JCreateInteger.md new file mode 100644 index 00000000..1d94e118 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2349__JCreateInteger.md @@ -0,0 +1,60 @@ +# `JCreateInteger` + +## Status + +Finalized. Source-inspected JSON integer number-node constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2349` +- Declaration/interface: not found in `note.h`; public-style `N_CJSON_PUBLIC` definition used by SDK sources +- Signature/API shape: `J *JCreateInteger(JINTEGER integer)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JCreateInteger` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: allocates a `J` node through `_jNew_Item` + +## Behavior + +Allocates a zeroed `J` item through `_jNew_Item`. If allocation succeeds, sets `type` to `JNumber`, stores the integer converted to `JNUMBER` in `valuenumber`, and stores the original integer in `valueint`. Returns the initialized item or `NULL` on allocation failure. + +## Important Boundaries + +- Preconditions and assumptions: allocator hook must be installed for allocation to succeed. +- Error/null/empty behavior: allocation failure returns `NULL`. +- Ownership and lifetime: returns caller-owned JSON node; caller must attach it to an owning parent or delete it. +- Concurrency/global state: allocation uses global allocator hook through `_jNew_Item`. +- Portability/platform constraints: numeric value is represented in both `JNUMBER` and `JINTEGER` fields; conversion to `JNUMBER` follows configured numeric type. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source/graph inspection found the active production caller: + +- `n_cjson.c:1995` from `JAddIntToObject`. + +## Role In Callers + +`JAddIntToObject` uses `JCreateInteger` to allocate the numeric child before attempting object attachment. If attachment fails, `JAddIntToObject` deletes the returned item. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2349:JCreateInteger` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_jNew_Item`. +- Verified incoming edge from `JAddIntToObject`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2360__JCreateString.md b/source-research/artifacts/functions/n_cjson_c__L2360__JCreateString.md new file mode 100644 index 00000000..7492c704 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2360__JCreateString.md @@ -0,0 +1,63 @@ +# `JCreateString` + +## Status + +Finalized. Source-inspected owned JSON string constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2360` +- Declaration/interface: `n_cjson.h:240` +- Signature/API shape: `J *JCreateString(const char *string)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JCreateString` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized + - `function:n_cjson.c:146:_j_strdup` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: writes `item->type` and `item->valuestring` + +## Behavior + +Allocates a new JSON node through `_jNew_Item`. If allocation succeeds, sets `type = JString`, duplicates the input string through `_j_strdup`, and stores the owned copy in `valuestring`. If string duplication fails, deletes the partially constructed node with `JDelete` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `string` is expected to be a valid NUL-terminated string; `_j_strdup` returns `NULL` for null input or allocation failure. +- Error/null/empty behavior: allocation failure or duplication failure returns `NULL`. +- Ownership and lifetime: returned node owns `valuestring`; `JDelete` frees it unless reference flags are later set externally. +- Concurrency/global state: allocation/free paths depend on finalized hook allocator behavior. +- Performance shape: O(length of string). + +## Direct Call Sites + +Exact source search found production callers: + +- `JAddStringToObject` at `n_cjson.c:2019`. +- `JCreateStringArray` at `n_cjson.c:2533`. + +Focused tests also construct string nodes for JSON value/type helpers. + +## Role In Callers + +`JAddStringToObject` uses `JCreateString` to create an owned string child before attaching it to an object. `JCreateStringArray` uses it for array elements. + +## Tests Observed + +Focused tests in `test/src/JStringValue_test.cpp`, `test/src/JType_test.cpp`, and related JSON helper tests exercise created string nodes and verify string/type behavior through public helper APIs. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2360:JCreateString` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_jNew_Item`, `_j_strdup`, and `JDelete`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md b/source-research/artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md new file mode 100644 index 00000000..b3dc97cc --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md @@ -0,0 +1,60 @@ +# `JCreateStringValue` + +## Status + +Finalized. Source-inspected adopted-pointer JSON string constructor and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2374` +- Declaration/interface: `n_cjson.h:248` +- Public/exported names: `JCreateStringValue` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `J *JCreateStringValue(const char *string)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: adopts caller-provided `valuestring` pointer into a JSON node + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:194:_jNew_Item` finalized +- `function:n_cjson.c:1826:_cast_away_const` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `item->type` and `item->valuestring` +- Artifact coverage: source, declaration, direct caller, ownership behavior, and focused tests inspected + +## Behavior + +Allocates a zeroed `J` with `_jNew_Item`; if allocation succeeds, sets `type = JString` and stores the input pointer in `valuestring` after `_cast_away_const`. It does not duplicate the string and does not set `JIsReference`. + +## Important Boundaries + +- Preconditions and assumptions: input pointer should be compatible with `JDelete` freeing it through `_Free`, unless ownership is changed before deletion. +- Error/null/empty behavior: allocation failure returns `NULL`; null input can produce a string node with null `valuestring`. +- Ownership and lifetime: returned node owns `valuestring` for deletion because `JIsReference` is not set. +- Concurrency/global state: allocation uses SDK allocator hook. +- Portability/platform constraints: uses `_cast_away_const` to store the pointer in mutable `valuestring`. +- Performance shape: O(1). +- Security or parsing constraints: no string validation or copy. + +## Direct Call Sites + +Exact production caller: `n_cjson_helpers.c:226` `JAddBinaryToObject`, passing a freshly `_Malloc`-allocated Base64 buffer. + +## Role In Callers + +Adopts the encoded binary string allocated by `JAddBinaryToObject` so the JSON node owns and frees that buffer. + +## Tests Observed + +`test/src/JAddBinaryToObject_test.cpp` fakes `JCreateStringValue` for success/failure paths; `test/src/JGetBinaryFromObject_test.cpp` reaches the real binary add/get path. No direct constructor test for null input or deletion ownership was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2374:JCreateStringValue` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. Note: the nearby header comment groups this with reference strings, but source shows this function is an adopted-pointer owned-value path; `JCreateStringReference` is the one that sets `JIsReference`. diff --git a/source-research/artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md b/source-research/artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md new file mode 100644 index 00000000..cf372726 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md @@ -0,0 +1,60 @@ +# `JCreateStringReference` + +## Status + +Finalized. Source-inspected borrowed-pointer JSON string reference constructor and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2384` +- Declaration/interface: `n_cjson.h:249` +- Public/exported names: `JCreateStringReference` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `J *JCreateStringReference(const char *string)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: stores borrowed `valuestring` pointer in a reference node + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:194:_jNew_Item` finalized +- `function:n_cjson.c:1826:_cast_away_const` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `item->type` and `item->valuestring` +- Artifact coverage: source, declaration, direct caller, ownership behavior, and focused-test search inspected + +## Behavior + +Allocates a zeroed `J` with `_jNew_Item`; if allocation succeeds, sets `type = JString | JIsReference` and stores the input pointer in `valuestring` after `_cast_away_const`. + +## Important Boundaries + +- Preconditions and assumptions: referenced string must outlive the JSON node's use. +- Error/null/empty behavior: allocation failure returns `NULL`; null input can produce a reference string node with null `valuestring`. +- Ownership and lifetime: returned node does not own `valuestring`; `JDelete` skips freeing it because `JIsReference` is set. +- Concurrency/global state: allocation uses SDK allocator hook. +- Portability/platform constraints: uses `_cast_away_const` to store the pointer in mutable `valuestring`. +- Performance shape: O(1). +- Security or parsing constraints: no string validation or copy. + +## Direct Call Sites + +Exact production caller: `n_helpers.c:1770` `NoteSleep`, avoiding a duplicate of the large sleep payload string before adding it to a `card.attn` command. + +## Role In Callers + +Lets `NoteSleep` attach a borrowed Base64 payload string without copying it. The request path consumes/deletes the JSON request before `NoteSleep` returns. + +## Tests Observed + +No direct focused test for this constructor or its deletion behavior was found. `NoteSleep_test.cpp` exercises success/failure paths but does not assert payload reference ownership. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2384:JCreateStringReference` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md b/source-research/artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md new file mode 100644 index 00000000..efefabbf --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md @@ -0,0 +1,61 @@ +# `JCreateObjectReference` + +## Status + +Finalized. Source-inspected public object reference wrapper constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2394` +- Declaration/interface: `n_cjson.h:252` +- Public/exported names: `JCreateObjectReference` +- Macro aliases/wrappers: none found +- Signature/API shape: `J *JCreateObjectReference(const J *child)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: allocates a wrapper object node that borrows an existing child chain + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized + - `function:n_cjson.c:1826:_cast_away_const` finalized +- External/system dependencies: allocator hook through `_jNew_Item` +- Data/type/global dependencies: writes `item->type` and `item->child` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` when `child` is `NULL`. Otherwise allocates a zeroed item with `_jNew_Item()`. On allocation success, sets `type = JObject | JIsReference`, stores `child` in `item->child` after `_cast_away_const`, and returns the wrapper. Allocation failure returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `child` must remain valid for as long as the wrapper is used. +- Error/null/empty behavior: null child or allocation failure returns `NULL`; no error state or reason code is set. +- Ownership and lifetime: returned wrapper owns only its allocated `J` node. `JIsReference` prevents `JDelete` from deleting the borrowed child chain. +- Concurrency/global state: no direct global state; allocation depends on the registered allocator hook through `_jNew_Item`. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: O(1) after allocation. +- Security or parsing constraints: removes constness from `child` in the stored pointer and does not validate that the child chain represents an object. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:252` and the definition in `n_cjson.c:2394`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public helper for downstream callers that need an object node referencing an existing child chain without transferring child ownership. + +## Tests Observed + +None. Focused test searches found no direct tests or fakes for `JCreateObjectReference`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2394:JCreateObjectReference` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_jNew_Item` and `_cast_away_const`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md b/source-research/artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md new file mode 100644 index 00000000..d5b7d92e --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md @@ -0,0 +1,61 @@ +# `JCreateArrayReference` + +## Status + +Finalized. Source-inspected public array reference wrapper constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2407` +- Declaration/interface: `n_cjson.h:253` +- Public/exported names: `JCreateArrayReference` +- Macro aliases/wrappers: none found +- Signature/API shape: `J *JCreateArrayReference(const J *child)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: allocates a wrapper array node that borrows an existing child chain + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized + - `function:n_cjson.c:1826:_cast_away_const` finalized +- External/system dependencies: allocator hook through `_jNew_Item` +- Data/type/global dependencies: writes `item->type` and `item->child` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` when `child` is `NULL`. Otherwise allocates a zeroed item with `_jNew_Item()`. On allocation success, sets `type = JArray | JIsReference`, stores `child` in `item->child` after `_cast_away_const`, and returns the wrapper. Allocation failure returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `child` must remain valid for as long as the wrapper is used. +- Error/null/empty behavior: null child or allocation failure returns `NULL`; no error state or reason code is set. +- Ownership and lifetime: returned wrapper owns only its allocated `J` node. `JIsReference` prevents `JDelete` from deleting the borrowed child chain. +- Concurrency/global state: no direct global state; allocation depends on the registered allocator hook through `_jNew_Item`. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: O(1) after allocation. +- Security or parsing constraints: removes constness from `child` in the stored pointer and does not validate that the child chain represents an array. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:253` and the definition in `n_cjson.c:2407`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public helper for downstream callers that need an array node referencing an existing child chain without transferring child ownership. + +## Tests Observed + +None. Focused test searches found no direct tests or fakes for `JCreateArrayReference`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2407:JCreateArrayReference` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_jNew_Item` and `_cast_away_const`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2420__JCreateRaw.md b/source-research/artifacts/functions/n_cjson_c__L2420__JCreateRaw.md new file mode 100644 index 00000000..755cabf1 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2420__JCreateRaw.md @@ -0,0 +1,61 @@ +# `JCreateRaw` + +## Status + +Finalized. Source-inspected owned raw-JSON string constructor and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2420` +- Declaration/interface: `n_cjson.h:242` +- Public/exported names: `JCreateRaw` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `J *JCreateRaw(const char *raw)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: returns node owning a duplicated raw JSON string + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:194:_jNew_Item` finalized +- `function:n_cjson.c:146:_j_strdup` finalized +- `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: writes `item->type` and `item->valuestring` +- Artifact coverage: source, declaration, direct caller, dependency artifacts, and tests inspected + +## Behavior + +Allocates a zeroed `J` with `_jNew_Item`; if allocation succeeds, sets `type = JRaw`, duplicates `raw` through `_j_strdup`, and stores the owned copy in `valuestring`. If duplication fails, deletes the partial node with `JDelete` and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: non-null `raw` should be NUL-terminated. +- Error/null/empty behavior: allocation failure, null raw input, or duplicate allocation failure returns `NULL`. +- Ownership and lifetime: returned node owns the duplicated `valuestring`; `JDelete` frees it. +- Concurrency/global state: allocation/free uses SDK allocator hook. +- Portability/platform constraints: allocator routed through SDK hooks. +- Performance shape: O(strlen(raw)). +- Security or parsing constraints: does not validate that `raw` is well-formed JSON. + +## Direct Call Sites + +Exact production caller: `n_cjson.c:2034` `JAddRawToObject`. + +## Role In Callers + +Creates the raw child that `JAddRawToObject` attaches to an object or deletes on attach failure. + +## Tests Observed + +`test/src/JType_test.cpp` constructs a raw node and expects `JType` to report it as `"string"`. No direct allocation-failure or raw-validation test was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2420:JCreateRaw` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2434__JCreateArray.md b/source-research/artifacts/functions/n_cjson_c__L2434__JCreateArray.md new file mode 100644 index 00000000..96c6f268 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2434__JCreateArray.md @@ -0,0 +1,70 @@ +# `JCreateArray` + +## Status + +Finalized. Source-inspected public JSON array constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2434` +- Declaration/interface: `n_cjson.h:243` +- Signature/API shape: `J *JCreateArray(void)` +- Visibility: public through `N_CJSON_PUBLIC`, whose export/calling-convention shape is configured in `n_cjson.h:134-144` +- Public/exported names: `JCreateArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: assigns the `J.type` field to `JArray`; allocation flows through `_jNew_Item` and allocator hook state behind `_Malloc` +- Artifact coverage: source, header declaration, direct callers, and focused tests inspected + +## Behavior + +Allocates a zeroed `J` node through `_jNew_Item`. If allocation succeeds, sets `item->type = JArray` and returns the new node. If allocation fails, returns `NULL`. + +Because `_jNew_Item` zeroes the structure, newly created arrays start with no child elements and no sibling links. + +## Important Boundaries + +- Preconditions and assumptions: allocator hook must allow `_jNew_Item` to allocate for success. +- Error/null/empty behavior: allocation failure returns `NULL`. +- Ownership and lifetime: returns a caller-owned array node; callers normally release it through `JDelete` or transfer it into another `J` container. +- Concurrency/global state: uses allocator hook state indirectly through `_jNew_Item`. +- Portability/platform constraints: public export macro is platform/config dependent via `N_CJSON_PUBLIC`. +- Performance shape: O(sizeof(J)) allocation and initialization. +- Security or parsing constraints: parsed arrays are created by parser internals, not by this constructor. + +## Direct Call Sites + +Exact source search found four production callers: + +- `n_cjson.c:2080` `JAddArrayToObject` creates an array, attaches it to an object, returns it on success, and deletes it on attach failure. +- `n_cjson.c:2471` `JCreateIntArray` creates an array before appending generated numeric children. +- `n_cjson.c:2500` `JCreateNumberArray` creates an array before appending generated numeric children. +- `n_cjson.c:2530` `JCreateStringArray` creates an array before appending generated string children. + +Header/source search also found focused test uses in `test/src/JType_test.cpp:38` and `test/src/JGetArray_test.cpp:28`. + +## Role In Callers + +This is the public empty-array constructor and the base allocation step for typed array builders and object array-field construction. It establishes the `JArray` type; child population and ownership transfer are handled by callers. + +## Tests Observed + +- `test/src/JType_test.cpp:30-48` includes `JCreateArray()` in a type-name table and expects `JType` to report `"array"`. +- `test/src/JGetArray_test.cpp:21-45` creates an array, attaches it to an object, and verifies valid retrieval through `JGetArray` along with null, missing, and wrong-type cases. +- `test/src/JGetType_test.cpp:134-137` exercises `JAddArrayToObject`, which depends on `JCreateArray`, and expects `JTYPE_ARRAY`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2434:JCreateArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge: `_jNew_Item` +- Verified callers: `JAddArrayToObject`, `JCreateIntArray`, `JCreateNumberArray`, `JCreateStringArray` + +## Evidence Gaps + +No unresolved source gaps for this node. Allocation-failure behavior is source-evident but no focused allocation-failure test was found for this constructor. diff --git a/source-research/artifacts/functions/n_cjson_c__L2450__JCreateObject.md b/source-research/artifacts/functions/n_cjson_c__L2450__JCreateObject.md new file mode 100644 index 00000000..c0c475f3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2450__JCreateObject.md @@ -0,0 +1,56 @@ +# `JCreateObject` + +## Status + +Finalized. Source-inspected JSON object constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2450` +- Declaration/interface: `n_cjson.h:244` +- Signature/API shape: `J *JCreateObject(void)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JCreateObject` +- Macro aliases/wrappers: `NoteNewBody` expands to `JCreateObject` at `note.h:322` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `item->type` + +## Behavior + +Allocates a zeroed JSON node through `_jNew_Item`. If allocation succeeds, sets `item->type = JObject` and returns the new node. If allocation fails, returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: allocator hooks must be configured for `_jNew_Item` to allocate. +- Error/null/empty behavior: allocation failure returns `NULL`. +- Ownership and lifetime: caller owns the returned `J` and releases it with `JDelete`. +- Concurrency/global state: allocation path depends on finalized hook allocator behavior. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found production callers in request/error construction (`n_request.c`), JSON object add wrappers (`n_cjson.c`), user-agent construction (`n_ua.c`), and the public `NoteNewBody` macro alias in `note.h`. + +## Role In Callers + +`NoteNewRequest` uses `JCreateObject` to allocate the request document before attaching the `"req"` field. Other request and helper paths use it to construct response, command, user-agent, body, and nested object nodes. + +## Tests Observed + +Focused tests use `JCreateObject` in many JSON/helper setup paths. `test/src/JType_test.cpp` verifies that an object created by `JCreateObject` reports the object type, and `test/src/NoteNewRequest_test.cpp` verifies caller behavior when `JCreateObject` succeeds or fails. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2450:JCreateObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_jNew_Item`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md b/source-research/artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md new file mode 100644 index 00000000..71e6febb --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md @@ -0,0 +1,63 @@ +# `JCreateIntArray` + +## Status + +Finalized. Source-inspected public integer-array constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2460` +- Declaration/interface: `n_cjson.h:256` +- Signature/API shape: `J *JCreateIntArray(const long int *numbers, int count)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JCreateIntArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2434:JCreateArray` finalized + - `function:n_cjson.c:2330:JCreateNumber` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1757:_suffix_object` finalized +- External/system dependencies: none +- Data/type/global dependencies: builds a child list under the returned array +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns `NULL` when `count < 0` or `numbers == NULL`. Otherwise creates an empty `JArray`, then for each input element creates a number node with `JCreateNumber(numbers[i])`. The first child is assigned to `a->child`; subsequent children are linked with `_suffix_object`. If any child allocation fails, deletes the partially built array and returns `NULL`. + +Despite the name, element nodes are created with `JCreateNumber`, not `JCreateInteger`. + +## Important Boundaries + +- Preconditions and assumptions: `numbers` points to at least `count` elements when count is positive. +- Error/null/empty behavior: invalid inputs return `NULL`; `count == 0` returns an empty array when allocation succeeds. +- Ownership and lifetime: caller owns the returned array/tree; partial builds are cleaned with `JDelete` on failure. +- Concurrency/global state: allocation/free follows SDK allocator hook state. +- Portability/platform constraints: integer values are converted through `JCreateNumber` and `JNUMBER` representation. +- Performance shape: O(count). +- Security or parsing constraints: no overflow guard on count-to-size_t cast after the negative check. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers can build an owned JSON array from C `long int` input values. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2460:JCreateIntArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateArray`, `JCreateNumber`, `JDelete`, and `_suffix_object` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md b/source-research/artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md new file mode 100644 index 00000000..b519dfcc --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md @@ -0,0 +1,61 @@ +# `JCreateNumberArray` + +## Status + +Finalized. Source-inspected public numeric-array constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2489` +- Declaration/interface: `n_cjson.h:257` +- Signature/API shape: `J *JCreateNumberArray(const JNUMBER *numbers, int count)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JCreateNumberArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2434:JCreateArray` finalized + - `function:n_cjson.c:2330:JCreateNumber` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1757:_suffix_object` finalized +- External/system dependencies: none +- Data/type/global dependencies: builds a child list under the returned array +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns `NULL` when `count < 0` or `numbers == NULL`. Otherwise creates an empty `JArray`, creates each element with `JCreateNumber(numbers[i])`, links the first child directly and later children with `_suffix_object`, and returns the array. If an element allocation fails, deletes the partially built array and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `numbers` points to at least `count` elements when count is positive. +- Error/null/empty behavior: invalid inputs return `NULL`; `count == 0` returns an empty array when allocation succeeds. +- Ownership and lifetime: caller owns the returned array/tree; partial builds are cleaned with `JDelete` on failure. +- Concurrency/global state: allocation/free follows SDK allocator hook state. +- Portability/platform constraints: numeric representation follows `JNUMBER`. +- Performance shape: O(count). +- Security or parsing constraints: no overflow guard on count-to-size_t cast after the negative check. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers can build an owned JSON array from C numeric input values. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2489:JCreateNumberArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateArray`, `JCreateNumber`, `JDelete`, and `_suffix_object` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md b/source-research/artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md new file mode 100644 index 00000000..290d51b5 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md @@ -0,0 +1,63 @@ +# `JCreateStringArray` + +## Status + +Finalized. Source-inspected public string-array constructor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2519` +- Declaration/interface: `n_cjson.h:258` +- Signature/API shape: `J *JCreateStringArray(const char **strings, int count)` +- Visibility: public through `N_CJSON_PUBLIC`, configured in `n_cjson.h:134-144` +- Public/exported names: `JCreateStringArray` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2434:JCreateArray` finalized + - `function:n_cjson.c:2360:JCreateString` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1757:_suffix_object` finalized +- External/system dependencies: none +- Data/type/global dependencies: builds a child list under the returned array +- Artifact coverage: source, header declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns `NULL` when `count < 0` or `strings == NULL`. Otherwise creates an empty `JArray`, creates each element with `JCreateString(strings[i])`, links the first child directly and later children with `_suffix_object`, and returns the array. If any string node creation fails, deletes the partially built array and returns `NULL`. + +Null individual string entries fail through `JCreateString`/`_j_strdup`, which triggers partial-array cleanup. + +## Important Boundaries + +- Preconditions and assumptions: `strings` points to at least `count` entries when count is positive; non-null entries are NUL-terminated. +- Error/null/empty behavior: invalid inputs return `NULL`; `count == 0` returns an empty array when allocation succeeds. +- Ownership and lifetime: returned array owns duplicated string values; partial builds are cleaned with `JDelete` on failure. +- Concurrency/global state: allocation/free follows SDK allocator hook state. +- Portability/platform constraints: string duplication follows `_j_strdup` behavior. +- Performance shape: O(total string length + count). +- Security or parsing constraints: no overflow guard on count-to-size_t cast after the negative check. + +## Direct Call Sites + +Exact production search found no direct callers outside its header declaration and implementation. It is a public API entry point. + +## Role In Callers + +No in-repository production caller was found. Public consumers can build an owned JSON array from C string input values. + +## Tests Observed + +No focused test references for this symbol were found under `test/src`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2519:JCreateStringArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateArray`, `JCreateString`, `JDelete`, and `_suffix_object` + +## Evidence Gaps + +No unresolved source gaps for this node. Caller status is explicit none-found in repository source. diff --git a/source-research/artifacts/functions/n_cjson_c__L2550__JDuplicate.md b/source-research/artifacts/functions/n_cjson_c__L2550__JDuplicate.md new file mode 100644 index 00000000..4ac3de04 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2550__JDuplicate.md @@ -0,0 +1,63 @@ +# `JDuplicate` + +## Status + +Finalized. Source-inspected public shallow/deep JSON item duplication helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2550` +- Declaration/interface: `n_cjson.h:288` +- Public/exported names: `JDuplicate` +- Macro aliases/wrappers: none found +- Signature/API shape: `J *JDuplicate(const J *item, Jbool recurse)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: allocates a new JSON item/tree that the caller owns and must release + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized + - `function:n_cjson.c:146:_j_strdup` finalized + - `function:n_cjson.c:209:JDelete` finalized + - self-recursive call to `JDuplicate(child, true)` +- External/system dependencies: allocator/free hooks through callees +- Data/type/global dependencies: reads source item fields and reconstructs child `next`/`prev` links +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` for `item == NULL` or any allocation/copy failure. Otherwise allocates a new zeroed item, copies `type` with `JIsReference` cleared, copies numeric fields, duplicates `valuestring` when present, and duplicates `string` unless the source item has `JStringIsConst`, in which case it reuses the original key pointer. When `recurse` is false, returns this shallow duplicate without children. When `recurse` is true, recursively duplicates each child in the source `child`/`next` chain and rebuilds the duplicate child's `next` and `prev` links. + +## Important Boundaries + +- Preconditions and assumptions: source tree/list is expected to be acyclic and well-formed. +- Error/null/empty behavior: null input, allocation failure, string duplication failure, or recursive child duplication failure returns `NULL`. +- Ownership and lifetime: returned duplicate owns copied nodes and copied strings except const key strings reused from source when `JStringIsConst` is set. +- Concurrency/global state: no direct global state; allocation/free behavior is delegated through callees. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: shallow mode is O(size of current strings); recursive mode is O(number of reachable child/sibling nodes plus copied string lengths). +- Security or parsing constraints: no depth limit, no cycle detection, and no use of `N_CJSON_NESTING_LIMIT`; malformed or cyclic child/next graphs are not guarded. + +## Direct Call Sites + +Exact production source search found only the public declaration in `n_cjson.h:288`, the definition in `n_cjson.c:2550`, and the self-recursive call in `n_cjson.c:2589`. No non-self production repository caller was found. + +## Role In Callers + +No non-self repository caller role. The only in-repo call site is recursive duplication of child nodes when `recurse` is true. + +## Tests Observed + +None. Focused test search found no direct `JDuplicate` tests or fakes. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2550:JDuplicate` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_jNew_Item`, `_j_strdup`, `JDelete`, and self-recursive `JDuplicate`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L255__parse_number.md b/source-research/artifacts/functions/n_cjson_c__L255__parse_number.md new file mode 100644 index 00000000..cd969234 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L255__parse_number.md @@ -0,0 +1,59 @@ +# `_parse_number` + +## Status + +Finalized. Source-inspected JSON number parser. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:255` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _parse_number(J * const item, parse_buffer * const input_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:229:_get_decimal_point` finalized + - `macro:n_cjson.c:249:can_access_at_index` finalized + - `macro:n_cjson.c:252:buffer_at_offset` finalized + - `function:n_atof.c:71:JAtoN` finalized + - `function:n_cjson_helpers.c:312:JAtoI` finalized +- External/system dependencies: none +- Data/type/global dependencies: `J.valuenumber`, `J.valueint`, `J.type`, `JINTEGER_MIN`, `JINTEGER_MAX`, `JNumber` + +## Behavior + +Rejects null input buffers or null content. It copies a bounded run of numeric characters into a 64-byte temporary string, translating JSON `.` to the active decimal separator. It parses the temporary string with `JAtoN`, rejects the case where no characters were consumed, stores `valuenumber`, saturates `valueint` at `JINTEGER_MAX`/`JINTEGER_MIN` when needed, otherwise parses the integer value with `JAtoI`, sets type to `JNumber`, advances the parse-buffer offset by the consumed length, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a valid `item` and starts at a candidate number byte. +- Error/null/empty behavior: no consumed numeric characters or invalid input buffer returns false. +- Ownership and lifetime: no allocation; writes into caller-owned `J`. +- Concurrency/global state: locale-enabled builds read process locale through `_get_decimal_point`. +- Performance shape: bounded by the 63-byte temporary numeric token buffer. +- Portability/platform constraints: numeric precision follows `JNUMBER`; integer saturation follows `JINTEGER`. + +## Direct Call Sites + +Exact source search found `_parse_value` as the production caller for numeric JSON values. + +## Role In Callers + +The root parser and recursive array/object parsers reach this helper through `_parse_value`. + +## Tests Observed + +`JSON_number_handling_test.cpp` covers parse behavior for zero, integer bounds/saturation, floating values, small values, and timestamp-like numbers. + +## Graph Links + +- Graph node id: `function:n_cjson.c:255:_parse_number` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were identified for locale-specific decimal parsing or numeric tokens longer than the temporary buffer. diff --git a/source-research/artifacts/functions/n_cjson_c__L2616__JMinify.md b/source-research/artifacts/functions/n_cjson_c__L2616__JMinify.md new file mode 100644 index 00000000..a5152029 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2616__JMinify.md @@ -0,0 +1,60 @@ +# `JMinify` + +## Status + +Finalized. Source-inspected public in-place JSON minifier. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2616` +- Declaration/interface: `n_cjson.h:297` +- Public/exported names: `JMinify` +- Macro aliases/wrappers: none found +- Signature/API shape: `void JMinify(char *json)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: mutates the caller-provided JSON buffer in place + +## Dependency Status + +- Project-local dependencies: +- No project-local callees. +- External/system dependencies: none +- Data/type/global dependencies: reads and writes the caller-provided character buffer only +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns immediately when `json` is `NULL`. Otherwise compacts the input buffer in place by skipping spaces, tabs, carriage returns, newlines, C++-style `//` comments through newline, and C-style `/* ... */` comments. String literals are copied through with escape handling so whitespace and comment-like sequences inside strings are preserved. All other bytes are copied forward, and the output is NUL-terminated. + +## Important Boundaries + +- Preconditions and assumptions: input must be a writable NUL-terminated buffer. +- Error/null/empty behavior: null input is a no-op; empty string remains empty. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: byte-oriented ASCII whitespace/comment/string scanning. +- Performance shape: single pass over the buffer with in-place writes. +- Security or parsing constraints: does not validate JSON. If a `/*` comment or string literal is unterminated, the source pointer can advance past the first NUL terminator before the outer loop condition is checked again. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:297` and the definition in `n_cjson.c:2616`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public cJSON-compatible utility for downstream callers that want to remove whitespace and comments from a mutable JSON buffer. + +## Tests Observed + +None. Focused test search found no `JMinify` or minify test references. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2616:JMinify` +- Structured graph: `inventory/dependency-graph.json` +- Verified as a leaf with no project-local callees. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2665__JIsInvalid.md b/source-research/artifacts/functions/n_cjson_c__L2665__JIsInvalid.md new file mode 100644 index 00000000..5dca63c1 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2665__JIsInvalid.md @@ -0,0 +1,59 @@ +# `JIsInvalid` + +## Status + +Finalized. Source-inspected JSON invalid-type predicate and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2665` +- Declaration/interface: `n_cjson.h:223` +- Public/exported names: `JIsInvalid` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `Jbool JIsInvalid(const J * const item)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: borrowed read of caller-owned node + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: reads `J.type` +- Artifact coverage: source, declaration, direct caller, and focused-test search inspected + +## Behavior + +Returns false for null input. Otherwise masks `item->type` with `0xFF` and returns true only when the base type is `JInvalid`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null input returns false. +- Ownership and lifetime: no allocation; reads caller-owned node. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: no parsing. + +## Direct Call Sites + +Exact production caller: `n_cjson.c:2747` `JCompare`. + +## Role In Callers + +`JCompare` rejects null, type-mismatched, and invalid left-hand JSON nodes before value comparison. + +## Tests Observed + +No direct focused test for `JIsInvalid` was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2665:JIsInvalid` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2673__JIsFalse.md b/source-research/artifacts/functions/n_cjson_c__L2673__JIsFalse.md new file mode 100644 index 00000000..371a4303 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2673__JIsFalse.md @@ -0,0 +1,60 @@ +# `JIsFalse` + +## Status + +Finalized. Source-inspected public false-type predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2673` +- Declaration/interface: `n_cjson.h:224` +- Public/exported names: `JIsFalse` +- Macro aliases/wrappers: none found +- Signature/API shape: `Jbool JIsFalse(const J * const item)` +- Visibility: public cJSON predicate implemented in `n_cjson.c` +- Ownership/lifetime role: read-only type predicate; no ownership transfer + +## Dependency Status + +- Project-local dependencies: +- No project-local callees. +- External/system dependencies: none +- Data/type/global dependencies: reads `item->type` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `false` when `item` is `NULL`. Otherwise masks `item->type` with `0xFF` and returns true when the base type is `JFalse`. + +## Important Boundaries + +- Preconditions and assumptions: caller may pass any `J *`; only the low type byte is inspected. +- Error/null/empty behavior: null input returns false. +- Ownership and lifetime: no allocation, free, or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: no platform-specific behavior. +- Performance shape: O(1). +- Security or parsing constraints: ignores flag bits such as `JIsReference` and `JStringIsConst` by masking with `0xFF`. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:224` and the definition in `n_cjson.c:2673`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public cJSON-compatible predicate for downstream callers. + +## Tests Observed + +None. Focused test search found no direct `JIsFalse` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2673:JIsFalse` +- Structured graph: `inventory/dependency-graph.json` +- Verified as a leaf with no project-local callees. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2681__JIsTrue.md b/source-research/artifacts/functions/n_cjson_c__L2681__JIsTrue.md new file mode 100644 index 00000000..8df9ae18 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2681__JIsTrue.md @@ -0,0 +1,59 @@ +# `JIsTrue` + +## Status + +Finalized. Source-inspected JSON true predicate and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2681` +- Declaration/interface: `n_cjson.h:225` +- Public/exported names: `JIsTrue` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `Jbool JIsTrue(const J * const item)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: borrowed read of caller-owned node + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: reads `J.type` +- Artifact coverage: source, declaration, direct caller, and focused tests inspected + +## Behavior + +Returns false for null input. Otherwise masks `item->type` with `0xFF` and returns true only when the base type is `JTrue`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null input returns false. +- Ownership and lifetime: no allocation; reads caller-owned node. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: no parsing. + +## Direct Call Sites + +Exact production caller: `n_cjson_helpers.c:149` `JGetBool`. + +## Role In Callers + +`JGetBool` uses this after `JIsBool` accepts the field, so false and missing/non-bool both produce false from the public helper. + +## Tests Observed + +`test/src/JGetBool_test.cpp` covers true-valued fields through `JGetBool`. No direct predicate-only test was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2681:JIsTrue` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2690__JIsBool.md b/source-research/artifacts/functions/n_cjson_c__L2690__JIsBool.md new file mode 100644 index 00000000..37170473 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2690__JIsBool.md @@ -0,0 +1,59 @@ +# `JIsBool` + +## Status + +Finalized. Source-inspected JSON bool predicate and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2690` +- Declaration/interface: `n_cjson.h:226` +- Public/exported names: `JIsBool` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `Jbool JIsBool(const J * const item)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: borrowed read of caller-owned node + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: reads `J.type` +- Artifact coverage: source, declaration, direct caller, and focused tests inspected + +## Behavior + +Returns false for null input. Otherwise returns true when any `JTrue` or `JFalse` bit is present in `item->type`, using `(item->type & (JTrue | JFalse)) != 0`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null input returns false. +- Ownership and lifetime: no allocation; reads caller-owned node. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: unlike most type predicates, this is a bit-presence check rather than exact low-byte equality. + +## Direct Call Sites + +Exact production caller: `n_cjson_helpers.c:146` `JGetBool`. + +## Role In Callers + +`JGetBool` uses this to reject missing/non-bool fields before calling `JIsTrue`. + +## Tests Observed + +`test/src/JGetBool_test.cpp` covers bool lookup behavior through `JGetBool`. No direct predicate-only test for malformed combined bool bits was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2690:JIsBool` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2697__JIsNull.md b/source-research/artifacts/functions/n_cjson_c__L2697__JIsNull.md new file mode 100644 index 00000000..39795ad4 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2697__JIsNull.md @@ -0,0 +1,60 @@ +# `JIsNull` + +## Status + +Finalized. Source-inspected public null-type predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2697` +- Declaration/interface: `n_cjson.h:227` +- Public/exported names: `JIsNull` +- Macro aliases/wrappers: none found +- Signature/API shape: `Jbool JIsNull(const J * const item)` +- Visibility: public cJSON predicate implemented in `n_cjson.c` +- Ownership/lifetime role: read-only type predicate; no ownership transfer + +## Dependency Status + +- Project-local dependencies: +- No project-local callees. +- External/system dependencies: none +- Data/type/global dependencies: reads `item->type` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `false` when `item` is `NULL`. Otherwise masks `item->type` with `0xFF` and returns true when the base type is `JNULL`. + +## Important Boundaries + +- Preconditions and assumptions: caller may pass any `J *`; only the low type byte is inspected. +- Error/null/empty behavior: null input returns false. +- Ownership and lifetime: no allocation, free, or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: no platform-specific behavior. +- Performance shape: O(1). +- Security or parsing constraints: ignores flag bits such as `JIsReference` and `JStringIsConst` by masking with `0xFF`. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:227` and the definition in `n_cjson.c:2697`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public cJSON-compatible predicate for downstream callers. + +## Tests Observed + +None. Focused test search found no direct `JIsNull` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2697:JIsNull` +- Structured graph: `inventory/dependency-graph.json` +- Verified as a leaf with no project-local callees. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2705__JIsNumber.md b/source-research/artifacts/functions/n_cjson_c__L2705__JIsNumber.md new file mode 100644 index 00000000..66d6cda2 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2705__JIsNumber.md @@ -0,0 +1,54 @@ +# `JIsNumber` + +## Status + +Finalized. Source-inspected JSON number predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2705` +- Declaration/interface: `n_cjson.h:228` +- Signature/API shape: `Jbool JIsNumber(const J * const item)` +- Visibility: public cJSON/note-c JSON API +- Public/exported names: `JIsNumber` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `J.type`, `JNumber` + +## Behavior + +Returns false for a null item. Otherwise masks `item->type` with `0xFF` and returns true only when the base type is `JNumber`. + +## Important Boundaries + +- Preconditions and assumptions: accepts null item. +- Error/null/empty behavior: null and non-number items return false. +- Ownership and lifetime: no allocation; reads caller-owned node. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: none. + +## Direct Call Sites + +Exact source search found direct production callers in `JGetNumber`, `JGetInt`, and other JSON helper paths. + +## Role In Callers + +`JGetInt` uses this predicate to avoid reading `valueint` from non-number fields. + +## Tests Observed + +`JGetInt_test.cpp`, `JIntValue_test.cpp`, and `JSON_number_handling_test.cpp` exercise this predicate indirectly through integer lookup/value helpers. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2705:JIsNumber` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused direct `JIsNumber` test was inspected. diff --git a/source-research/artifacts/functions/n_cjson_c__L2713__JIsString.md b/source-research/artifacts/functions/n_cjson_c__L2713__JIsString.md new file mode 100644 index 00000000..aca64b46 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2713__JIsString.md @@ -0,0 +1,54 @@ +# `JIsString` + +## Status + +Finalized. Source-inspected JSON string type predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2713` +- Declaration/interface: `n_cjson.h:229` +- Signature/API shape: `Jbool JIsString(const J * const item)` +- Visibility: cJSON API function implemented in `n_cjson.c` +- Public/exported names: `JIsString` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `item->type` + +## Behavior + +Returns `false` for `NULL`; otherwise masks `item->type` with `0xFF` and compares it to `JString`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input points to a valid `J`. +- Error/null/empty behavior: null returns `false`. +- Ownership and lifetime: reads only. +- Concurrency/global state: no global state. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found callers in `n_cjson.c` and string helpers in `n_cjson_helpers.c`, including `JGetString`, `JIsNullString`, `JIsExactString`, and `JContainsString`. + +## Role In Callers + +`JGetString` uses `JIsString` to reject missing or non-string fields before returning `item->valuestring`. + +## Tests Observed + +None. No focused direct test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2713:JIsString` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2721__JIsArray.md b/source-research/artifacts/functions/n_cjson_c__L2721__JIsArray.md new file mode 100644 index 00000000..fb378fd2 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2721__JIsArray.md @@ -0,0 +1,59 @@ +# `JIsArray` + +## Status + +Finalized. Source-inspected JSON array predicate and direct caller. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2721` +- Declaration/interface: `n_cjson.h:230` +- Public/exported names: `JIsArray` +- Macro aliases/wrappers: defined with `N_CJSON_PUBLIC` +- Signature/API shape: `Jbool JIsArray(const J * const item)` +- Visibility: public cJSON/note-c JSON API +- Ownership/lifetime role: borrowed read of caller-owned node + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: reads `J.type` +- Artifact coverage: source, declaration, direct caller, and focused tests inspected + +## Behavior + +Returns false for null input. Otherwise masks `item->type` with `0xFF` and returns true only when the base type is `JArray`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null input returns false. +- Ownership and lifetime: no allocation; reads caller-owned node. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: exact base-type check after masking flags, so `JArray | JIsReference` still passes. + +## Direct Call Sites + +Exact production caller: `n_cjson_helpers.c:54` `JGetArray`. + +## Role In Callers + +`JGetArray` uses this to reject missing/non-array fields before returning a borrowed child pointer. + +## Tests Observed + +`test/src/JGetArray_test.cpp` covers null, missing, wrong-type, and valid-array lookup through `JGetArray`. No direct predicate-only test was found. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2721:JIsArray` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2729__JIsObject.md b/source-research/artifacts/functions/n_cjson_c__L2729__JIsObject.md new file mode 100644 index 00000000..f473b439 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2729__JIsObject.md @@ -0,0 +1,59 @@ +# `JIsObject` + +## Status + +Final. Behavior, declaration, direct call sites, null/type behavior, and indirect focused coverage have been inspected. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2729` +- Declaration/interface: `n_cjson.h:231` +- Public/exported names: `JIsObject` +- Macro aliases/wrappers: unverified +- Signature/API shape: `Jbool JIsObject(const J * const item)` +- Visibility: public cJSON predicate +- Ownership/lifetime role: borrowed inspection only; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: reads `item->type` +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `false` for `NULL`. Otherwise masks the low byte of `item->type` and returns whether it equals `JObject`. + +## Important Boundaries + +- Preconditions and assumptions: non-`NULL` input should point to a valid `J` +- Error/null/empty behavior: `NULL` returns `false` +- Ownership and lifetime: does not allocate, retain, or mutate +- Concurrency/global state: no global state +- Portability/platform constraints: none +- Performance shape: constant-time type check +- Security or parsing constraints: no parsing; trusts the `J` pointer when non-`NULL` + +## Direct Call Sites + +Verified direct production caller: `n_cjson_helpers.c:68` in `JGetObject`. + +## Role In Callers + +Low-level type predicate used by typed object getter helpers. + +## Tests Observed + +No focused test calls `JIsObject` by name. `test/src/JGetObject_test.cpp` indirectly covers object, non-object, and null/missing behavior through `JGetObject`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2729:JIsObject` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +None for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2737__JIsRaw.md b/source-research/artifacts/functions/n_cjson_c__L2737__JIsRaw.md new file mode 100644 index 00000000..050737e0 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2737__JIsRaw.md @@ -0,0 +1,60 @@ +# `JIsRaw` + +## Status + +Finalized. Source-inspected public raw-type predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2737` +- Declaration/interface: `n_cjson.h:232` +- Public/exported names: `JIsRaw` +- Macro aliases/wrappers: none found +- Signature/API shape: `Jbool JIsRaw(const J * const item)` +- Visibility: public cJSON predicate implemented in `n_cjson.c` +- Ownership/lifetime role: read-only type predicate; no ownership transfer + +## Dependency Status + +- Project-local dependencies: +- No project-local callees. +- External/system dependencies: none +- Data/type/global dependencies: reads `item->type` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `false` when `item` is `NULL`. Otherwise masks `item->type` with `0xFF` and returns true when the base type is `JRaw`. + +## Important Boundaries + +- Preconditions and assumptions: caller may pass any `J *`; only the low type byte is inspected. +- Error/null/empty behavior: null input returns false. +- Ownership and lifetime: no allocation, free, or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: no platform-specific behavior. +- Performance shape: O(1). +- Security or parsing constraints: ignores flag bits such as `JIsReference` and `JStringIsConst` by masking with `0xFF`. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:232` and the definition in `n_cjson.c:2737`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public cJSON-compatible predicate for downstream callers. + +## Tests Observed + +None. Focused test search found no direct `JIsRaw` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2737:JIsRaw` +- Structured graph: `inventory/dependency-graph.json` +- Verified as a leaf with no project-local callees. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L2745__JCompare.md b/source-research/artifacts/functions/n_cjson_c__L2745__JCompare.md new file mode 100644 index 00000000..2e8e8206 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L2745__JCompare.md @@ -0,0 +1,63 @@ +# `JCompare` + +## Status + +Finalized. Source-inspected public recursive JSON comparison helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:2745` +- Declaration/interface: `n_cjson.h:294` +- Public/exported names: `JCompare` +- Macro aliases/wrappers: none found +- Signature/API shape: `Jbool JCompare(const J * const a, const J * const b, const Jbool case_sensitive)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: read-only recursive comparison; no ownership transfer + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2665:JIsInvalid` finalized + - `macro:n_cjson.h:320:JArrayForEach` finalized + - `function:n_cjson.c:1710:_get_object_item` finalized + - self-recursive calls to `JCompare` +- External/system dependencies: `strcmp` for string/raw comparisons +- Data/type/global dependencies: reads `J` type, number, string, child, next, and object key fields +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns false when either input is `NULL`, the low-byte base types differ, or `a` is invalid. Rejects unknown base types. Identical pointers compare true after type validity is checked. False, true, and null values compare equal by type alone. Numbers compare with exact `valuenumber ==` equality. Strings and raw values require both `valuestring` pointers to be non-null and `strcmp` equal. Arrays compare child chains positionally and require equal length. Objects compare both directions: every key in `a` must be found in `b` and recursively equal, and every key in `b` must be found in `a` and recursively equal. Object key lookup follows the `case_sensitive` argument through `_get_object_item`. + +## Important Boundaries + +- Preconditions and assumptions: inputs are expected to be acyclic, well-formed JSON trees with valid string/key pointers where required. +- Error/null/empty behavior: null inputs, invalid left input, mismatched types, unknown types, missing object keys, null string/raw values, unequal numbers, unequal array lengths, or recursive mismatch return false. +- Ownership and lifetime: no allocation, free, or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: number equality is exact `JNUMBER` equality. +- Performance shape: recursive tree walk; object comparison is O(n^2) by repeated lookup and performs both subset directions. +- Security or parsing constraints: no depth limit or cycle detection; malformed cycles in child/next graphs can recurse or loop indefinitely. + +## Direct Call Sites + +Exact source search found the public declaration, the definition, self-recursive array/object comparison calls, and one focused test. No non-self production repository caller was found. + +## Role In Callers + +No non-self production caller role. Recursive calls compare nested array/object children. Focused test code uses it to assert a transaction response equals a newly-created empty object. + +## Tests Observed + +Focused evidence in `test/src/NoteTransaction_test.cpp:599` compares a response object with a newly-created empty object using `JCompare(resp, expectedResp, true)`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:2745:JCompare` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JIsInvalid`, `JArrayForEach`, `_get_object_item`, and self-recursive `JCompare`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md b/source-research/artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md new file mode 100644 index 00000000..d86e3d85 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md @@ -0,0 +1,61 @@ +# `JSetNumberHelper` + +## Status + +Finalized. Source-inspected numeric value setter helper for the public `JSetNumberValue` macro. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:322` +- Declaration/interface: `n_cjson.h:316` +- Public/exported names: `JSetNumberHelper` +- Macro aliases/wrappers: `JSetNumberValue(object, number)` in `n_cjson.h:317` delegates to this helper when `object != NULL` +- Signature/API shape: `JNUMBER JSetNumberHelper(J *object, JNUMBER number)` +- Visibility: public helper for cJSON-compatible numeric assignment macro +- Ownership/lifetime role: mutates caller-owned number item fields; no ownership transfer + +## Dependency Status + +- Project-local dependencies: +- No project-local callees. +- External/system dependencies: none +- Data/type/global dependencies: writes `object->valueint` and `object->valuenumber` +- Artifact coverage: source-inspected artifact; graph repaired with verified macro expansion edge from `JSetNumberValue` + +## Behavior + +If `object` is `NULL`, returns `number` without writing. Otherwise saturates `object->valueint`: values greater than or equal to `JINTEGER_MAX` store `JINTEGER_MAX`; values less than or equal to `JINTEGER_MIN` store `JINTEGER_MIN`; all other values are cast to `JINTEGER`. It then stores `number` into `object->valuenumber` and returns that value. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a mutable `J *` when mutation is desired; helper does not validate that the item is a number. +- Error/null/empty behavior: null object is a no-op that returns the supplied number. +- Ownership and lifetime: no allocation, free, or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: saturation limits follow `JINTEGER_MIN` / `JINTEGER_MAX`. +- Performance shape: O(1). +- Security or parsing constraints: no NaN-specific handling; comparisons against integer bounds drive saturation/cast behavior. + +## Direct Call Sites + +Exact source search found the helper declaration, the implementation, and the public `JSetNumberValue` macro. No direct production repository call or focused test use was found. + +## Role In Callers + +`JSetNumberValue` uses this helper when `object != NULL`; for null objects, the macro returns `number` without calling the helper. + +## Tests Observed + +None. Focused test search found no direct `JSetNumberHelper` or `JSetNumberValue` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:322:JSetNumberHelper` +- Structured graph: `inventory/dependency-graph.json` +- Verified as a leaf with no project-local callees. +- Verified incoming macro expansion edge from `macro:n_cjson.h:317:JSetNumberValue`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L351__ensure.md b/source-research/artifacts/functions/n_cjson_c__L351__ensure.md new file mode 100644 index 00000000..7032d3aa --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L351__ensure.md @@ -0,0 +1,56 @@ +# `_ensure` + +## Status + +Finalized. Source-inspected JSON print buffer growth helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:351` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `unsigned char *_ensure(printbuffer * const p, size_t needed)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: mutates caller-owned `printbuffer` + +## Behavior + +Ensures a print buffer has room for `needed` additional bytes beyond the current offset plus a terminator. It rejects null buffers, null backing storage, invalid offsets, sizes above `INT_MAX`, and no-allocation buffers that need growth. If current capacity is sufficient, it returns `p->buffer + p->offset`. Otherwise it allocates a new `ALLOC_CHUNK`-rounded buffer, copies bytes through `p->offset + 1`, frees the old backing buffer, updates `p->length` and `p->buffer`, and returns the new write pointer. If allocation fails, it frees the old backing buffer, zeroes `p->length`, clears `p->buffer`, and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `p->buffer` must point to allocation compatible with `_Free`. +- Error/null/empty behavior: invalid inputs, unsupported huge sizes, noalloc growth, or allocation failure return `NULL`. +- Ownership and lifetime: may replace and free the buffer owned by the printbuffer. +- Concurrency/global state: no global state; allocation/free use hook-backed aliases. +- Performance shape: O(existing offset) when growth occurs; O(1) when capacity is sufficient. + +## Direct Call Sites + +Exact source search found callers in `_print_number`, `_print_string_ptr`, `_print_value`, `_print_array`, `_print_object`, and buffered/preallocated printing paths. + +## Role In Callers + +JSON printing helpers use `_ensure` as their dynamic print-buffer growth and bounds-checking primitive. + +## Tests Observed + +Focused `JPrintUnformatted` and JSON number printing tests exercise this helper through public printing APIs. No direct unit test for `_ensure` was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:351:_ensure` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_Malloc` and `_Free`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L400__update_offset.md b/source-research/artifacts/functions/n_cjson_c__L400__update_offset.md new file mode 100644 index 00000000..68d2789f --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L400__update_offset.md @@ -0,0 +1,53 @@ +# `_update_offset` + +## Status + +Finalized. Source-inspected JSON print offset updater. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:400` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `void _update_offset(printbuffer * const buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `strlen` +- Data/type/global dependencies: mutates `buffer->offset` + +## Behavior + +If the printbuffer or backing buffer is null, returns without changing state. Otherwise computes `buffer_pointer = buffer->buffer + buffer->offset` and advances `buffer->offset` by the NUL-terminated string length starting at that pointer. + +## Important Boundaries + +- Preconditions and assumptions: caller has written a NUL-terminated fragment at the current offset. +- Error/null/empty behavior: null printbuffer or backing buffer is a no-op. +- Ownership and lifetime: no allocation or free. +- Concurrency/global state: no global state. +- Performance shape: O(length of just-written fragment). + +## Direct Call Sites + +Exact source search found callers in `_print`, `_print_array`, and `_print_object`. + +## Role In Callers + +Printing helpers call `_update_offset` after nested value/key writes where the nested helper writes a NUL-terminated fragment but does not directly add a known byte count to the caller's offset. + +## Tests Observed + +Focused public printing tests exercise this indirectly. No direct unit test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:400:_update_offset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L412__print_number.md b/source-research/artifacts/functions/n_cjson_c__L412__print_number.md new file mode 100644 index 00000000..152e29c0 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L412__print_number.md @@ -0,0 +1,59 @@ +# `_print_number` + +## Status + +Finalized. Source-inspected JSON number serializer. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:412` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _print_number(const J * const item, printbuffer * const output_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:229:_get_decimal_point` finalized + - `function:n_str.c:31:strlcpy` finalized + - `function:n_ftoa.c:56:JNtoA` finalized + - `function:n_cjson_helpers.c:284:JItoA` finalized + - `function:n_cjson.c:351:_ensure` finalized +- External/system dependencies: `strlen` +- Data/type/global dependencies: reads `J.valuenumber`, `J.valueint`, `JNTOA_MAX`, and locale decimal point in locale-enabled builds + +## Behavior + +Rejects null item or output buffer. It prints non-finite values as JSON `null` using `strlcpy`; finite non-integral values use `JNtoA(vnum, nbuf, -1)`, and finite integral values use `JItoA(vint, nbuf)`. It checks the temporary buffer length against `JNTOA_MAX - 1`, reserves output through `_ensure`, copies the bytes into the printbuffer while replacing the active locale decimal separator with `.`, NUL-terminates the fragment, advances `output_buffer->offset`, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: `item` is a number node and `output_buffer` owns valid printbuffer storage. +- Error/null/empty behavior: null inputs, overlong converted text, or `_ensure` failure return false. +- Ownership and lifetime: no standalone allocation; writes into printbuffer storage. +- Concurrency/global state: locale-enabled builds read process locale through `_get_decimal_point`. +- Performance shape: bounded by `JNTOA_MAX`. +- Portability/platform constraints: finite floating formatting follows `JNtoA`, whose precision depends on `JNUMBER` width. + +## Direct Call Sites + +Exact source search found `_print_value` as the production caller for `JNumber` values. + +## Role In Callers + +`_print_value` delegates JSON number values here for all public print entry points, including `JPrintUnformatted`. + +## Tests Observed + +`JSON_number_handling_test.cpp` has focused JSON marshalling assertions for zero, integer limits, out-of-range values, small floating-point output, and timestamp-style values. No locale-specific decimal separator test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:412:_print_number` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for JSON NaN/Infinity-to-`null`, locale decimal replacement, or allocation failure in this exact helper. diff --git a/source-research/artifacts/functions/n_cjson_c__L476__parse_hex4.md b/source-research/artifacts/functions/n_cjson_c__L476__parse_hex4.md new file mode 100644 index 00000000..8bf05c7e --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L476__parse_hex4.md @@ -0,0 +1,54 @@ +# `_parse_hex4` + +## Status + +Finalized. Source-inspected four-hex-digit parser. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:476` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `unsigned long _parse_hex4(const unsigned char * const input)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Parses exactly four hexadecimal characters from `input`, accepting digits and uppercase or lowercase A-F. It shifts the accumulated value between nibbles and returns 0 on the first invalid character. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies at least four readable bytes. +- Error/null/empty behavior: invalid input returns 0, which is also the valid value for `0000`. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: fixed four-iteration loop. +- Portability/platform constraints: ASCII hex character assumptions. + +## Direct Call Sites + +Exact source search found `_utf16_literal_to_utf8` as the sole production caller. + +## Role In Callers + +UTF-16 escape conversion uses this helper to parse each `\uXXXX` code unit. + +## Tests Observed + +String parsing tests exercise this indirectly through `JParse` when escaped unicode is present. + +## Graph Links + +- Graph node id: `function:n_cjson.c:476:_parse_hex4` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md b/source-research/artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md new file mode 100644 index 00000000..6f5f7382 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md @@ -0,0 +1,55 @@ +# `_utf16_literal_to_utf8` + +## Status + +Finalized. Source-inspected UTF-16 JSON escape to UTF-8 converter. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:504` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `unsigned char _utf16_literal_to_utf8(const unsigned char * const input_pointer, const unsigned char * const input_end, unsigned char **output_pointer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:476:_parse_hex4` finalized +- External/system dependencies: none +- Data/type/global dependencies: UTF-16 surrogate ranges and UTF-8 byte encoding rules + +## Behavior + +Validates that the first `\uXXXX` sequence is present, parses it, rejects an isolated low surrogate, and handles high-surrogate pairs by requiring a following `\uXXXX` low surrogate. It computes the Unicode codepoint, chooses a one- to four-byte UTF-8 encoding, writes bytes through `*output_pointer`, advances the output pointer by the emitted length, and returns the consumed input sequence length (`6` or `12`). Invalid or truncated escapes return 0. + +## Important Boundaries + +- Preconditions and assumptions: caller points at the backslash of a JSON `\u` escape and supplies an output buffer large enough for the converted bytes. +- Error/null/empty behavior: invalid escapes return 0 without an error string. +- Ownership and lifetime: no allocation; writes into caller-owned output storage. +- Concurrency/global state: no global state. +- Performance shape: fixed bounded work. +- Portability/platform constraints: emits UTF-8 bytes manually and assumes JSON escape source bytes are ASCII. + +## Direct Call Sites + +Exact source search found `_parse_string` as the sole production caller. + +## Role In Callers + +`_parse_string` uses this helper for `\uXXXX` escape sequences while unescaping JSON string literals. + +## Tests Observed + +Public parser/print tests exercise string parsing indirectly. No direct unicode-specific test was identified in the focused source pass. + +## Graph Links + +- Graph node id: `function:n_cjson.c:504:_utf16_literal_to_utf8` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L604__parse_string.md b/source-research/artifacts/functions/n_cjson_c__L604__parse_string.md new file mode 100644 index 00000000..e2c481e0 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L604__parse_string.md @@ -0,0 +1,58 @@ +# `_parse_string` + +## Status + +Finalized. Source-inspected JSON string parser and unescaper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:604` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _parse_string(J * const item, parse_buffer * const input_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.c:252:buffer_at_offset` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_cjson.c:504:_utf16_literal_to_utf8` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: none +- Data/type/global dependencies: `J.type`, `J.valuestring`, `JString` + +## Behavior + +Requires the current byte to be a double quote, scans to the closing quote while accounting for escape sequences, allocates an overestimated output buffer, and then copies/unescapes the string. It handles `\b`, `\f`, `\n`, `\r`, `\t`, escaped quote, backslash, slash, and `\uXXXX` sequences through `_utf16_literal_to_utf8`. On success it NUL-terminates the output, stores it as `item->valuestring`, sets type to `JString`, advances the parse offset past the closing quote, and returns true. Failures free the allocated output and set the parse offset to the failing input pointer when available. + +## Important Boundaries + +- Preconditions and assumptions: internal callers pass valid item and input buffer. +- Error/null/empty behavior: malformed strings, bad escapes, truncated input, or allocation failure return false. +- Ownership and lifetime: on success the parsed `J` owns the allocated string; on failure this helper frees its temporary output. +- Concurrency/global state: allocator/free behavior follows note-c hooks. +- Performance shape: two passes over the string literal plus bounded escape conversion. +- Portability/platform constraints: unicode escapes are converted to UTF-8 manually. + +## Direct Call Sites + +Exact source search found direct callers in `_parse_value` and `_parse_object` for object member names. + +## Role In Callers + +It parses both string values and object keys; `_parse_object` moves a parsed key from `valuestring` to `string`. + +## Tests Observed + +`JPrintUnformatted_test.cpp`, `NoteResponseError_test.cpp`, and several request tests exercise string parsing indirectly through `JParse`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:604:_parse_string` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused direct tests were identified for invalid escape offsets or surrogate-pair handling. diff --git a/source-research/artifacts/functions/n_cjson_c__L728__n_htoa16.md b/source-research/artifacts/functions/n_cjson_c__L728__n_htoa16.md new file mode 100644 index 00000000..c5666474 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L728__n_htoa16.md @@ -0,0 +1,53 @@ +# `_n_htoa16` + +## Status + +Finalized. Source-inspected 16-bit uppercase hex formatter. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:728` +- Declaration/interface: `n_lib.h:159` +- Signature/API shape: `void _n_htoa16(uint16_t n, unsigned char *p)` +- Visibility: internal utility with declaration in `n_lib.h` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes caller-provided output buffer + +## Behavior + +Writes four uppercase hexadecimal digits for the high-to-low nibbles of `n`, then appends a NUL terminator. Nibbles 0-9 map to `'0'`-`'9'`; 10-15 map to `'A'`-`'F'`. + +## Important Boundaries + +- Preconditions and assumptions: caller provides at least five output bytes. +- Error/null/empty behavior: no null check or error channel. +- Ownership and lifetime: writes only to caller buffer. +- Concurrency/global state: no global state. +- Performance shape: fixed four-iteration loop. + +## Direct Call Sites + +Exact source search found callers in `_print_string_ptr` for `\uXXXX` escaping and `_crcAdd` for request CRC sequence number formatting. + +## Role In Callers + +String printing uses `_n_htoa16` to emit JSON unicode escapes for control bytes below 32 that do not have short escape forms. + +## Tests Observed + +Focused public printing tests exercise string serialization indirectly. No direct `_n_htoa16` test was inspected. + +## Graph Links + +- Graph node id: `function:n_cjson.c:728:_n_htoa16` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L744__print_string_ptr.md b/source-research/artifacts/functions/n_cjson_c__L744__print_string_ptr.md new file mode 100644 index 00000000..00dcfaed --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L744__print_string_ptr.md @@ -0,0 +1,56 @@ +# `_print_string_ptr` + +## Status + +Finalized. Source-inspected JSON string escaping helper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:744` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _print_string_ptr(const unsigned char * const input, printbuffer * const output_buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:351:_ensure` finalized + - `function:n_cjson.c:728:_n_htoa16` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: mutates printbuffer contents + +## Behavior + +Prints a JSON string literal into the printbuffer. Null input is rendered as `""`. Non-null input is scanned to count characters needing escaping. If no escaping is needed, it writes a quoted copy. Otherwise it writes a quoted escaped string, using short escapes for quote, backslash, backspace, form feed, newline, carriage return, and tab; other control bytes below 32 are emitted as `\uXXXX` through `_n_htoa16`. + +## Important Boundaries + +- Preconditions and assumptions: `output_buffer` must be valid and backed by `_ensure`-managed storage. +- Error/null/empty behavior: null output buffer or allocation/growth failure returns false; null input prints `""`. +- Ownership and lifetime: no allocation outside `_ensure` buffer management. +- Concurrency/global state: no global state. +- Performance shape: O(input length), with a first scan and then copy/escape pass. + +## Direct Call Sites + +Exact source search found callers in `_print_string`, `_print_object` for object keys, and public/preallocated print paths through value/object printers. + +## Role In Callers + +String and object printers use this helper to produce JSON-escaped key and value string fragments. + +## Tests Observed + +Focused `JPrintUnformatted` tests exercise nested object/string output indirectly. No direct escape-table test was inspected in this slice. + +## Graph Links + +- Graph node id: `function:n_cjson.c:744:_print_string_ptr` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_ensure` and `_n_htoa16`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L856__print_string.md b/source-research/artifacts/functions/n_cjson_c__L856__print_string.md new file mode 100644 index 00000000..4698205d --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L856__print_string.md @@ -0,0 +1,55 @@ +# `_print_string` + +## Status + +Finalized. Source-inspected JSON string item print wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:856` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `Jbool _print_string(const J * const item, printbuffer * const p)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:744:_print_string_ptr` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `item->valuestring` + +## Behavior + +Delegates to `_print_string_ptr((unsigned char*)item->valuestring, p)` and returns that result. + +## Important Boundaries + +- Preconditions and assumptions: caller passes a non-null string `J` item; this wrapper does not null-check `item`. +- Error/null/empty behavior: null `valuestring` is handled by `_print_string_ptr` as an empty JSON string. +- Ownership and lifetime: reads borrowed `valuestring`, writes to caller printbuffer. +- Concurrency/global state: no global state. +- Performance shape: O(length of valuestring). + +## Direct Call Sites + +Exact source search found `_print_value` as the production caller for `JString` values. + +## Role In Callers + +`_print_value` dispatches string nodes here, and this wrapper centralizes string-value escaping through `_print_string_ptr`. + +## Tests Observed + +Focused public printing tests exercise this indirectly through `JPrintUnformatted`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:856:_print_string` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_print_string_ptr`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md b/source-research/artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md new file mode 100644 index 00000000..d6ec5c63 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md @@ -0,0 +1,56 @@ +# `_buffer_skip_whitespace` + +## Status + +Finalized. Source-inspected parse-buffer whitespace skipper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:870` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `parse_buffer *_buffer_skip_whitespace(parse_buffer * const buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.c:249:can_access_at_index` finalized + - `macro:n_cjson.c:252:buffer_at_offset` finalized +- External/system dependencies: none +- Data/type/global dependencies: `parse_buffer.content`, `parse_buffer.offset`, `parse_buffer.length` + +## Behavior + +Returns NULL for a null buffer or null content. Otherwise advances `offset` while the current byte is `<= 32`, then backs up one byte if the skip ended exactly at `length`, and returns the same buffer pointer. + +## Important Boundaries + +- Preconditions and assumptions: caller owns mutable parse-buffer offset state. +- Error/null/empty behavior: null buffer/content returns NULL. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: linear over the skipped whitespace run. +- Portability/platform constraints: whitespace is defined as byte values `<= 32`. + +## Direct Call Sites + +Exact source search found callers in `JParseWithOpts`, `_parse_array`, and `_parse_object`. + +## Role In Callers + +The root, array, and object parsers use this helper before parsing values and delimiters. + +## Tests Observed + +Parser-focused public tests exercise this indirectly through `JParse`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:870:_buffer_skip_whitespace` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md b/source-research/artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md new file mode 100644 index 00000000..4e44ae28 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md @@ -0,0 +1,56 @@ +# `_skip_utf8_bom` + +## Status + +Finalized. Source-inspected root parse UTF-8 BOM skipper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:888` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `parse_buffer *_skip_utf8_bom(parse_buffer * const buffer)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.c:249:can_access_at_index` finalized + - `macro:n_cjson.c:252:buffer_at_offset` finalized +- External/system dependencies: `strncmp` +- Data/type/global dependencies: `parse_buffer.content`, `parse_buffer.offset` + +## Behavior + +Returns NULL for a null buffer, null content, or any nonzero starting offset. At offset zero, checks for a UTF-8 BOM byte sequence and advances the offset by three bytes when present. Returns the same buffer pointer either way for valid offset-zero input. + +## Important Boundaries + +- Preconditions and assumptions: only intended at the start of root parsing. +- Error/null/empty behavior: invalid buffer/content/offset returns NULL. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: matches literal UTF-8 BOM bytes. + +## Direct Call Sites + +Exact source search found `JParseWithOpts` as the sole production caller. + +## Role In Callers + +`JParseWithOpts` chains this helper before whitespace skipping and root value parsing. + +## Tests Observed + +Parser-focused public tests exercise root parsing indirectly. No direct BOM-specific focused test was identified. + +## Graph Links + +- Graph node id: `function:n_cjson.c:888:_skip_utf8_bom` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L902__JParseWithOpts.md b/source-research/artifacts/functions/n_cjson_c__L902__JParseWithOpts.md new file mode 100644 index 00000000..553b1585 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L902__JParseWithOpts.md @@ -0,0 +1,60 @@ +# `JParseWithOpts` + +## Status + +Finalized. Source-inspected public configurable JSON parser. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:902` +- Declaration/interface: `n_cjson.h:188` +- Signature/API shape: `J *JParseWithOpts(const char *value, const char **return_parse_end, Jbool require_null_terminated)` +- Visibility: public cJSON/note-c JSON API +- Public/exported names: `JParseWithOpts` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:194:_jNew_Item` finalized + - `function:n_cjson.c:1129:_parse_value` finalized + - `function:n_cjson.c:870:_buffer_skip_whitespace` finalized + - `function:n_cjson.c:888:_skip_utf8_bom` finalized + - `macro:n_cjson.c:252:buffer_at_offset` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: `strlen` +- Data/type/global dependencies: `parse_buffer`, `global_error` + +## Behavior + +Resets the global parse error, rejects null input, initializes a parse buffer over the input including the trailing NUL, allocates a root item with `_jNew_Item`, and parses the root value after skipping an optional UTF-8 BOM and leading whitespace. If `require_null_terminated` is true, it skips trailing whitespace and requires the current byte to be NUL. On success it optionally stores `return_parse_end` at the current parse position and returns the root item. On failure it deletes any partial item, sets `return_parse_end` and `global_error` to the best known failure position, and returns NULL. + +## Important Boundaries + +- Preconditions and assumptions: `value` must be a NUL-terminated string. +- Error/null/empty behavior: null input or parse failure returns NULL and records error state when input is non-null. +- Ownership and lifetime: on success caller owns the returned tree and must delete it with `JDelete`; failure cleans up partial allocation. +- Concurrency/global state: writes `global_error`, so parse error reporting is process-global. +- Performance shape: linear in input size plus allocation for parsed nodes and strings. +- Portability/platform constraints: parser recursion is bounded by `N_CJSON_NESTING_LIMIT`. + +## Direct Call Sites + +Exact source search found production caller `JParse`; tests also call it through fakes in `NoteRequestResponseJSON_test.cpp`. + +## Role In Callers + +This is the full parser engine behind `JParse`; `_noteTransactionShouldLock` reaches it through `JParse` when parsing Notecard responses. + +## Tests Observed + +`NoteRequestResponseJSON_test.cpp` calls `JParseWithOpts` via a fake `JParse`; `JSON_number_handling_test.cpp`, `JPrintUnformatted_test.cpp`, `NoteTransaction_test.cpp`, and `NotePing_test.cpp` exercise it through `JParse`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:902:JParseWithOpts` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No production direct call with `require_null_terminated=true` was found in source search. diff --git a/source-research/artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md b/source-research/artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md new file mode 100644 index 00000000..890b77a8 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md @@ -0,0 +1,60 @@ +# `JGetErrorPtr` + +## Status + +Finalized. Source-inspected public parse-error pointer accessor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:91` +- Declaration/interface: `n_cjson.h:217` +- Public/exported names: `JGetErrorPtr` +- Macro aliases/wrappers: none found +- Signature/API shape: `const char *JGetErrorPtr(void)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: returns a borrowed pointer into the last parsed JSON buffer recorded by parser error state + +## Dependency Status + +- Project-local dependencies: +- No project-local callees. +- External/system dependencies: none +- Data/type/global dependencies: reads static `global_error.json` and `global_error.position` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `(const char *)(global_error.json + global_error.position)`, where `global_error` is the parser's static error location record. + +## Important Boundaries + +- Preconditions and assumptions: meaningful only after parse code has set `global_error`; parser success resets it to `{NULL, 0}`. +- Error/null/empty behavior: no guard for `global_error.json == NULL`; default/success state performs pointer arithmetic on a null base before returning. +- Ownership and lifetime: returned pointer is borrowed from the input buffer associated with parser state. +- Concurrency/global state: reads shared static parser error state with no synchronization. +- Portability/platform constraints: no platform-specific behavior beyond pointer arithmetic assumptions. +- Performance shape: O(1). +- Security or parsing constraints: no validation that the stored position is within the original buffer. + +## Direct Call Sites + +Exact source search found only comments, the public declaration in `n_cjson.h:217`, and the definition in `n_cjson.c:91`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public cJSON-compatible API for downstream callers to inspect the last parse error location. + +## Tests Observed + +None. Focused test search found no direct `JGetErrorPtr` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:91:JGetErrorPtr` +- Structured graph: `inventory/dependency-graph.json` +- Verified as a leaf with no project-local callees. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L96__JGetStringValue.md b/source-research/artifacts/functions/n_cjson_c__L96__JGetStringValue.md new file mode 100644 index 00000000..c3deb021 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L96__JGetStringValue.md @@ -0,0 +1,60 @@ +# `JGetStringValue` + +## Status + +Finalized. Source-inspected public string value accessor. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:96` +- Declaration/interface: `n_cjson.h:220` +- Public/exported names: `JGetStringValue` +- Macro aliases/wrappers: none found +- Signature/API shape: `char *JGetStringValue(J *item)` +- Visibility: public cJSON API function implemented in `n_cjson.c` +- Ownership/lifetime role: returns a borrowed pointer from the caller-owned item + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2713:JIsString` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `item->valuestring` +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `NULL` when `JIsString(item)` is false. Otherwise returns `item->valuestring`. + +## Important Boundaries + +- Preconditions and assumptions: caller may pass null or non-string items; the type predicate handles that check. +- Error/null/empty behavior: null item, non-string item, or string item with null `valuestring` returns `NULL`. +- Ownership and lifetime: returned pointer is borrowed from the JSON item; no allocation or ownership transfer. +- Concurrency/global state: no global state. +- Portability/platform constraints: no platform-specific behavior. +- Performance shape: O(1). +- Security or parsing constraints: does not copy or validate string storage. + +## Direct Call Sites + +Exact source search found only the public declaration in `n_cjson.h:220` and the definition in `n_cjson.c:96`. No production repository caller was found. + +## Role In Callers + +No repository caller role. Public cJSON-compatible accessor for downstream callers. + +## Tests Observed + +None. Focused test search found no direct `JGetStringValue` use. + +## Graph Links + +- Graph node id: `function:n_cjson.c:96:JGetStringValue` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `JIsString`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L976__JParse.md b/source-research/artifacts/functions/n_cjson_c__L976__JParse.md new file mode 100644 index 00000000..9fc1553c --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L976__JParse.md @@ -0,0 +1,55 @@ +# `JParse` + +## Status + +Finalized. Source-inspected public JSON parser wrapper. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:976` +- Declaration/interface: `n_cjson.h:187` +- Signature/API shape: `J *JParse(const char *value)` +- Visibility: public cJSON/note-c JSON API +- Public/exported names: `JParse`, macro alias `JConvertFromJSONString` in `n_cjson.h:311` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:902:JParseWithOpts` finalized +- External/system dependencies: none +- Data/type/global dependencies: caller-provided JSON text + +## Behavior + +Thin wrapper that returns `JParseWithOpts(value, 0, 0)`, accepting trailing non-NUL content according to the underlying parser's default mode. + +## Important Boundaries + +- Preconditions and assumptions: `value` must be a NUL-terminated JSON text string. +- Error/null/empty behavior: parse failure returns NULL through `JParseWithOpts`. +- Ownership and lifetime: on success caller owns the returned `J` tree and must call `JDelete`. +- Concurrency/global state: underlying parser updates `global_error`. +- Performance shape: follows `JParseWithOpts`. +- Portability/platform constraints: follows parser nesting and allocator behavior. + +## Direct Call Sites + +Exact source search found production callers in `NoteRequestResponseJSON`, `_noteTransactionShouldLock`, and `NotePing`, plus many focused tests. `n_cjson.h:311` aliases `JConvertFromJSONString` to this function. + +## Role In Callers + +`_noteTransactionShouldLock` uses `JParse` to turn Notecard response JSON into the returned `J` response tree and to classify parse failures as I/O-style corrupt responses. + +## Tests Observed + +`JSON_number_handling_test.cpp`, `JPrintUnformatted_test.cpp`, `NoteTransaction_test.cpp`, `NotePing_test.cpp`, and `NoteRequestResponseJSON_test.cpp` exercise this parser wrapper. + +## Graph Links + +- Graph node id: `function:n_cjson.c:976:JParse` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_c__L983__print.md b/source-research/artifacts/functions/n_cjson_c__L983__print.md new file mode 100644 index 00000000..22892afd --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_c__L983__print.md @@ -0,0 +1,59 @@ +# `_print` + +## Status + +Finalized. Source-inspected allocating JSON print entry. + +## Identity + +- Kind: function +- Definition: `n_cjson.c:983` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `unsigned char *_print(const J * const item, Jbool format, Jbool omitempty)` +- Visibility: internal to `n_cjson.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_cjson.c:1179:_print_value` finalized + - `function:n_cjson.c:400:_update_offset` finalized + - `macro:n_cjson.c:981:cjson_min` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: `memset`, `memcpy` +- Data/type/global dependencies: `printbuffer` fields, default initial buffer size `128` + +## Behavior + +Initializes a stack `printbuffer`, allocates a default 128-byte working buffer, records the requested formatted and omit-empty modes, and delegates value serialization to `_print_value`. After updating the offset, it allocates an exact-size result buffer of `offset + 1`, copies the bounded working-buffer content with `cjson_min(buffer->length, buffer->offset + 1)`, forcibly NUL-terminates the result, frees the working buffer, and returns the caller-owned result. Any allocation or print failure frees owned buffers and returns NULL. + +## Important Boundaries + +- Preconditions and assumptions: public wrappers perform null checks before calling; `_print` itself does not reject null `item` before `_print_value`. +- Error/null/empty behavior: allocation failure or `_print_value` failure returns NULL after cleanup. +- Ownership and lifetime: returns newly allocated JSON text that callers must free with the configured JSON free path; internal working buffer is always freed on success or failure. +- Concurrency/global state: allocator/free behavior follows the configured note-c hooks. +- Performance shape: starts with 128 bytes and grows through `_ensure`; final result is tightly sized. +- Portability/platform constraints: omit-empty behavior is entirely controlled by the `omitempty` flag carried in `printbuffer`. + +## Direct Call Sites + +Exact source search found direct production callers in `JPrint`, `JPrintUnformatted`, and `JPrintUnformattedOmitEmpty`; `NOTE_C_TEST` tests can call `_print` directly. + +## Role In Callers + +This is the allocating implementation behind public heap-returning JSON print APIs. `JPrintUnformatted` calls it with `format=false` and `omitempty=false`, which is the request serialization mode used by `_noteTransactionShouldLock`. + +## Tests Observed + +`JPrintUnformatted_test.cpp` and `JSON_number_handling_test.cpp` exercise `_print` through `JPrintUnformatted`. `NoteRequestResponseJSON_test.cpp` uses `_print(json, false, false)` inside a fake for `JPrintUnformatted`. + +## Graph Links + +- Graph node id: `function:n_cjson.c:983:_print` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for allocation failure, formatted heap printing, omit-empty heap printing, or direct `_print` failure cleanup. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md b/source-research/artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md new file mode 100644 index 00000000..2f026fdf --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md @@ -0,0 +1,54 @@ +# `JIntValue` + +## Status + +Finalized. Source-inspected integer field accessor. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:114` +- Declaration/interface: `note.h:1310` +- Signature/API shape: `JINTEGER JIntValue(J *item)` +- Visibility: public note-c JSON helper +- Public/exported names: `JIntValue` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `J.valueint` + +## Behavior + +Returns 0 for a null item. Otherwise returns the node's `valueint` field without checking the node type. + +## Important Boundaries + +- Preconditions and assumptions: callers that need type safety must check the item type first. +- Error/null/empty behavior: null item returns 0. +- Ownership and lifetime: no allocation; reads caller-owned node. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: value width follows `JINTEGER`. + +## Direct Call Sites + +Exact source search found `JGetInt` as the production caller. + +## Role In Callers + +`JGetInt` uses this helper after verifying the target field is a number. + +## Tests Observed + +`JIntValue_test.cpp` covers null input, non-integer/non-number object input returning the raw zero field, and a numeric node returning its integer value. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:114:JIntValue` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md b/source-research/artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md new file mode 100644 index 00000000..06207cbf --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md @@ -0,0 +1,57 @@ +# `JGetInt` + +## Status + +Finalized. Source-inspected object integer field accessor. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:122` +- Declaration/interface: `note.h:1266` +- Signature/API shape: `JINTEGER JGetInt(J *json, const char *field)` +- Visibility: public note-c JSON helper +- Public/exported names: `JGetInt` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2705:JIsNumber` finalized + - `function:n_cjson_helpers.c:114:JIntValue` finalized +- External/system dependencies: none +- Data/type/global dependencies: object field map/list semantics through `JGetObjectItem` + +## Behavior + +Returns 0 for null `json`, missing field, or a field whose item is not a number. Otherwise returns `JIntValue(item)`. + +## Important Boundaries + +- Preconditions and assumptions: `field` is passed through to `JGetObjectItem`; null field follows that helper's behavior. +- Error/null/empty behavior: all missing/wrong-type paths collapse to 0. +- Ownership and lifetime: no allocation; reads caller-owned JSON tree. +- Concurrency/global state: no global state. +- Performance shape: object lookup cost plus O(1) checks. +- Portability/platform constraints: returned width follows `JINTEGER`. + +## Direct Call Sites + +Exact source search found many production callers, including `_noteTransactionShouldLock` for request IDs, timeout calculation, environment helpers, user-agent tests, and helper APIs. + +## Role In Callers + +`_noteTransactionShouldLock` uses `JGetInt(req, "id")` so generated error response documents can preserve the request ID. + +## Tests Observed + +`JGetInt_test.cpp` covers null JSON, missing field, wrong type, and numeric field. `JSON_number_handling_test.cpp` covers integer bounds through parse and lookup. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:122:JGetInt` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test was inspected for null `field`. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md b/source-research/artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md new file mode 100644 index 00000000..d6581682 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md @@ -0,0 +1,65 @@ +# `JGetBool` + +## Status + +Finalized. Source-inspected JSON object boolean-field accessor, direct callers, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:137` +- Declaration/interface: `note.h:1278` +- Public/exported names: `JGetBool` +- Macro aliases/wrappers: none +- Signature/API shape: `bool JGetBool(J *json, const char *field)` +- Visibility: public note-c helper API +- Ownership/lifetime role: borrowed read of caller-owned object tree + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2690:JIsBool` finalized + - `function:n_cjson.c:2681:JIsTrue` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads object child pointer returned by `JGetObjectItem` +- Artifact coverage: source, declaration, direct callers, and focused tests inspected + +## Behavior + +Returns `false` when `json` is `NULL`, when `field` is missing, or when the looked-up item is not considered boolean by `JIsBool`. For a boolean item, returns `JIsTrue(item)`, so a false item returns `false` and a true item returns `true`. + +## Important Boundaries + +- Preconditions and assumptions: `field` may be `NULL`; the finalized `JGetObjectItem` path returns `NULL` for a null key. +- Error/null/empty behavior: null object, missing field, null field, and non-bool field all return `false`. +- Ownership and lifetime: no allocation; returns a scalar derived from a borrowed object child. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(number of object children * key length) for lookup, then O(1) type checks. +- Security or parsing constraints: depends on `JIsBool` accepting true/false bit presence before `JIsTrue` checks exact true base type. + +## Direct Call Sites + +Production callers found by exact source search: + +- `n_helpers.c:1352` `NoteIsConnectedST` reads `connected` from `hub.status`. +- `n_helpers.c:1665` `NoteGetStatusST` reads `usb` from `card.status`. +- `n_helpers.c:1666` `NoteGetStatusST` reads `connected` before deriving signal presence. + +## Role In Callers + +`NoteIsConnectedST` and `NoteGetStatusST` use missing, non-bool, and false values the same way at this layer: all produce `false`. Higher-level request-building tests also use `JGetBool` to inspect generated boolean fields. + +## Tests Observed + +`test/src/JGetBool_test.cpp` covers null JSON, missing field, non-bool field, and true bool lookup. Additional caller-focused request tests assert generated bool fields via `JGetBool`, including `NoteAdd_test.cpp`, `NoteFactoryReset_test.cpp`, `NoteSetSyncMode_test.cpp`, and `NoteSetUploadMode_test.cpp`. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:137:JGetBool` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused `JGetBool_test.cpp` case covers an explicit false value, null field name, or malformed boolean type bitmask. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md b/source-research/artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md new file mode 100644 index 00000000..7a9b9dfc --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md @@ -0,0 +1,56 @@ +# `JIsNullString` + +## Status + +Finalized. Source-inspected null-or-empty string field predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:152` +- Declaration/interface: public note-c JSON helper declaration +- Signature/API shape: `bool JIsNullString(J *json, const char *field)` +- Visibility: public note-c JSON helper +- Public/exported names: `JIsNullString` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2713:JIsString` finalized +- External/system dependencies: none +- Data/type/global dependencies: `J.valuestring` + +## Behavior + +Returns false for null JSON. Looks up `field`; a missing field returns true. A present non-string field returns false. A string field with null `valuestring` or first byte `'\0'` returns true; otherwise false. + +## Important Boundaries + +- Preconditions and assumptions: `field` is passed through to `JGetObjectItem`. +- Error/null/empty behavior: missing field is treated as null string, while null JSON is false. +- Ownership and lifetime: no allocation; reads caller-owned JSON tree. +- Concurrency/global state: no global state. +- Performance shape: object lookup plus O(1) field checks. +- Portability/platform constraints: field matching follows `JGetObjectItem`. + +## Direct Call Sites + +Exact source search found `NoteResponseError`, helpers, and tests use this predicate. + +## Role In Callers + +`NoteResponseError` negates this helper on the `"err"` field, so missing/blank errors are not errors and nonblank string errors are errors. + +## Tests Observed + +`JIsNullString_test.cpp` covers null JSON, missing field, non-string field, null valuestring, and empty string. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:152:JIsNullString` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md b/source-research/artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md new file mode 100644 index 00000000..eae05753 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md @@ -0,0 +1,62 @@ +# `JIsExactString` + +## Status + +Finalized. Source-inspected exact string-field predicate, direct caller, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:173` +- Declaration/interface: `note.h:1329` +- Public/exported names: `JIsExactString` +- Macro aliases/wrappers: none +- Signature/API shape: `bool JIsExactString(J *json, const char *field, const char *teststr)` +- Visibility: public note-c helper API +- Ownership/lifetime role: borrowed read of caller-owned object tree and comparison string + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2713:JIsString` finalized +- External/system dependencies: `strlen`, `strcmp` +- Data/type/global dependencies: reads object child `valuestring` +- Artifact coverage: source, declaration, direct caller, and focused tests inspected + +## Behavior + +Returns `false` when `json` is `NULL`, the field is absent, the item is not a string, the item's `valuestring` is `NULL`, or `teststr` is empty. Otherwise returns whether `strcmp(item->valuestring, teststr) == 0`. + +## Important Boundaries + +- Preconditions and assumptions: `teststr` must be non-null if execution reaches `strlen(teststr)`. +- Error/null/empty behavior: null object, missing/null field, non-string item, null item string, and empty `teststr` all return `false`. +- Ownership and lifetime: no allocation; reads borrowed object child and borrowed comparison string. +- Concurrency/global state: no global state. +- Portability/platform constraints: uses C library string functions. +- Performance shape: object lookup is O(number of children * key length); comparison is O(length of `teststr` plus compared value). +- Security or parsing constraints: exact byte-wise `strcmp`; no case folding or normalization. + +## Direct Call Sites + +Production caller found by exact source search: + +- `n_request.c:933` `NotePing` validates that an echo response `text` field exactly matches the generated nonce. + +## Role In Callers + +`NotePing` combines `JIsNullString(rsp, c_err)` with `JIsExactString(rsp, "text", nonce)` so a missing, non-string, null, empty-comparison, or mismatched text field fails the ping validation. + +## Tests Observed + +`test/src/JIsExactString_test.cpp` covers null JSON, missing field, non-string field, forced null `valuestring`, empty comparison string returning false, and exact match returning true. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:173:JIsExactString` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers `field == NULL`. There is also no guard or test for `teststr == NULL` after a valid string item; that path would reach `strlen(teststr)`. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md b/source-research/artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md new file mode 100644 index 00000000..73c846c3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md @@ -0,0 +1,56 @@ +# `JContainsString` + +## Status + +Finalized. Source-inspected string-substring field predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:194` +- Declaration/interface: `note.h:1339` +- Signature/API shape: `bool JContainsString(J *json, const char *field, const char *substr)` +- Visibility: public note-c JSON helper +- Public/exported names: `JContainsString`, macro alias `NoteResponseErrorContains` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2713:JIsString` finalized +- External/system dependencies: `strlen`, `strstr` +- Data/type/global dependencies: `J.valuestring` + +## Behavior + +Returns false for null JSON, missing field, non-string field, null `valuestring`, or empty `substr`. Otherwise returns whether `strstr(item->valuestring, substr)` finds a match. + +## Important Boundaries + +- Preconditions and assumptions: `substr` must be non-null; the function calls `strlen(substr)` without a null guard. +- Error/null/empty behavior: empty substring is rejected rather than treated as a match. +- Ownership and lifetime: no allocation; reads caller-owned JSON tree and substring. +- Concurrency/global state: no global state. +- Performance shape: object lookup plus substring search. +- Portability/platform constraints: bytewise C string search, case-sensitive. + +## Direct Call Sites + +Exact source search found callers in `_noteTransactionShouldLock` for user-agent gating and response classification, request/response retry tests, and public response-error helper macros. + +## Role In Callers + +The transaction path uses it to detect API names such as `hub.set`, classify response errors like `{io}`, `{bad-bin}`, `{unsupported}`, and `{heartbeat}`, and preserve retry behavior. + +## Tests Observed + +`JContainsString_test.cpp` covers null JSON, missing field, wrong type, null value string, empty substring, and successful substring match. Transaction tests exercise error classification indirectly. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:194:JContainsString` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test was inspected for null `field` or null `substr`. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md b/source-research/artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md new file mode 100644 index 00000000..2a96cf13 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md @@ -0,0 +1,55 @@ +# `JIsPresent` + +## Status + +Finalized. Source-inspected object field presence predicate. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:19` +- Declaration/interface: `note.h:1196` +- Signature/API shape: `bool JIsPresent(J *json, const char *field)` +- Visibility: public note-c JSON helper +- Public/exported names: `JIsPresent` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized +- External/system dependencies: none +- Data/type/global dependencies: object field lookup semantics through `JGetObjectItem` + +## Behavior + +Returns false for null JSON. Otherwise returns whether `JGetObjectItem(json, field)` returns a non-null item. + +## Important Boundaries + +- Preconditions and assumptions: `field` is passed through to `JGetObjectItem`; null field follows that helper's behavior. +- Error/null/empty behavior: null JSON or missing field return false. +- Ownership and lifetime: no allocation; reads caller-owned JSON tree. +- Concurrency/global state: no global state. +- Performance shape: object lookup cost. +- Portability/platform constraints: field matching follows `JGetObjectItem` case-insensitive behavior. + +## Direct Call Sites + +Exact source search found production callers in `_noteTransactionShouldLock`, helper JSON assembly, and focused error-document tests. + +## Role In Callers + +The transaction path uses `JIsPresent` to gate user-agent injection on absence of `body` and presence of `product`; it also uses related presence checks in raw JSON helper paths. + +## Tests Observed + +`JIsPresent_test.cpp` covers null JSON, null field, missing field, and present field. `_errDoc_test.cpp` also checks generated error document ID presence. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:19:JIsPresent` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md b/source-research/artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md new file mode 100644 index 00000000..2caf5efc --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md @@ -0,0 +1,65 @@ +# `JAddBinaryToObject` + +## Status + +Finalized. Source-inspected Base64 JSON-field writer, ownership paths, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:215` +- Declaration/interface: `note.h:1351` +- Public/exported names: `JAddBinaryToObject` +- Macro aliases/wrappers: none +- Signature/API shape: `bool JAddBinaryToObject(J *json, const char *fieldName, const void *binaryData, uint32_t binaryDataLen)` +- Visibility: public note-c helper API +- Ownership/lifetime role: transfers an allocated Base64 string into a JSON string item on success + +## Dependency Status + +- Project-local dependencies: + - `function:n_b64.c:169:JB64EncodeLen` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_b64.c:174:JB64Encode` finalized + - `function:n_cjson.c:2374:JCreateStringValue` finalized + - `macro:n_lib.h:242:_Free` finalized + - `function:n_cjson.c:1866:JAddItemToObject` finalized + - `function:n_cjson_helpers.c:19:JIsPresent` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: allocator hooks behind `_Malloc`/`_Free` +- Artifact coverage: source, declaration, caller search, ownership paths, and focused tests inspected + +## Behavior + +Returns `false` immediately for `json == NULL`. Otherwise computes the encoded length with `JB64EncodeLen`, allocates a string buffer, Base64-encodes `binaryData`, wraps the allocated buffer with `JCreateStringValue`, adds that item to the object with `JAddItemToObject`, and returns `JIsPresent(json, fieldName)`. + +## Important Boundaries + +- Preconditions and assumptions: `binaryData` must be valid for `binaryDataLen > 0`; `JB64Encode` dereferences it in that case. +- Error/null/empty behavior: allocation failure returns `false`; `JCreateStringValue` failure frees the encoded buffer and returns `false`; null `fieldName` flows to `JAddItemToObject`, which deletes the item, and `JIsPresent` reports false. +- Ownership and lifetime: the encoded buffer is `_Malloc` memory. `JCreateStringValue` adopts the pointer as `valuestring` without copying, and successful object insertion makes the JSON tree responsible for freeing it. If object insertion fails, `JAddItemToObject` deletes the item, which frees non-reference `valuestring`. +- Concurrency/global state: uses process-global allocator hooks through `_Malloc`/`_Free`. +- Portability/platform constraints: pure C helper layered on local Base64 and JSON utilities. +- Performance shape: O(binaryDataLen) encode plus object insertion/lookup cost. +- Security or parsing constraints: no input validation beyond pointer/length assumptions; the function verifies addition by presence of the field, not by comparing encoded contents. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes Base64 field creation for public API users. + +## Tests Observed + +`test/src/JAddBinaryToObject_test.cpp` covers null JSON, allocation failure, `JCreateStringValue` failure, and successful encode/decode round trip. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:215:JAddBinaryToObject` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers null `fieldName`, null `binaryData`, zero-length binary input, or insertion failure after `JCreateStringValue` succeeds. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md b/source-research/artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md new file mode 100644 index 00000000..6becf85b --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md @@ -0,0 +1,66 @@ +# `JGetBinaryFromObject` + +## Status + +Finalized. Source-inspected Base64 JSON-field reader, direct payload mode, ownership paths, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:235` +- Declaration/interface: `note.h:1371` +- Public/exported names: `JGetBinaryFromObject` +- Macro aliases/wrappers: none +- Signature/API shape: `bool JGetBinaryFromObject(J *json, const char *fieldName, uint8_t **retBinaryData, uint32_t *retBinaryDataLen)` +- Visibility: public note-c helper API +- Ownership/lifetime role: allocates caller-owned decoded buffer on success + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_b64.c:106:JB64DecodeLen` finalized + - `function:n_b64.c:121:JB64Decode` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: allocator hooks behind `_Malloc` +- Artifact coverage: source, declaration, caller search, ownership paths, and focused tests inspected + +## Behavior + +Initializes `*retBinaryData` to `NULL` and `*retBinaryDataLen` to zero before checking `json`. If `json` is `NULL`, returns `false`. If `fieldName` is `NULL`, treats `json` itself as a Base64 payload string pointer. Otherwise retrieves the named string field with `JGetString`. Empty payloads return `false`. Non-empty payloads allocate `JB64DecodeLen(payload) + 1`, decode with `JB64Decode`, append a convenience NUL byte after the decoded data, store the output pointer and decoded length, and return `true`. + +## Important Boundaries + +- Preconditions and assumptions: `retBinaryData` and `retBinaryDataLen` must be valid output pointers because the function writes through them before validation. In direct payload mode, `json` must actually be a valid C string pointer cast to `J *`. +- Error/null/empty behavior: null `json`, missing/non-string/null string field through `JGetString`, empty payload, and allocation failure return `false` with outputs left null/zero. +- Ownership and lifetime: successful output buffer is `_Malloc` memory owned by the caller and freed with `JFree`/`NoteFree`. +- Concurrency/global state: uses process-global allocator hooks through `_Malloc`. +- Portability/platform constraints: pure C helper layered on local Base64 and JSON utilities. +- Performance shape: O(encoded payload length) decode plus optional object lookup. +- Security or parsing constraints: invalid Base64 is not explicitly rejected; the local decoder stops at the first non-Base64 character and returns the decoded prefix length. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes Base64 field decoding and direct payload-string decoding for public API users. + +## Tests Observed + +`test/src/JGetBinaryFromObject_test.cpp` covers null JSON, empty string field, allocation failure, successful named-field decode, and successful direct payload-string mode. + +## Test Coverage Notes + +Focused tests do not cover null output pointers, absent field, non-string field, invalid Base64, or direct payload mode with an invalid/non-string pointer. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:235:JGetBinaryFromObject` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L276__JGetItemName.md b/source-research/artifacts/functions/n_cjson_helpers_c__L276__JGetItemName.md new file mode 100644 index 00000000..3e11afb3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L276__JGetItemName.md @@ -0,0 +1,58 @@ +# `JGetItemName` + +## Status + +Finalized. Source-inspected JSON item name accessor, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:276` +- Declaration/interface: `note.h:1379` +- Public/exported names: `JGetItemName` +- Macro aliases/wrappers: none +- Signature/API shape: `const char *JGetItemName(const J * item)` +- Visibility: public note-c helper API +- Ownership/lifetime role: returns borrowed item key pointer or static empty string + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `J.string` +- Artifact coverage: source, declaration, caller search, and focused tests inspected + +## Behavior + +Returns `""` when `item` is `NULL` or `item->string` is `NULL`; otherwise returns `item->string`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null item and unnamed item both return the empty string. +- Ownership and lifetime: non-empty return aliases the JSON item key and must not be freed by the caller or retained past item/tree deletion. +- Concurrency/global state: no mutable global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: no validation or copying of the key string. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes item key access for public API users. + +## Tests Observed + +`test/src/JGetItemName_test.cpp` covers null item, unnamed object item, and a valid named object child. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:276:JGetItemName` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers lifetime/aliasing behavior or const-key items. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L27__JGetString.md b/source-research/artifacts/functions/n_cjson_helpers_c__L27__JGetString.md new file mode 100644 index 00000000..85a58967 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L27__JGetString.md @@ -0,0 +1,61 @@ +# `JGetString` + +## Status + +Finalized. Source-inspected JSON object string-field accessor. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:27` +- Declaration/interface: `note.h:1210` +- Signature/API shape: `char *JGetString(J *json, const char *field)` +- Visibility: public helper declaration in `note.h`, implemented in `n_cjson_helpers.c` +- Public/exported names: `JGetString` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2713:JIsString` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: reads the target JSON object's child list and string value pointer + +## Behavior + +Returns `c_nullstring` when `json` is `NULL`, the field is absent, the field is not a string, or the field's `valuestring` is `NULL`. Otherwise returns the field's `valuestring` pointer. + +## Important Boundaries + +- Preconditions and assumptions: returned non-empty pointer is borrowed from the JSON object; caller must not use it after the object is deleted. +- Error/null/empty behavior: missing/non-string/null-value cases all collapse to the shared empty string. +- Ownership and lifetime: returns borrowed memory or shared constant empty string; does not allocate or copy. +- Concurrency/global state: reads `c_nullstring` constant and JSON object state. +- Performance shape: O(number of object children * key length). + +## Direct Call Sites + +Exact source search found broad production fanout: + +- Request routing/error handling in `n_request.c`. +- Binary store helpers, time/location/env/status/service/contact/payload/debug helpers in `n_helpers.c`. +- Binary/base64 helper in `n_cjson_helpers.c`. + +## Role In Callers + +In the active receive path, `NoteBinaryStoreReceive` calls `JGetString(rsp, "err")` for transaction error logging and `JGetString(rsp, "status")` to copy the expected MD5 string before receiving binary data. + +## Tests Observed + +None. No focused direct `JGetString` test was inspected in this slice. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:27:JGetString` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JGetObjectItem` and `JIsString`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L284__JItoA.md b/source-research/artifacts/functions/n_cjson_helpers_c__L284__JItoA.md new file mode 100644 index 00000000..531d9b4a --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L284__JItoA.md @@ -0,0 +1,60 @@ +# `JItoA` + +## Status + +Finalized. Source-inspected signed integer to decimal string helper. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:284` +- Declaration/interface: `note.h:1473` +- Signature/API shape: `void JItoA(JINTEGER n, char *s)` +- Visibility: public header declaration, implemented in `n_cjson_helpers.c` +- Public/exported names: `JItoA` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `strlen` +- Data/type/global dependencies: writes caller-provided string buffer; no global state + +## Behavior + +Converts a signed `JINTEGER` to a decimal C string. Negative values are converted through a `JUINTEGER` temporary so `JINTEGER_MIN` can be negated without signed overflow. Digits are emitted in reverse order, an optional minus sign is appended, the string is NUL-terminated, then the buffer is reversed in place. + +## Important Boundaries + +- Preconditions and assumptions: caller must provide enough writable buffer space for the decimal representation and NUL terminator. +- Error/null/empty behavior: no null or bounds checks. +- Ownership and lifetime: writes caller memory and allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: explicitly handles the minimum signed integer case by using unsigned arithmetic. +- Performance shape: O(number of digits). + +## Direct Call Sites + +Exact source search found production callers: + +- `n_cjson.c:412` uses `JItoA` in numeric printing. +- `n_helpers.c:1235` and `n_helpers.c:1281` use it for environment integer helpers. +- `n_hooks.c:453` uses it in `NoteDebugIntln`. +- `n_hooks.c:580` uses it in `NoteMalloc` debug logging. + +## Role In Callers + +In the active allocator slice, `NoteMalloc` uses `JItoA` only when `NOTE_C_SHOW_MALLOC && !NOTE_C_LOW_MEM` and debug output is active, converting allocation size to printable text. + +## Tests Observed + +None. No focused direct test was inspected for this helper. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:284:JItoA` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md b/source-research/artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md new file mode 100644 index 00000000..b4aa065b --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md @@ -0,0 +1,54 @@ +# `JAtoI` + +## Status + +Finalized. Source-inspected decimal string to `JINTEGER` helper. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:312` +- Declaration/interface: `note.h:1481` +- Signature/API shape: `JINTEGER JAtoI(const char *string)` +- Visibility: public note-c JSON helper +- Public/exported names: `JAtoI` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `JINTEGER` + +## Behavior + +Skips leading space characters, handles optional `-` or `+`, accumulates base-10 digits until the first non-digit byte, applies the sign, and returns the result. + +## Important Boundaries + +- Preconditions and assumptions: `string` must be non-null. +- Error/null/empty behavior: no error channel; strings without leading digits after optional sign return 0. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: linear over leading sign/space and digit run. +- Portability/platform constraints: no overflow detection; wrap/overflow behavior follows C integer arithmetic for `JINTEGER`. + +## Direct Call Sites + +Exact source search found `_parse_number` as the production caller. + +## Role In Callers + +`_parse_number` uses `JAtoI` to populate `item->valueint` for non-saturated numeric JSON values after `JAtoN` has parsed the floating value. + +## Tests Observed + +`JAtoI_test.cpp` covers zero, positive numbers, leading zeros/spaces, plus sign, trailing spaces after digits, and negative values. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:312:JAtoI` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md b/source-research/artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md new file mode 100644 index 00000000..e38895a4 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md @@ -0,0 +1,59 @@ +# `JAllocString` + +## Status + +Finalized. Source-inspected byte-buffer-to-string allocator, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:342` +- Declaration/interface: `note.h:1390` +- Public/exported names: `JAllocString` +- Macro aliases/wrappers: none +- Signature/API shape: `char *JAllocString(uint8_t *buffer, uint32_t len)` +- Visibility: public note-c helper API +- Ownership/lifetime role: returns caller-owned allocated C string + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: allocator hooks behind `_Malloc` +- Artifact coverage: source, declaration, caller search, and focused tests inspected + +## Behavior + +Allocates `len + 1` bytes, returns `NULL` on allocation failure, copies `len` bytes from `buffer` only when `len > 0`, writes a trailing NUL byte at `buf[len]`, and returns the allocated buffer. + +## Important Boundaries + +- Preconditions and assumptions: `buffer` must be valid when `len > 0`; `buffer == NULL && len > 0` reaches `memcpy`. +- Error/null/empty behavior: allocation failure returns `NULL`; zero length returns an allocated empty string when allocation succeeds. +- Ownership and lifetime: returned buffer is `_Malloc` memory owned by the caller and freed with `JFree`/`NoteFree`. +- Concurrency/global state: uses process-global allocator hooks through `_Malloc`. +- Portability/platform constraints: pure C helper. +- Performance shape: O(len) copy. +- Security or parsing constraints: does not check `len + 1` overflow and does not treat embedded NUL bytes specially. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes byte-buffer copying into NUL-terminated storage for public API users. + +## Tests Observed + +`test/src/JAllocString_test.cpp` covers zero length, allocation failure, and positive-length copy with terminator. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:342:JAllocString` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers null `buffer`, embedded NUL bytes, or `len + 1` overflow. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L355__JType.md b/source-research/artifacts/functions/n_cjson_helpers_c__L355__JType.md new file mode 100644 index 00000000..7036d5ca --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L355__JType.md @@ -0,0 +1,58 @@ +# `JType` + +## Status + +Finalized. Source-inspected JSON item type-name mapper, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:355` +- Declaration/interface: `note.h:1398` +- Public/exported names: `JType` +- Macro aliases/wrappers: none +- Signature/API shape: `const char *JType(J *item)` +- Visibility: public note-c helper API +- Ownership/lifetime role: returns pointers to static string literals + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `J.type` and public JSON type constants +- Artifact coverage: source, declaration, caller search, and focused tests inspected + +## Behavior + +Returns `""` for `NULL` input. Otherwise switches on `item->type & 0xff`, ignoring high-bit item flags. `JTrue` and `JFalse` map to `"bool"`, `JNULL` to `"null"`, `JNumber` to `"number"`, `JRaw` and `JString` to `"string"`, `JObject` to `"object"`, `JArray` to `"array"`, and all other base types to `"invalid"`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null item returns `""`; invalid or unknown base types return `"invalid"`. +- Ownership and lifetime: returned strings are static literals and must not be freed. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: type flags are masked out before mapping. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes human-readable base type names for public API users. + +## Tests Observed + +`test/src/JType_test.cpp` covers null item, invalid item, true and false bools, number, string, raw-as-string, object, and array. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:355:JType` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers `JNULL` or proves high-bit flags are masked. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L379__JGetType.md b/source-research/artifacts/functions/n_cjson_helpers_c__L379__JGetType.md new file mode 100644 index 00000000..89d12b33 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L379__JGetType.md @@ -0,0 +1,60 @@ +# `JGetType` + +## Status + +Finalized. Source-inspected JSON object field type-code accessor, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:379` +- Declaration/interface: `note.h:1423` +- Public/exported names: `JGetType` +- Macro aliases/wrappers: none +- Signature/API shape: `int JGetType(J *json, const char *field)` +- Visibility: public note-c helper API +- Ownership/lifetime role: borrowed read of caller-owned object tree + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson_helpers.c:387:JGetItemType` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: object child list and detailed `JTYPE_*` constants +- Artifact coverage: source, declaration, caller search, and focused tests inspected + +## Behavior + +Returns `JTYPE_NOT_PRESENT` when `json == NULL` or `field == NULL`. Otherwise performs a case-insensitive object lookup with `JGetObjectItem(json, field)` and returns `JGetItemType` for that item. Missing fields therefore also return `JTYPE_NOT_PRESENT`. + +## Important Boundaries + +- Preconditions and assumptions: non-null `json` must point to a valid object tree. +- Error/null/empty behavior: null object, null field, and missing field return `JTYPE_NOT_PRESENT`. +- Ownership and lifetime: no allocation; reads borrowed object child. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: object lookup is O(number of children * key length), followed by `JGetItemType` classification. +- Security or parsing constraints: detailed classification is delegated to `JGetItemType`, including numeric and boolean string detection. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes detailed type classification for fields in public API users' JSON objects. + +## Tests Observed + +`test/src/JGetType_test.cpp` covers null JSON, null field, missing field, true and false booleans, zero and non-zero numbers, string and raw blank/null/numeric/bool/plain strings, object, array, and invalid item behavior. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:379:JGetType` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers `JTYPE_NULL`, case-insensitive field lookup, masked item flags, or mixed-case boolean strings beyond all-lowercase/all-uppercase cases. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md b/source-research/artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md new file mode 100644 index 00000000..d9bf7c54 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md @@ -0,0 +1,55 @@ +# `JGetItemType` + +## Status + +Finalized. Source-inspected detailed JSON item type classifier. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:387` +- Declaration/interface: `note.h:1431` +- Signature/API shape: `int JGetItemType(J *item)` +- Visibility: public C SDK helper +- Public/exported names: `JGetItemType` + +## Dependency Status + +- Project-local dependencies: + - `function:n_atof.c:71:JAtoN` finalized +- External/system dependencies: `strlen` +- Data/type/global dependencies: `J.type`, `J.valueint`, `J.valuenumber`, `J.valuestring`, `JTYPE_*` constants + +## Behavior + +Returns `JTYPE_NOT_PRESENT` for a null item or an unknown base type. Boolean, null, object, and array nodes map directly to their detailed type constants. Number nodes are classified as `JTYPE_NUMBER_ZERO` only when both `valueint` and `valuenumber` are zero; otherwise they are `JTYPE_NUMBER`. String and raw nodes with null or empty `valuestring` are `JTYPE_STRING_BLANK`; otherwise the helper calls `JAtoN` and classifies the value as `JTYPE_STRING_ZERO` or `JTYPE_STRING_NUMBER` only when the conversion consumes the full string. Remaining string values are checked case-insensitively for literal `true` or `false` before falling back to `JTYPE_STRING`. + +## Important Boundaries + +- Preconditions and assumptions: accepts null item; string classification assumes `valuestring` is NUL-terminated when non-null. +- Error/null/empty behavior: null item and invalid base type return `JTYPE_NOT_PRESENT`. +- Ownership and lifetime: no allocation; reads fields from caller-owned `J`. +- Concurrency/global state: no global state. +- Performance shape: O(length of string/raw value) for string-like nodes. +- Portability/platform constraints: numeric string classification follows `JAtoN` and therefore `JNUMBER` precision. + +## Direct Call Sites + +Exact source search found direct production callers in `JGetType`, `_last_non_omitted_object`, and `_print_object`. + +## Role In Callers + +`JGetType` exposes field-type classification. The object printer uses `JGetItemType` for omit-empty decisions and for look-ahead that suppresses trailing commas after omitted fields. + +## Tests Observed + +`JGetType_test.cpp` exercises this through `JGetType` for null/missing fields, booleans, number zero/nonzero, blank strings, numeric strings, boolean strings, objects, arrays, and invalid nodes. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:387:JGetItemType` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test was inspected for direct `JGetItemType` calls, mixed numeric suffix strings, leading-space numeric strings, or omit-empty printing through this helper. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md b/source-research/artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md new file mode 100644 index 00000000..5d06f45e --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md @@ -0,0 +1,58 @@ +# `JBaseItemType` + +## Status + +Finalized. Source-inspected detailed-to-base JSON type-code mapper, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:446` +- Declaration/interface: `note.h:1439` +- Public/exported names: `JBaseItemType` +- Macro aliases/wrappers: none +- Signature/API shape: `int JBaseItemType(int type)` +- Visibility: public note-c helper API +- Ownership/lifetime role: pure scalar mapping + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: public `JTYPE_*` constants +- Artifact coverage: source, declaration, caller search, and focused tests inspected + +## Behavior + +Coalesces detailed type codes to base codes: `JTYPE_BOOL_TRUE` and `JTYPE_BOOL_FALSE` return `JTYPE_BOOL`; `JTYPE_NUMBER_ZERO` returns `JTYPE_NUMBER`; `JTYPE_STRING_BLANK`, `JTYPE_STRING_ZERO`, `JTYPE_STRING_NUMBER`, `JTYPE_STRING_BOOL_TRUE`, and `JTYPE_STRING_BOOL_FALSE` return `JTYPE_STRING`. All other input integers return unchanged. + +## Important Boundaries + +- Preconditions and assumptions: input is an integer type code, but unknown values are allowed. +- Error/null/empty behavior: no error path; unmapped values pass through unchanged. +- Ownership and lifetime: no allocation or borrowed data. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: no validation of whether the integer is a known `JTYPE_*` constant. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes detailed-to-base type coalescing for public API users. + +## Tests Observed + +`test/src/JBaseItemType_test.cpp` covers boolean true/false coalescing, number-zero coalescing, all detailed string variants, and passthrough for base bool, number, string, array, and object. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:446:JBaseItemType` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers `JTYPE_NOT_PRESENT`, `JTYPE_NULL`, or unknown integer passthrough. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md b/source-research/artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md new file mode 100644 index 00000000..163e35b3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md @@ -0,0 +1,60 @@ +# `JGetArray` + +## Status + +Finalized. Source-inspected JSON object array-field accessor, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:45` +- Declaration/interface: `note.h:1238` +- Public/exported names: `JGetArray` +- Macro aliases/wrappers: none +- Signature/API shape: `J *JGetArray(J *json, const char *field)` +- Visibility: public note-c helper API +- Ownership/lifetime role: returns borrowed array child from caller-owned object tree + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1732:JGetObjectItem` finalized + - `function:n_cjson.c:2721:JIsArray` finalized +- External/system dependencies: none +- Data/type/global dependencies: object child list and `J.type` +- Artifact coverage: source, declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns `NULL` when `json` is `NULL`, when the named field is absent, or when the item exists but is not an array. Otherwise returns the looked-up `J *` item directly. + +## Important Boundaries + +- Preconditions and assumptions: `field` may be `NULL`; the finalized `JGetObjectItem` path returns `NULL` for a null key. +- Error/null/empty behavior: null object, missing/null field, and wrong type return `NULL`. +- Ownership and lifetime: returned pointer is borrowed from the parent JSON object and becomes invalid when the parent tree is deleted. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(number of object children * key length) lookup, then O(1) type check. +- Security or parsing constraints: accepts only items whose base type passes `JIsArray`. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes a typed borrowed-array lookup for users of the public API. + +## Tests Observed + +`test/src/JGetArray_test.cpp` covers null JSON, missing field, wrong-type field, and valid array lookup. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:45:JGetArray` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers `field == NULL`. No production caller was found. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md b/source-research/artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md new file mode 100644 index 00000000..6cbfca34 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md @@ -0,0 +1,60 @@ +# `JGetObject` + +## Status + +Final. Behavior, declaration, direct call sites, null/type handling, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:60` +- Declaration/interface: `note.h:1252` +- Public/exported names: `JGetObject` +- Macro aliases/wrappers: `NoteGetBody(a)` expands to `JGetObject(a, "body")` at `note.h:324` +- Signature/API shape: `J *JGetObject(J *json, const char *field)` +- Visibility: public helper API +- Ownership/lifetime role: borrowed child lookup; ownership remains with the parent JSON tree + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:1732:JGetObjectItem` (calls, verified) +- `function:n_cjson.c:2729:JIsObject` (calls, verified) +- External/system dependencies: none +- Data/type/global dependencies: none +- Artifact coverage: generated artifact exists + +## Behavior + +Looks up a named child and returns it only if it exists and is a JSON object. Returns `NULL` when the parent is `NULL`, the field is missing, or the found item is not an object. + +## Important Boundaries + +- Preconditions and assumptions: `json` should be a valid object tree for successful lookup +- Error/null/empty behavior: `NULL` parent, missing field, and wrong type all return `NULL`; `field` handling is delegated to `JGetObjectItem` +- Ownership and lifetime: returns a borrowed pointer into `json`; caller must not delete it independently unless intentionally detaching elsewhere +- Concurrency/global state: no global state +- Portability/platform constraints: none +- Performance shape: object-member lookup cost plus a type check +- Security or parsing constraints: no parsing; trusts the JSON tree structure supplied by callers + +## Direct Call Sites + +Verified direct production caller: `n_helpers.c:2366` in `NoteDebugSyncStatus`. Macro alias `NoteGetBody(a)` in `note.h:324` also exposes body lookup. Focused direct test callers are in `test/src/JGetObject_test.cpp`. + +## Role In Callers + +Typed getter used by higher-level helpers to avoid treating non-object fields as object bodies. + +## Tests Observed + +`test/src/JGetObject_test.cpp` covers `NULL` parent, missing field, wrong-type field, and valid object field. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:60:JGetObject` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +None for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L75__JBoolValue.md b/source-research/artifacts/functions/n_cjson_helpers_c__L75__JBoolValue.md new file mode 100644 index 00000000..9cf143e3 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L75__JBoolValue.md @@ -0,0 +1,58 @@ +# `JBoolValue` + +## Status + +Finalized. Source-inspected JSON item boolean-value accessor, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:75` +- Declaration/interface: `note.h:1302` +- Public/exported names: `JBoolValue` +- Macro aliases/wrappers: none +- Signature/API shape: `bool JBoolValue(J *item)` +- Visibility: public note-c helper API +- Ownership/lifetime role: borrowed read of caller-owned item + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `J.type` +- Artifact coverage: source, declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns `false` when `item` is `NULL`. Otherwise masks `item->type` with `0xff` and returns true only when the base type is exactly `JTrue`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null, false, and non-true types all return `false`. +- Ownership and lifetime: no allocation; reads caller-owned item. +- Concurrency/global state: no global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: exact true base-type check after masking flags. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes scalar bool extraction for users that already hold a `J *` item. + +## Tests Observed + +`test/src/JBoolValue_test.cpp` covers null item, false item, true item, and non-bool number item. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:75:JBoolValue` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers malformed or mixed boolean type bits. No production caller was found. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L83__JStringValue.md b/source-research/artifacts/functions/n_cjson_helpers_c__L83__JStringValue.md new file mode 100644 index 00000000..683ad675 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L83__JStringValue.md @@ -0,0 +1,58 @@ +# `JStringValue` + +## Status + +Finalized. Source-inspected JSON item string-value accessor, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:83` +- Declaration/interface: `note.h:1294` +- Public/exported names: `JStringValue` +- Macro aliases/wrappers: none +- Signature/API shape: `char *JStringValue(J *item)` +- Visibility: public note-c helper API +- Ownership/lifetime role: returns borrowed `valuestring` pointer from caller-owned item + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `J.valuestring` +- Artifact coverage: source, declaration, direct caller search, and focused tests inspected + +## Behavior + +Returns a pointer to the literal empty string when `item` is `NULL`. For non-null input, returns `item->valuestring` directly without checking the item type and without replacing a null `valuestring`. + +## Important Boundaries + +- Preconditions and assumptions: non-null input must point to a valid `J`. +- Error/null/empty behavior: null item returns `""`; non-null item with null `valuestring` returns `NULL`. +- Ownership and lifetime: returned pointer is borrowed from the item, except the null-item fallback points to static string storage. +- Concurrency/global state: no mutable global state. +- Portability/platform constraints: none. +- Performance shape: O(1). +- Security or parsing constraints: this is a raw field accessor, not a string-type validator. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This helper exposes raw item string extraction for users that already hold a `J *` item. + +## Tests Observed + +`test/src/JStringValue_test.cpp` covers null item returning `""`, number item returning `NULL`, and valid string item returning the stored string. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:83:JStringValue` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test forces a string-typed item to have `valuestring == NULL`. No production caller was found. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md b/source-research/artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md new file mode 100644 index 00000000..3ba28895 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md @@ -0,0 +1,63 @@ +# `JNumberValue` + +## Status + +Finalized. Source-inspected JSON item numeric value helper, declaration, direct caller, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:91` +- Declaration/interface: `note.h:1286` +- Public/exported names: `JNumberValue` +- Macro aliases/wrappers: none +- Signature/API shape: `JNUMBER JNumberValue(J *item)` +- Visibility: public note-c JSON helper declared in `note.h` +- Ownership/lifetime role: borrowed read of caller-owned JSON node + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `J.valuenumber` +- Artifact coverage: implementation, public declaration, direct caller, and focused tests inspected + +## Behavior + +Returns `0.0` for a null item. For any non-null item, returns `item->valuenumber` directly. + +## Important Boundaries + +- Preconditions and assumptions: non-null `item` must point to a valid `J` node. This helper does not check the node type. +- Error/null/empty behavior: null item returns `0.0`; non-number nodes return whatever `valuenumber` contains, which is normally zero for constructors that do not set a numeric value. +- Ownership and lifetime: no allocation or ownership transfer; reads caller-owned node. +- Concurrency/global state: no global state. +- Portability/platform constraints: numeric precision follows the configured `JNUMBER` type. +- Performance shape: O(1). +- Security or parsing constraints: callers that require type safety must check `JIsNumber` before using this helper. + +## Direct Call Sites + +Exact source search found direct production caller: + +- `n_cjson_helpers.c:111` `JGetNumber` returns the numeric field value after object lookup and type check. + +Additional test/HITL sources call this helper directly, but no other production code does. + +## Role In Callers + +`JGetNumber` uses this as the final value read after it has verified that the requested field exists and is a JSON number. + +## Tests Observed + +Focused `test/src/JNumberValue_test.cpp` covers null input, a string item returning zero, and a valid number returning its stored `JNUMBER`. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:91:JNumberValue` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edge from `JGetNumber`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md b/source-research/artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md new file mode 100644 index 00000000..f474ed67 --- /dev/null +++ b/source-research/artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md @@ -0,0 +1,66 @@ +# `JGetNumber` + +## Status + +Finalized. Source-inspected JSON object numeric field helper, dependency chain, direct production callers, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_cjson_helpers.c:99` +- Declaration/interface: `note.h:1224` +- Public/exported names: `JGetNumber` +- Macro aliases/wrappers: none +- Signature/API shape: `JNUMBER JGetNumber(J *json, const char *field)` +- Visibility: public note-c JSON helper declared in `note.h` +- Ownership/lifetime role: borrowed read of a field in caller-owned JSON object + +## Dependency Status + +- Project-local dependencies: +- `function:n_cjson.c:1732:JGetObjectItem` finalized +- `function:n_cjson.c:2705:JIsNumber` finalized +- `function:n_cjson_helpers.c:91:JNumberValue` finalized in this slice +- External/system dependencies: none +- Data/type/global dependencies: reads JSON object child list and number value +- Artifact coverage: implementation, public declaration, dependencies, direct callers, and focused tests inspected + +## Behavior + +Returns `0.0` when `json` is null, when `field` is missing, or when the field exists but is not a JSON number. Otherwise, it returns `JNumberValue(item)` for the located field. + +## Important Boundaries + +- Preconditions and assumptions: `json` should be a JSON object for object-field lookup semantics; `field` is forwarded to `JGetObjectItem`, whose lower lookup returns null for null names. +- Error/null/empty behavior: null object, missing field, null field name, and non-number field all return `0.0`, making missing and zero-valued numeric fields indistinguishable from the return value alone. +- Ownership and lifetime: returns a numeric value only; it borrows the located child and does not allocate or transfer ownership. +- Concurrency/global state: no global state. +- Portability/platform constraints: numeric precision follows the configured `JNUMBER` type and parser behavior. +- Performance shape: O(number of object children * key length) for lookup, then O(1). +- Security or parsing constraints: type-checks with `JIsNumber` before reading `valuenumber`. + +## Direct Call Sites + +Exact source search found direct production callers: + +- `n_helpers.c:1439` and `n_helpers.c:1442` `NoteGetLocation` reads `"lat"` and `"lon"` from a `card.location` response after presence checks. +- `n_helpers.c:2182` `NoteGetVoltage` reads response `"value"` from `card.voltage`. +- `n_helpers.c:2204` `NoteGetTemperature` reads response `"value"` from `card.temp`. + +## Role In Callers + +Provides the shared object-field number extraction layer for location coordinates and numeric card telemetry helpers. + +## Tests Observed + +Focused `test/src/JGetNumber_test.cpp` covers null object, missing field, non-number field, and valid number. `test/src/JSON_number_handling_test.cpp` covers parsed numeric boundaries and floating-point values through `JGetNumber`. + +## Graph Links + +- Graph node id: `function:n_cjson_helpers.c:99:JGetNumber` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JGetObjectItem`, `JIsNumber`, and `JNumberValue`. + +## Evidence Gaps + +No unresolved source gaps for this node. Direct callers remain separate helper artifacts. diff --git a/source-research/artifacts/functions/n_cobs_c__L115__cobsEncode.md b/source-research/artifacts/functions/n_cobs_c__L115__cobsEncode.md new file mode 100644 index 00000000..4c900d2a --- /dev/null +++ b/source-research/artifacts/functions/n_cobs_c__L115__cobsEncode.md @@ -0,0 +1,76 @@ +# `_cobsEncode` + +## Status + +Finalized. Implementation, declaration, and production call site were inspected from source. + +## Identity + +- Kind: function +- Definition: `n_cobs.c:115` +- Declaration/interface: `n_lib.h:164` +- Public/exported names: unverified +- Macro aliases/wrappers: none. +- Signature/API shape: `uint32_t _cobsEncode(uint8_t *ptr, uint32_t length, uint8_t eop, uint8_t *dst)` +- Visibility: project-internal COBS helper declared in `n_lib.h`. +- Ownership/lifetime role: writes encoded bytes into caller-provided output buffer; does not allocate or take ownership. + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: `memchr`, `memmove`. +- Data/type/global dependencies: COBS code-byte rules and caller-provided EOP byte. +- Artifact coverage: production wrapper caller has a generated artifact and is next in the active slice. + +## Behavior + +Encodes a byte range using COBS with optional EOP XOR: + +1. Reserves the first output byte for the current block's code byte. +2. While input remains, limits the block to the remaining input or the maximum number of bytes before code `0xFF`. +3. Uses `memchr` to find the next zero in that block window. +4. Copies the non-zero chunk into `dst` with `memmove` so overlapping buffers are tolerated. +5. If `eop != 0`, XORs copied data bytes with `eop`. +6. Writes the block code byte XORed with `eop` when a zero terminates the block or the code limit is reached, then starts a new block. +7. Writes the final code byte and returns `dst - start`, excluding any separate packet terminator byte. + +## Important Boundaries + +- Preconditions and assumptions: `ptr` and `dst` must be valid for the caller-provided lengths; output buffer sizing is a caller responsibility. +- Error/null/empty behavior: no error channel and no NULL guard; zero-length input emits one code byte. +- Ownership and lifetime: mutates caller-provided `dst`; reads caller-provided `ptr`. +- Concurrency/global state: no global state. +- Portability/platform constraints: standard C memory routines and `uint8_t`/`uint32_t`. +- Performance shape: O(n), using `memchr` and `memmove` to avoid byte-by-byte scanning/copying for long runs. +- Security or parsing constraints: output excludes the EOP marker; callers append newline/EOP separately when using binary transport framing. + +## Direct Call Sites + +Exact production search `rg -n "\b_cobsEncode\b" -g '!source-research/**' -g '!docs/**'` found: + +- Declaration: `n_lib.h:164`. +- Definition: `n_cobs.c:115`. +- Production wrapper call: `n_helpers.c:186`, from `NoteBinaryCodecEncode`. + +Focused tests and HITL support code also call or fake this symbol, but they are outside production graph scope. + +## Role In Callers + +`NoteBinaryCodecEncode` supplies `NOTE_C_BINARY_EOP` (`'\n'`) as the EOP byte and handles NULL/buffer-size validation before delegating to this encoder. + +## Tests Observed + +Focused test search found `_cobsEncode` and wrapper tests, but production source was sufficient to finalize this node. + +## Graph Links + +- Graph node id: `function:n_cobs.c:115:_cobsEncode` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: none. +- Caller artifact candidates: `artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md`. +- Upstream public behavior candidates: `NoteBinaryCodecEncode` and `NoteBinaryStoreTransmit`. + +## Evidence Gaps + +No unresolved implementation behavior. Caller artifacts remain preliminary, and caller-side buffer sizing is required because this helper does not validate output capacity. diff --git a/source-research/artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md b/source-research/artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md new file mode 100644 index 00000000..e982b496 --- /dev/null +++ b/source-research/artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md @@ -0,0 +1,77 @@ +# `_cobsEncodedLength` + +## Status + +Finalized. Implementation, declaration, and production call sites were inspected from source. + +## Identity + +- Kind: function +- Definition: `n_cobs.c:196` +- Declaration/interface: `n_lib.h:165` +- Public/exported names: unverified +- Macro aliases/wrappers: none. +- Signature/API shape: `uint32_t _cobsEncodedLength(const uint8_t *ptr, uint32_t length)` +- Visibility: project-internal COBS helper declared in `n_lib.h`. +- Ownership/lifetime role: no allocation or ownership transfer; reads caller buffer. + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: `memchr`. +- Data/type/global dependencies: none beyond COBS block-size constants encoded in the implementation. +- Artifact coverage: direct callers have generated artifacts; caller behavior remains preliminary. + +## Behavior + +Computes the exact COBS encoded length for a given unencoded byte range, excluding the EOP marker: + +1. Starts with one byte for the first COBS code byte. +2. Processes input while `length > 0`. +3. Uses `memchr(ptr, 0, searchLen)` to find the next zero within the bytes that can fit before the current code reaches `0xFF`. +4. Adds non-zero chunk bytes to `encodedLen`. +5. Adds a new code byte when a zero terminates a block or when the COBS code limit is reached. +6. Returns the encoded length without the EOP byte. + +## Important Boundaries + +- Preconditions and assumptions: `ptr` must be valid for `length` bytes when `length > 0`; there is no NULL guard. +- Error/null/empty behavior: no error channel; for `length == 0`, returns 1 for the initial code byte. +- Ownership and lifetime: reads but does not mutate the input buffer. +- Concurrency/global state: no global state. +- Portability/platform constraints: uses standard C `memchr` and `uint32_t`. +- Performance shape: O(n), optimized by searching runs of non-zero bytes with `memchr`. +- Security or parsing constraints: callers use this as an exact fallback after a cheaper max-length check; no arithmetic overflow guard is present. + +## Direct Call Sites + +Exact production search `rg -n "\b_cobsEncodedLength\b" -g '!source-research/**' -g '!docs/**'` found: + +- Declaration: `n_lib.h:165`. +- Definition: `n_cobs.c:196`. +- Encoder buffer validation fallback: `n_helpers.c:179`. +- Binary transmit buffer validation fallback: `n_helpers.c:548`. + +Focused tests exist under `test/src`, but production graph evidence is from the source call sites above. + +## Role In Callers + +- `NoteBinaryCodecEncode` invokes this only when the constant-time `_cobsEncodedMaxLength` check fails, so the exact O(n) check can accept buffers large enough for the actual data even if smaller than the worst case. +- `NoteBinaryStoreTransmit` uses the same pattern, adding one byte for the newline/EOP transport marker around the exact encoded length. + +## Tests Observed + +Focused test search found dedicated `_cobsEncodedLength` tests and wrapper tests, but tests were not required to establish the source behavior. + +## Graph Links + +- Graph node id: `function:n_cobs.c:196:_cobsEncodedLength` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: none. +- Caller artifact candidates: `artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md`, `artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md`. +- Upstream public behavior candidates: public binary codec and binary store APIs declared in `note.h`. + +## Evidence Gaps + +No unresolved implementation behavior. Caller artifacts remain preliminary, and buffer validity remains a caller precondition when `length > 0`. diff --git a/source-research/artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md b/source-research/artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md new file mode 100644 index 00000000..62009156 --- /dev/null +++ b/source-research/artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md @@ -0,0 +1,77 @@ +# `_cobsEncodedMaxLength` + +## Status + +Finalized. Implementation, internal declaration, public wrapper relationship, and production call sites were inspected from source. + +## Identity + +- Kind: function +- Definition: `n_cobs.c:263` +- Declaration/interface: `n_lib.h:166` +- Public/exported names: exposed indirectly through `NoteBinaryCodecMaxEncodedLength` at `n_helpers.c:233`, declared publicly at `note.h:1636`. +- Macro aliases/wrappers: none. +- Signature/API shape: `uint32_t _cobsEncodedMaxLength(uint32_t length)` +- Visibility: project-internal COBS helper declared in `n_lib.h`. +- Ownership/lifetime role: no allocation or ownership transfer; computes a length. + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none. +- Data/type/global dependencies: uses COBS constants in `n_cobs.c`: `COBS_MAX_PACKET_SIZE` and `COBS_EOP_OVERHEAD`. +- Artifact coverage: direct callers have generated artifacts; caller behavior remains preliminary. + +## Behavior + +Computes the maximum COBS encoded length for an unencoded byte count, including the end-of-packet byte: + +1. Computes `codeBytes = (length / COBS_MAX_PACKET_SIZE) + 1`. +2. Returns `length + codeBytes + COBS_EOP_OVERHEAD`. + +The formula intentionally uses floor division plus one rather than ceiling division so exact multiples of the 254-byte COBS packet size reserve a final code byte. + +## Important Boundaries + +- Preconditions and assumptions: accepts any `uint32_t length`; source does not guard arithmetic overflow for extremely large values. +- Error/null/empty behavior: no error channel; for `length == 0`, returns one code byte plus EOP overhead. +- Ownership and lifetime: no memory ownership. +- Concurrency/global state: no global state. +- Portability/platform constraints: fixed-width `uint32_t` arithmetic. +- Performance shape: O(1). +- Security or parsing constraints: callers use this as a conservative buffer-size check for binary codec/store encoding; overflow is not locally checked. + +## Direct Call Sites + +Exact production search `rg -n "\b_cobsEncodedMaxLength\b" -g '!source-research/**' -g '!docs/**'` found: + +- Declaration: `n_lib.h:166`. +- Definition: `n_cobs.c:263`. +- Public max-length wrapper: `n_helpers.c:235`. +- Encoder buffer validation: `n_helpers.c:178`. +- Binary receive buffer validation: `n_helpers.c:368`. +- Binary transmit buffer validation: `n_helpers.c:547`. + +Focused tests also cover this helper, but test artifacts are not part of the production graph. + +## Role In Callers + +- `NoteBinaryCodecMaxEncodedLength` exposes this calculation directly to SDK callers. +- `NoteBinaryCodecEncode`, `NoteBinaryStoreReceive`, and `NoteBinaryStoreTransmit` use the calculation to reject buffers too small to hold newline-terminated encoded binary data. + +## Tests Observed + +Focused test search found `_cobsEncodedMaxLength` tests and wrapper tests under `test/src`, but source behavior did not require test evidence for finalizing this arithmetic helper. + +## Graph Links + +- Graph node id: `function:n_cobs.c:263:_cobsEncodedMaxLength` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: none. +- Caller artifact candidates: `artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md`, `artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md`, `artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md`, `artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md`. +- Upstream public behavior candidates: public binary codec and binary store APIs declared in `note.h`. + +## Evidence Gaps + +No unresolved implementation behavior. Caller artifacts remain preliminary, and the arithmetic overflow boundary is recorded because the source does not guard it. diff --git a/source-research/artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md b/source-research/artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md new file mode 100644 index 00000000..78e19663 --- /dev/null +++ b/source-research/artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md @@ -0,0 +1,58 @@ +# `_cobsGuaranteedFit` + +## Status + +Finalized. Source-inspected COBS safe decoded-length helper. + +## Identity + +- Kind: function +- Definition: `n_cobs.c:305` +- Declaration/interface: `n_lib.h:167` +- Signature/API shape: `uint32_t _cobsGuaranteedFit(uint32_t bufLen)` +- Visibility: internal SDK helper declared in `n_lib.h` +- Public/exported names: none +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: constants `COBS_MAX_PACKET_SIZE` and EOP overhead encoded in the formula/comments + +## Behavior + +Computes the maximum unencoded payload length that is guaranteed to fit after COBS encoding into a buffer of `bufLen` bytes including the EOP byte. For `bufLen <= 2`, it returns `0`. Otherwise it computes `t = bufLen - 2` and returns `t - ((t + 1) / 255)`, the closed-form inverse of the encoder's `u + floor(u / 254) + 2` worst-case requirement. + +## Important Boundaries + +- Preconditions and assumptions: `bufLen` is a byte count for a fixed buffer that must also hold COBS code bytes and EOP. +- Error/null/empty behavior: sizes 0, 1, and 2 cannot guarantee any decoded payload and return 0. +- Ownership and lifetime: no memory access. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Security or parsing constraints: used by decode wrappers to reject too-small output buffers before writing. + +## Direct Call Sites + +Exact source search found production callers: + +- `NoteBinaryCodecDecode` at `n_helpers.c:136`. +- `NoteBinaryCodecMaxDecodedLength` at `n_helpers.c:220`. + +## Role In Callers + +`NoteBinaryCodecDecode` uses this value as its minimum output-buffer requirement for a given encoded length. `NoteBinaryCodecMaxDecodedLength` exposes the same safe capacity calculation to public callers. + +## Tests Observed + +Focused tests in `test/src/_cobsGuaranteedFit_test.cpp` cover small buffers, zero/one/two-byte boundaries, 255k and 255k+1 boundary cases, customer-reported large capacities, and round trips through `_cobsEncodedMaxLength`. `test/src/NoteBinaryCodecDecode_test.cpp` uses `_cobsGuaranteedFit(encDataLen) - 1` to verify wrapper rejection of undersized output buffers. + +## Graph Links + +- Graph node id: `function:n_cobs.c:305:_cobsGuaranteedFit` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_cobs_c__L32__cobsDecode.md b/source-research/artifacts/functions/n_cobs_c__L32__cobsDecode.md new file mode 100644 index 00000000..bc0d857b --- /dev/null +++ b/source-research/artifacts/functions/n_cobs_c__L32__cobsDecode.md @@ -0,0 +1,61 @@ +# `_cobsDecode` + +## Status + +Finalized. Source-inspected COBS decode helper. + +## Identity + +- Kind: function +- Definition: `n_cobs.c:32` +- Declaration/interface: `n_lib.h:163` +- Signature/API shape: `uint32_t _cobsDecode(uint8_t *ptr, uint32_t length, uint8_t eop, uint8_t *dst)` +- Visibility: internal SDK helper declared in `n_lib.h` +- Public/exported names: none +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `memmove` +- Data/type/global dependencies: reads and writes caller-provided byte buffers + +## Behavior + +Decodes a COBS packet from `ptr` into `dst` and returns the number of decoded bytes written. It tracks the input end as `ptr + length`, inserts restored zero bytes between COBS blocks after the first block, decodes each block length from `(*ptr++) ^ eop`, and stops when that decoded code byte is zero. For each block, it copies `code - 1` payload bytes, clipping the copy length if the encoded code would otherwise read beyond `end`. + +When `eop == 0`, it bulk-copies payload bytes with `memmove`, preserving in-place decode safety. When `eop != 0`, it writes `ptr[i] ^ eop` to `dst[i]` in a forward loop. The returned length is `dst - start`. + +## Important Boundaries + +- Preconditions and assumptions: `ptr` and `dst` must be valid for the passed length and decoded output; callers are responsible for sizing the destination. +- Error/null/empty behavior: no null checks; malformed/truncated block lengths are clipped to available input instead of reporting an explicit error. +- Ownership and lifetime: does not allocate; mutates `dst` and may safely decode in place for normal caller usage. +- Concurrency/global state: no global state. +- Portability/platform constraints: byte-oriented algorithm over `uint8_t`; `memmove` is required for overlapping regions. +- Performance shape: O(encoded length), using bulk copy for the non-XOR path. + +## Direct Call Sites + +Exact source search found production callers: + +- `NoteBinaryCodecDecode` at `n_helpers.c:140`. + +Focused test/support callers include `_cobsDecode_test.cpp`, `NoteBinaryCodecDecode_test.cpp` fake declarations, and `NoteBinaryStoreReceive_test.cpp` decode fakes. + +## Role In Callers + +`NoteBinaryCodecDecode` supplies the Notecard binary newline EOP byte and returns `_cobsDecode`'s decoded length directly. Binary store transmit error paths also reach this helper through `NoteBinaryCodecDecode` to restore the caller's encoded buffer to decoded form. + +## Tests Observed + +Focused tests in `test/src/_cobsDecode_test.cpp` cover in-place decode, separate-buffer decode, empty payloads, all-zero data, no-zero data, zero at beginning/end, blocks exceeding 254 bytes, and nonzero EOP XOR decoding. `test/src/NoteBinaryCodecDecode_test.cpp` verifies wrapper delegation to `_cobsDecode` for valid parameters. + +## Graph Links + +- Graph node id: `function:n_cobs.c:32:_cobsDecode` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L378__fmtstr.md b/source-research/artifacts/functions/n_ftoa_c__L378__fmtstr.md new file mode 100644 index 00000000..ab6b5999 --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L378__fmtstr.md @@ -0,0 +1,54 @@ +# `fmtstr` + +## Status + +Finalized. Source-inspected bounded string formatting helper. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:378` +- Declaration/interface: file-local prototype at `n_ftoa.c:36` +- Signature/API shape: `static void fmtstr(char *str, size_t *len, size_t size, const char *value, int width, int precision, int flags)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_ftoa.c:45:OUTCHAR` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes caller-provided output buffer and length counter + +## Behavior + +Formats a string into the shared output state with optional width, precision, and left-justify padding. A null input value is treated as `"(null)"`. It measures up to either NUL or precision, emits leading spaces unless left-justified, emits the string bytes, then emits trailing spaces for left-justify mode. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies valid formatter output state. +- Error/null/empty behavior: null `value` prints `"(null)"`. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(output bytes counted/emitted). + +## Direct Call Sites + +Exact source search found `fmtflt` as the production caller for direct NaN/Infinity text formatting. + +## Role In Callers + +`fmtflt` uses `fmtstr` only for direct `JNtoA` NaN/Infinity output. JSON number printing bypasses `JNtoA` for non-finite values and emits `null`. + +## Tests Observed + +No focused NaN/Infinity `JNtoA` test was inspected. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:378:fmtstr` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L415__printsep.md b/source-research/artifacts/functions/n_ftoa_c__L415__printsep.md new file mode 100644 index 00000000..2f00ab08 --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L415__printsep.md @@ -0,0 +1,54 @@ +# `printsep` + +## Status + +Finalized. Source-inspected grouping separator emitter. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:415` +- Declaration/interface: file-local prototype at `n_ftoa.c:38` +- Signature/API shape: `static void printsep(char *str, size_t *len, size_t size)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_ftoa.c:45:OUTCHAR` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes caller-provided output buffer and length counter + +## Behavior + +Emits a comma through `OUTCHAR`. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies valid formatter output state. +- Error/null/empty behavior: no error channel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found `fmtflt` as the production caller, only when grouping separators are active. + +## Role In Callers + +`fmtflt` uses `printsep` while emitting integer digits when `PRINT_F_QUOTE` grouping is set. `JNtoA` does not set grouping flags, so this path is inactive for current JSON printing. + +## Tests Observed + +No focused grouping test was inspected; JSON number tests do not exercise grouping. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:415:printsep` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L420__getnumsep.md b/source-research/artifacts/functions/n_ftoa_c__L420__getnumsep.md new file mode 100644 index 00000000..2178c58d --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L420__getnumsep.md @@ -0,0 +1,53 @@ +# `getnumsep` + +## Status + +Finalized. Source-inspected grouping-separator counter. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:420` +- Declaration/interface: file-local prototype at `n_ftoa.c:39` +- Signature/API shape: `static int getnumsep(int digits)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Returns `(digits - ((digits % 3 == 0) ? 1 : 0)) / 3`, the number of comma group separators that would be inserted between integer digits. + +## Important Boundaries + +- Preconditions and assumptions: caller passes a non-negative integer digit count. +- Error/null/empty behavior: no error channel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found `fmtflt` as the production caller, only when `PRINT_F_QUOTE` grouping is active. + +## Role In Callers + +`fmtflt` uses this to include comma separators in padding width calculations. `JNtoA` does not set grouping flags, so this path is inactive for current JSON printing. + +## Tests Observed + +No focused grouping test was inspected; JSON number tests do not exercise grouping. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:420:getnumsep` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L426__getexponent.md b/source-research/artifacts/functions/n_ftoa_c__L426__getexponent.md new file mode 100644 index 00000000..8dd58de1 --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L426__getexponent.md @@ -0,0 +1,53 @@ +# `getexponent` + +## Status + +Finalized. Source-inspected decimal exponent helper. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:426` +- Declaration/interface: file-local prototype at `n_ftoa.c:40` +- Signature/API shape: `static int getexponent(JNUMBER value)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Takes the absolute value and scales it by powers of ten until it is in `[1, 10)`, decrementing or incrementing the decimal exponent as it goes. The loops are bounded to `[-1022, 1023]`. + +## Important Boundaries + +- Preconditions and assumptions: `fmtflt` screens NaN/Infinity before calling. +- Error/null/empty behavior: zero returns exponent `0`. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(abs(decimal exponent)) with explicit loop bounds. + +## Direct Call Sites + +Exact source search found `fmtflt` as the production caller. + +## Role In Callers + +`fmtflt` uses `getexponent` to choose and emit `%g` exponent or fixed style. + +## Tests Observed + +Focused JSON number handling tests exercise this indirectly through `JPrintUnformatted`. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:426:getexponent` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L448__convert.md b/source-research/artifacts/functions/n_ftoa_c__L448__convert.md new file mode 100644 index 00000000..2f1ab8df --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L448__convert.md @@ -0,0 +1,53 @@ +# `convert` + +## Status + +Finalized. Source-inspected reverse digit conversion helper. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:448` +- Declaration/interface: file-local prototype at `n_ftoa.c:41` +- Signature/API shape: `static int convert(uintmax_t value, char *buf, size_t size, int base, int caps)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes caller-provided buffer + +## Behavior + +Writes digits for `value` into `buf` in reverse order, using lowercase or uppercase digits according to `caps`, stopping when the value becomes zero or `pos == size`. Returns the number of bytes written. The result is not NUL-terminated. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a nonzero buffer size and a valid base for the digit table. +- Error/null/empty behavior: no null checks or error channel. +- Ownership and lifetime: no allocation; writes caller-owned scratch storage. +- Concurrency/global state: no global state. +- Performance shape: O(number of emitted digits). + +## Direct Call Sites + +Exact source search found `fmtflt` callers for exponent, integer, and fractional digit conversion. + +## Role In Callers + +`fmtflt` reverses the returned digit runs while emitting integer, fractional, and exponent components. + +## Tests Observed + +Focused JSON number handling tests exercise this indirectly through `JPrintUnformatted`. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:448:convert` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L462__cast.md b/source-research/artifacts/functions/n_ftoa_c__L462__cast.md new file mode 100644 index 00000000..dfb50ebf --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L462__cast.md @@ -0,0 +1,54 @@ +# `cast` + +## Status + +Finalized. Source-inspected formatter numeric cast helper. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:462` +- Declaration/interface: file-local prototype at `n_ftoa.c:42` +- Signature/API shape: `static uintmax_t cast(JNUMBER value)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `UINTMAX_MAX` +- Data/type/global dependencies: none + +## Behavior + +Returns `UINTMAX_MAX` as an overflow sentinel when `value >= UINTMAX_MAX`. Otherwise casts `value` to `uintmax_t` and compensates for platforms that round floating-to-integer casts upward by returning `result - 1` when the cast result is greater than the original value. + +## Important Boundaries + +- Preconditions and assumptions: called with non-negative finite values in the normal formatter path. +- Error/null/empty behavior: overflow is represented by the `UINTMAX_MAX` sentinel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: explicitly handles implementations with non-truncating floating-to-integer casts. + +## Direct Call Sites + +Exact source search found callers in `fmtflt` and `myround`. + +## Role In Callers + +`fmtflt` uses `cast` to split integer and fractional parts; `myround` uses it before half-up rounding. + +## Tests Observed + +Focused JSON number handling tests exercise this indirectly through `JPrintUnformatted`; direct `JNtoA` tests are weak because they do not assert formatter output. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:462:cast` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L486__myround.md b/source-research/artifacts/functions/n_ftoa_c__L486__myround.md new file mode 100644 index 00000000..81cec093 --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L486__myround.md @@ -0,0 +1,54 @@ +# `myround` + +## Status + +Finalized. Source-inspected formatter rounding helper. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:486` +- Declaration/interface: file-local prototype at `n_ftoa.c:43` +- Signature/API shape: `static uintmax_t myround(JNUMBER value)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_ftoa.c:462:cast` finalized +- External/system dependencies: `UINTMAX_MAX` +- Data/type/global dependencies: none + +## Behavior + +Converts the integer portion with `cast`; if that reports overflow, returns `UINTMAX_MAX`. Otherwise subtracts the integer portion and returns `intpart` for fractions below `0.5`, or `intpart + 1` for fractions at least `0.5`. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a finite non-negative value. +- Error/null/empty behavior: propagates `UINTMAX_MAX` overflow sentinel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found `fmtflt` as the production caller. + +## Role In Callers + +`fmtflt` uses `myround` to round the scaled fractional part, including carry into the integer/exponent path. + +## Tests Observed + +Focused JSON number handling tests exercise rounding indirectly through `JPrintUnformatted`. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:486:myround` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L497__mypow10.md b/source-research/artifacts/functions/n_ftoa_c__L497__mypow10.md new file mode 100644 index 00000000..30f1b195 --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L497__mypow10.md @@ -0,0 +1,53 @@ +# `mypow10` + +## Status + +Finalized. Source-inspected formatter power-of-ten helper. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:497` +- Declaration/interface: file-local prototype at `n_ftoa.c:44` +- Signature/API shape: `static JNUMBER mypow10(int exponent)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Starts from `1` and repeatedly multiplies by ten for positive exponents or divides by ten for negative exponents, returning the resulting `JNUMBER`. + +## Important Boundaries + +- Preconditions and assumptions: exponent ranges are bounded by formatter callers. +- Error/null/empty behavior: no error channel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(abs(exponent)). + +## Direct Call Sites + +Exact source search found two `fmtflt` callers: exponent normalization and fractional-mask construction. + +## Role In Callers + +`fmtflt` uses `mypow10` to normalize `%g` exponent style and to scale fractional digits before rounding. + +## Tests Observed + +Focused JSON number handling tests exercise this indirectly through `JPrintUnformatted`. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:497:mypow10` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ftoa_c__L56__JNtoA.md b/source-research/artifacts/functions/n_ftoa_c__L56__JNtoA.md new file mode 100644 index 00000000..67d0b2dc --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L56__JNtoA.md @@ -0,0 +1,55 @@ +# `JNtoA` + +## Status + +Finalized. Source-inspected public `JNUMBER` to ASCII formatter. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:56` +- Declaration/interface: `note.h:1455` +- Signature/API shape: `char * JNtoA(JNUMBER f, char * buf, int precision)` +- Visibility: public C SDK helper +- Public/exported names: `JNtoA` + +## Dependency Status + +- Project-local dependencies: + - `function:n_ftoa.c:74:fmtflt` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: `JNUMBER`, `JNTOA_PRECISION`, `JNTOA_MAX`, and formatter flag macros + +## Behavior + +Formats `f` into caller-provided storage and returns `buf`. Negative precision is replaced with `JNTOA_PRECISION` (`16`). The wrapper always uses `PRINT_F_TYPE_G`, passes `JNTOA_MAX` as the bounded output size to `fmtflt`, converts `fmtflt` integer-overflow reporting to the string `"0"`, writes a trailing NUL at the counted length, and returns the original buffer pointer. + +## Important Boundaries + +- Preconditions and assumptions: `buf` must be non-null and have at least `JNTOA_MAX` bytes as declared in `note.h`. +- Error/null/empty behavior: no null check; formatter overflow becomes `"0"`. +- Ownership and lifetime: no allocation; caller owns the buffer. +- Concurrency/global state: no global state. +- Performance shape: bounded formatter work based on precision and exponent. +- Portability/platform constraints: `JNUMBER` is `float` when `NOTE_C_SINGLE_PRECISION` is selected, otherwise `double`. + +## Direct Call Sites + +Exact source search found production callers in `_print_number`, `NoteSetEnvDefaultNumber`, and `NoteGetEnvNumber`, plus direct focused tests in `JNtoA_test.cpp`. + +## Role In Callers + +JSON printing uses `JNtoA` only for non-integral finite numbers; environment helpers use it to marshal default number values into request strings. + +## Tests Observed + +`JSON_number_handling_test.cpp` provides the strongest indirect output coverage through `JPrintUnformatted`. `JNtoA_test.cpp` calls `JNtoA`, but its inspected assertions do not compare or parse the generated `numStr`, so direct formatter-output evidence is weak. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:56:JNtoA` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused direct output assertions were inspected for direct `JNtoA`, NaN/Infinity text, explicit precision values, caller-provided undersized buffers, or locale behavior. diff --git a/source-research/artifacts/functions/n_ftoa_c__L74__fmtflt.md b/source-research/artifacts/functions/n_ftoa_c__L74__fmtflt.md new file mode 100644 index 00000000..0037dbb3 --- /dev/null +++ b/source-research/artifacts/functions/n_ftoa_c__L74__fmtflt.md @@ -0,0 +1,63 @@ +# `fmtflt` + +## Status + +Finalized. Source-inspected constrained floating-point formatter used by `JNtoA`. + +## Identity + +- Kind: function +- Definition: `n_ftoa.c:74` +- Declaration/interface: file-local prototype at `n_ftoa.c:37` +- Signature/API shape: `static void fmtflt(char *str, size_t *len, size_t size, JNUMBER fvalue, int width, int precision, int flags, int *overflow)` +- Visibility: file-local +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_ftoa.c:378:fmtstr` finalized + - `function:n_ftoa.c:426:getexponent` finalized + - `function:n_ftoa.c:497:mypow10` finalized + - `function:n_ftoa.c:462:cast` finalized + - `function:n_ftoa.c:486:myround` finalized + - `function:n_ftoa.c:448:convert` finalized + - `function:n_ftoa.c:420:getnumsep` finalized + - `macro:n_ftoa.c:45:OUTCHAR` finalized + - `function:n_ftoa.c:415:printsep` finalized +- External/system dependencies: `isnan`, `isinf`, `UINTMAX_MAX` +- Data/type/global dependencies: writes caller-provided output buffer, logical length counter, and overflow flag + +## Behavior + +Implements the `%g` path used by `JNtoA`, plus dormant support for some other formatting flags. It handles sign selection, direct NaN/Infinity strings through `fmtstr`, exponent calculation for `%g`, precision clamping based on `sizeof(uintmax_t)`, integer/fraction splitting, half-up fractional rounding, carry into the integer and exponent, `%g` fixed-vs-exponent style selection, optional omission of trailing fractional zeros, padding, optional grouping separators, and output emission through `OUTCHAR`. + +## Important Boundaries + +- Preconditions and assumptions: caller provides valid output state and a valid overflow pointer. +- Error/null/empty behavior: sets `*overflow = 1` and returns when `cast` reports integer overflow. +- Ownership and lifetime: uses stack scratch buffers only; no allocation. +- Concurrency/global state: no global state. +- Performance shape: bounded by decimal exponent, precision, and emitted output length. +- Portability/platform constraints: precision is clamped to 9, 19, or 38 digits depending on `uintmax_t` width; `cast` handles unusual floating-to-integer conversion behavior. + +## Direct Call Sites + +Exact source search found `JNtoA` as the production caller. + +## Role In Callers + +`JNtoA` calls `fmtflt` with `PRINT_F_TYPE_G`, `JNTOA_MAX`, no minimum width, and default or caller-supplied precision. + +## Tests Observed + +Focused JSON number handling tests exercise this through `JPrintUnformatted`. Direct `JNtoA` tests call the function but currently do not assert `numStr` output, so they are weak evidence. + +## Graph Links + +- Graph node id: `function:n_ftoa.c:74:fmtflt` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused tests were inspected for direct `JNtoA` NaN/Infinity text, explicit precision values, grouping flags, or unusual 128-bit `uintmax_t` precision boundaries. diff --git a/source-research/artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md b/source-research/artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md new file mode 100644 index 00000000..10ac3f30 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md @@ -0,0 +1,66 @@ +# `NoteLocalTimeST` + +## Status + +Finalized. Source-inspected public session-local-time conversion helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1016` +- Declaration/interface: `note.h:1745` +- Signature/API shape: `bool NoteLocalTimeST(uint16_t *retYear, uint8_t *retMonth, uint8_t *retDay, uint8_t *retHour, uint8_t *retMinute, uint8_t *retSecond, char **retWeekday, char **retZone)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteLocalTimeST` +- Macro aliases/wrappers: none +- Ownership/lifetime role: writes optional output fields and returns borrowed weekday/zone strings + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:755:NoteTimeValidST` finalized + - `function:n_helpers.c:871:NoteTimeST` finalized + - `function:n_helpers.c:965:NoteRegion` finalized in this slice + - `function:n_helpers.c:1119:_yToDays` finalized in this slice + - `macro:n_helpers.c:71:daysByMonth` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: reads `dayNames`, mutates static `lastHour`/`lastInfoIsKnown`, and may set global `zoneForceRefresh` +- Artifact coverage: generated artifact exists + +## Behavior + +Initializes all provided outputs to zero or empty-string defaults. If `NoteTimeValidST()` is false, returns false with defaults. Otherwise reads current epoch time from `NoteTimeST()`, obtains region zone/offset from `NoteRegion`, applies the timezone offset in seconds, and converts Unix epoch seconds into year/month/day/hour/minute/second/weekday using `_yToDays`, `daysByMonth`, and `dayNames`. + +Writes the borrowed `currentZone` pointer when requested. It tracks the last local hour in static state and, when region info is available, sets `zoneForceRefresh` if the local hour crosses into 1, 2, or 3 so DST offset changes can be rechecked. + +## Important Boundaries + +- Preconditions and assumptions: output pointers are optional; returned weekday and zone pointers are borrowed static/cache strings. +- Error/null/empty behavior: invalid time returns false after clearing outputs; unavailable region can still produce UTC-based local fields but returns false because `regionAvailable` is false. +- Ownership and lifetime: no allocation; all outputs are scalar writes or borrowed pointers. +- Concurrency/global state: reads/mutates time/region globals and static last-hour state without locking. +- Portability/platform constraints: conversion uses 32-bit `uint32_t secs` after adding a 1900 offset, so behavior is constrained by that arithmetic. +- Performance shape: bounded loops over year adjustment and 12-month lookup. +- Security or parsing constraints: no validation of offset range; trusts cached region state. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1745`. + +## Role In Callers + +This is the public local date/time conversion API above cached time and region state. + +## Tests Observed + +Focused `test/src/NoteLocalTimeST_test.cpp` covers invalid time defaulting and a valid 2023 PDT conversion with weekday, zone, and time fields. Leap-boundary and DST-refresh-trigger cases were not found. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1016:NoteLocalTimeST` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteTimeValidST`, `NoteTimeST`, `NoteRegion`, `_yToDays`, and `daysByMonth`. + +## Evidence Gaps + +No unresolved source gaps for this node. Leap-boundary and DST-refresh-trigger behavior are not directly tested. diff --git a/source-research/artifacts/functions/n_helpers_c__L1119__yToDays.md b/source-research/artifacts/functions/n_helpers_c__L1119__yToDays.md new file mode 100644 index 00000000..05d21179 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1119__yToDays.md @@ -0,0 +1,62 @@ +# `_yToDays` + +## Status + +Finalized. Source-inspected internal leap-day offset helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1119` +- Declaration/interface: file-local prototype at `n_helpers.c:79` +- Signature/API shape: `int _yToDays(int year)` +- Visibility: internal to `n_helpers.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none +- Macro aliases/wrappers: none +- Ownership/lifetime role: pure calendar arithmetic helper + +## Dependency Status + +- Project-local dependencies: + - `macro:n_helpers.c:71:daysByMonth` finalized in this slice +- External/system dependencies: none +- Data/type/global dependencies: reads static month table index 0 through `daysByMonth(year)[0]` +- Artifact coverage: generated artifact exists + +## Behavior + +Computes the number of leap-day corrections before the internal year offset. For positive years, `(year - 1) / 4`; for years `<= -4`, `year / 4`; otherwise zero. Returns that value plus `daysByMonth(year)[0]`, which is zero for both month tables. + +## Important Boundaries + +- Preconditions and assumptions: `year` is the same internal year offset used by `NoteLocalTimeST`. +- Error/null/empty behavior: years from -3 through 0 contribute zero leap-day adjustment. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads static arrays only. +- Portability/platform constraints: uses C integer division for negative years; no Gregorian century rule is represented. +- Performance shape: O(1). +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact source search found direct caller: + +- `n_helpers.c:1070` `NoteLocalTimeST` uses it to locate the start day of the current internal year. + +## Role In Callers + +This helper supports year selection during epoch-to-local-date conversion. + +## Tests Observed + +Focused `test/src/NoteLocalTimeST_test.cpp` covers the helper indirectly for a 2023 conversion. No direct tests were found for negative years or leap boundaries. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1119:_yToDays` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `daysByMonth`. + +## Evidence Gaps + +No unresolved source gaps for this node. Leap-boundary and negative-year behavior are not directly tested. diff --git a/source-research/artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md b/source-research/artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md new file mode 100644 index 00000000..e33db520 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md @@ -0,0 +1,59 @@ +# `NoteLocationValid` + +## Status + +Finalized. Source-inspected non-suppressed location validity wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1139` +- Declaration/interface: `note.h:1765` +- Signature/API shape: `bool NoteLocationValid(char *errbuf, uint32_t errbuflen)` +- Visibility: public SDK API +- Public/exported names: `NoteLocationValid` +- Macro aliases/wrappers: none +- Ownership/lifetime role: writes optional caller error buffer through `NoteLocationValidST` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:1156:NoteLocationValidST` finalized +- External/system dependencies: none +- Data/type/global dependencies: `locationTimer`, `locationValid`, `locationLastErr` + +## Behavior + +Forces a fresh validity evaluation by setting `locationTimer` to `0`, setting `locationValid` to false, clearing `locationLastErr`, and then returning `NoteLocationValidST(errbuf, errbuflen)`. + +All response handling, suppression timer behavior after this reset, error-buffer writes, `"mode": "off"` handling, and response cleanup are owned by the finalized suppressed helper. + +## Important Boundaries + +- Preconditions and assumptions: same caller buffer assumptions as `NoteLocationValidST`. +- Error/null/empty behavior: clears cached error before delegating; return value is the suppressed helper result. +- Ownership and lifetime: no allocation or response ownership in this wrapper. +- Concurrency/global state: mutates static location cache/timer state without explicit locking. +- Performance shape: O(1) plus delegated location-valid check. +- Portability/platform constraints: Notecard I/O and timing behavior are delegated. + +## Direct Call Sites + +Exact source search found the public declaration, the implementation, and focused tests. No production library caller was found; this is a public API entry point. + +## Role In Callers + +Public entry point for callers that want an immediate location validity check rather than the time-suppressed cached variant. + +## Tests Observed + +`test/src/NoteLocationValid_test.cpp` covers no response, error propagation, `"mode": "off"` valid behavior, and the interaction between the fresh wrapper and subsequent cached `NoteLocationValidST` calls. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1139:NoteLocationValid` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md b/source-research/artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md new file mode 100644 index 00000000..d7268236 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md @@ -0,0 +1,69 @@ +# `NoteLocationValidST` + +## Status + +Finalized. Source-inspected time-suppressed location validity helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1156` +- Declaration/interface: `note.h:1774` +- Signature/API shape: `bool NoteLocationValidST(char *errbuf, uint32_t errbuflen)` +- Visibility: public SDK API +- Public/exported names: `NoteLocationValidST` +- Macro aliases/wrappers: none +- Ownership/lifetime role: writes optional caller error buffer; owns and deletes response documents it receives + +## Dependency Status + +- Project-local dependencies: + - `function:n_str.c:31:strlcpy` finalized + - `function:n_helpers.c:2301:_timerExpiredSecs` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: `strcmp` +- Data/type/global dependencies: `locationTimer`, `locationValid`, `locationLastErr`, `suppressionTimerSecs` + +## Behavior + +If `errbuf` is non-null, copies the cached `locationLastErr` into it at entry. If `locationValid` is already true, it clears cached and caller-visible error text and returns true without making another request. + +When not already valid, it calls `_timerExpiredSecs(&locationTimer, suppressionTimerSecs)`. If the timer has not expired, it returns false after leaving the entry-copied cached error in `errbuf`. + +When the timer permits polling, it sends `NoteRequestResponse(NoteNewRequest("card.location"))`. A null response returns false. A non-error response, or an error response whose `"mode"` field is `"off"`, is treated as valid: the response is deleted, `locationValid` becomes true, cached and caller-visible error text are cleared, and the function returns true. + +For other error responses, it copies the response `"err"` field into `locationLastErr`, mirrors it into `errbuf` when provided, deletes the response, and returns false. + +## Important Boundaries + +- Preconditions and assumptions: `errbuf` may be null; if non-null, `errbuflen` must describe writable storage. +- Error/null/empty behavior: null response returns false and leaves any entry-copied cached error unchanged; location mode `"off"` is treated as valid even if the response also has an error field. +- Ownership and lifetime: consumes and deletes the response returned by `NoteRequestResponse`; does not own caller buffers. +- Concurrency/global state: mutates static cached location validity/error/timer state; no explicit locking. +- Performance shape: O(1) plus optional Notecard transaction when the suppression timer expires. +- Portability/platform constraints: timing depends on `_timerExpiredSecs` and the platform millisecond hook; Notecard I/O remains behind request/transaction hooks. + +## Direct Call Sites + +Exact source search found the non-suppressed public wrapper `NoteLocationValid` as the production caller. `NoteLocationValid` resets `locationTimer`, clears `locationValid` and `locationLastErr`, then calls this suppressed variant. The public header also declares `NoteLocationValidST` directly. + +## Role In Callers + +Provides the reusable, cached implementation for location validity checks. The wrapper forces an immediate fresh check, while direct `NoteLocationValidST` callers can reuse cached valid/error state until the suppression timer allows another `card.location` request. + +## Tests Observed + +`test/src/NoteLocationValid_test.cpp` covers no response, error response with error-buffer propagation, `"mode": "off"` treated as valid, and the cached-valid path where a subsequent `NoteLocationValidST` call does not make another `NoteRequestResponse` call. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1156:NoteLocationValidST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md b/source-research/artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md new file mode 100644 index 00000000..5ca54fb8 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md @@ -0,0 +1,61 @@ +# `NoteSetEnvDefault` + +## Status + +Finalized. Source-inspected environment default string helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1215` +- Declaration/interface: `note.h:1820` +- Signature/API shape: `bool NoteSetEnvDefault(const char *variable, char *buf)` +- Visibility: public SDK API +- Public/exported names: `NoteSetEnvDefault` +- Macro aliases/wrappers: none +- Ownership/lifetime role: builds a request object and transfers it to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: none +- Data/type/global dependencies: JSON request type `J` + +## Behavior + +Creates an `env.default` request with `NoteNewRequest`. If request allocation fails, returns false. Otherwise it adds `"name": variable` and `"text": buf` string fields, calls `NoteRequest(req)`, and returns that boolean result. + +The helper does not inspect the return values from `JAddStringToObject`; field-add failures are only reflected if the eventual request fails through the request path. + +## Important Boundaries + +- Preconditions and assumptions: source assumes `variable` and `buf` are valid string pointers for JSON string creation; there are no local null guards. +- Error/null/empty behavior: null request allocation returns false; `NoteRequest` false propagates false. +- Ownership and lifetime: on successful request allocation, request ownership transfers to `NoteRequest`. +- Concurrency/global state: no local global state; transaction state is delegated. +- Performance shape: one small JSON request allocation plus one boolean request transaction. +- Portability/platform constraints: transport behavior remains behind `NoteRequest`. + +## Direct Call Sites + +Exact source search found public declaration, this implementation, and wrapper callers `NoteSetEnvDefaultInt` and `NoteSetEnvDefaultNumber`, which format numeric values into a local buffer before calling this string helper. Focused tests call it directly and numeric wrapper tests fake it. + +## Role In Callers + +Provides the shared string implementation for setting default environment variables. Integer and numeric variants delegate to it after converting values to string form. + +## Tests Observed + +`test/src/NoteSetEnvDefault_test.cpp` covers request allocation failure, `NoteRequest` failure, and `NoteRequest` success. `NoteSetEnvDefaultInt` and `NoteSetEnvDefaultNumber` tests fake this helper to verify formatting/delegation. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1215:NoteSetEnvDefault` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md b/source-research/artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md new file mode 100644 index 00000000..1e243aa4 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md @@ -0,0 +1,58 @@ +# `NoteSetEnvDefaultInt` + +## Status + +Finalized. Source-inspected integer environment default wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1235` +- Declaration/interface: `note.h:1838` +- Signature/API shape: `bool NoteSetEnvDefaultInt(const char *variable, JINTEGER defaultVal)` +- Visibility: public SDK API +- Public/exported names: `NoteSetEnvDefaultInt` +- Macro aliases/wrappers: none +- Ownership/lifetime role: uses a stack string buffer and delegates to `NoteSetEnvDefault` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson_helpers.c:284:JItoA` finalized + - `function:n_helpers.c:1215:NoteSetEnvDefault` finalized +- External/system dependencies: none +- Data/type/global dependencies: `JINTEGER` + +## Behavior + +Allocates a local `char buf[32]`, converts `defaultVal` into it with `JItoA(defaultVal, buf)`, and returns `NoteSetEnvDefault(variable, buf)`. + +## Important Boundaries + +- Preconditions and assumptions: `variable` is passed through to `NoteSetEnvDefault`; source has no local null guard. +- Error/null/empty behavior: conversion has no local error branch; delegated `NoteSetEnvDefault` result is returned unchanged. +- Ownership and lifetime: stack buffer is valid for the duration of the synchronous delegated call; no heap ownership. +- Concurrency/global state: none locally. +- Performance shape: O(number of integer digits) conversion plus delegated request. +- Portability/platform constraints: integer formatting is handled by note-c helper code. + +## Direct Call Sites + +Exact source search found public declaration, implementation, and focused tests. No production library caller was found; this is a public API entry point. + +## Role In Callers + +Provides integer formatting before using the shared string `env.default` request implementation. + +## Tests Observed + +`test/src/NoteSetEnvDefaultNumber_test.cpp` covers `NoteSetEnvDefaultInt` formatting `-123456` to `"-123456"` and delegation to a faked `NoteSetEnvDefault`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1235:NoteSetEnvDefaultInt` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md b/source-research/artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md new file mode 100644 index 00000000..e1fa2f4f --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md @@ -0,0 +1,60 @@ +# `NoteSetEnvDefaultNumber` + +## Status + +Finalized. Source-inspected numeric environment default wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1250` +- Declaration/interface: `note.h:1829` +- Signature/API shape: `bool NoteSetEnvDefaultNumber(const char *variable, JNUMBER defaultVal)` +- Visibility: public SDK API +- Public/exported names: `NoteSetEnvDefaultNumber` +- Macro aliases/wrappers: none +- Ownership/lifetime role: uses a stack string buffer and delegates to `NoteSetEnvDefault` + +## Dependency Status + +- Project-local dependencies: + - `function:n_ftoa.c:56:JNtoA` finalized + - `function:n_helpers.c:1215:NoteSetEnvDefault` finalized +- External/system dependencies: none +- Data/type/global dependencies: `JNUMBER`, `JNTOA_MAX` + +## Behavior + +Allocates a local `char buf[JNTOA_MAX]`, converts `defaultVal` into it with `JNtoA(defaultVal, buf, -1)`, and returns `NoteSetEnvDefault(variable, buf)`. + +Passing precision `-1` selects the default number-to-string behavior implemented by `JNtoA`. + +## Important Boundaries + +- Preconditions and assumptions: `variable` is passed through to `NoteSetEnvDefault`; source has no local null guard. +- Error/null/empty behavior: conversion has no local error branch; delegated `NoteSetEnvDefault` result is returned unchanged. +- Ownership and lifetime: stack buffer is valid for the duration of the synchronous delegated call; no heap ownership. +- Concurrency/global state: none locally. +- Performance shape: numeric formatting plus delegated request. +- Portability/platform constraints: number formatting is handled by note-c helper code. + +## Direct Call Sites + +Exact source search found public declaration, implementation, and focused tests. No production library caller was found; this is a public API entry point. + +## Role In Callers + +Provides floating/numeric formatting before using the shared string `env.default` request implementation. + +## Tests Observed + +`test/src/NoteSetEnvDefaultNumber_test.cpp` covers `NoteSetEnvDefaultNumber` formatting `-123456` to `"-123456"` and delegation to a faked `NoteSetEnvDefault`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1250:NoteSetEnvDefaultNumber` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md b/source-research/artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md new file mode 100644 index 00000000..fd201d93 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md @@ -0,0 +1,62 @@ +# `NoteGetEnvNumber` + +## Status + +Finalized. Source-inspected public numeric environment retrieval wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1265` +- Declaration/interface: `note.h:1800` +- Signature/API shape: `JNUMBER NoteGetEnvNumber(const char *variable, JNUMBER defaultVal)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteGetEnvNumber` +- Macro aliases/wrappers: none +- Ownership/lifetime role: stack-buffer wrapper around `NoteGetEnv` + +## Dependency Status + +- Project-local dependencies: + - `function:n_ftoa.c:56:JNtoA` finalized + - `function:n_helpers.c:1302:NoteGetEnv` finalized in this slice + - `function:n_atof.c:71:JAtoN` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: stack buffers sized `JNTOA_MAX` +- Artifact coverage: generated artifact exists + +## Behavior + +Formats `defaultVal` into a default string with `JNtoA(defaultVal, buf2, -1)`, calls `NoteGetEnv(variable, buf2, buf, sizeof(buf))`, ignores the boolean result, and returns `JAtoN(buf, NULL)`. + +## Important Boundaries + +- Preconditions and assumptions: `JNTOA_MAX` buffers are large enough for formatted default and returned numeric text. +- Error/null/empty behavior: because `NoteGetEnv` initializes `buf` to `buf2`, request failures and missing values normally parse back to `defaultVal`. Non-numeric returned text parses according to `JAtoN` behavior, commonly `0.0`. +- Ownership and lifetime: no allocation; all intermediate storage is stack-owned. +- Concurrency/global state: reaches request/transport hooks through `NoteGetEnv`. +- Portability/platform constraints: `JNUMBER` precision depends on build configuration; formatting/parsing uses note-c helpers. +- Performance shape: bounded numeric formatting/parsing plus one `NoteGetEnv` transaction. +- Security or parsing constraints: ignores `NoteGetEnv` success/failure and trusts parsed buffer contents. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1800`. + +## Role In Callers + +This is the public numeric convenience API over `NoteGetEnv`. + +## Tests Observed + +Focused `test/src/NoteGetEnvNumber_test.cpp` fakes `NoteGetEnv` and verifies existing values parse to the returned number while misses/failures parse the default string. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1265:NoteGetEnvNumber` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JNtoA`, `NoteGetEnv`, and `JAtoN`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md b/source-research/artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md new file mode 100644 index 00000000..22de1bce --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md @@ -0,0 +1,64 @@ +# `NoteBinaryCodecDecode` + +## Status + +Finalized. Source-inspected public binary decode wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:127` +- Declaration/interface: `note.h:1607` +- Signature/API shape: `uint32_t NoteBinaryCodecDecode(const uint8_t *encData, uint32_t encDataLen, uint8_t *decBuf, uint32_t decBufSize)` +- Visibility: public SDK function declared in `note.h` +- Public/exported names: `NoteBinaryCodecDecode` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cobs.c:305:_cobsGuaranteedFit` finalized + - `function:n_cobs.c:32:_cobsDecode` finalized + - `macro:note.h:75:ERRSTR` finalized low-memory variant + - `macro:note.h:78:ERRSTR` finalized normal variant + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: reads static `NOTE_C_BINARY_EOP` newline constant at `n_helpers.c:81` + +## Behavior + +Validates inputs before decoding Notecard binary data. If `encData` or `decBuf` is `NULL`, it logs `ERRSTR("NULL parameter", c_err)` and returns `0`. If `decBufSize` is less than `_cobsGuaranteedFit(encDataLen)`, it logs `ERRSTR("output buffer too small", c_err)` and returns `0`. Otherwise it delegates to `_cobsDecode((uint8_t *)encData, encDataLen, NOTE_C_BINARY_EOP, decBuf)` and returns the decoded byte count unchanged. + +## Important Boundaries + +- Preconditions and assumptions: valid non-null buffers must be large enough for `_cobsGuaranteedFit(encDataLen)`; in-place decode is allowed by passing the same address for `encData` and `decBuf`. +- Error/null/empty behavior: wrapper-level validation failures return 0 and log errors; decode-level malformed COBS input is not converted to a distinct error. +- Ownership and lifetime: does not allocate; mutates `decBuf`; casts away const on `encData` only for the lower helper's in-place-capable signature. +- Concurrency/global state: no mutable global state; logging uses finalized logging macro behavior. +- Portability/platform constraints: relies on byte-level COBS helper and newline EOP constant. +- Performance shape: O(encoded length) after O(1) validation. + +## Direct Call Sites + +Exact source search found production callers: + +- Active receive path at `n_helpers.c:450`, decoding the wire bytes in place after stripping the terminating newline. +- Binary transmit error and retry paths at `n_helpers.c:668`, `n_helpers.c:677`, `n_helpers.c:691`, `n_helpers.c:700`, `n_helpers.c:717`, and `n_helpers.c:724`, restoring the caller's encoded buffer to decoded form on failures. + +## Role In Callers + +`NoteBinaryStoreReceive` uses `NoteBinaryCodecDecode` to convert the received COBS payload in place and then checks the returned length against the expected decoded length. `NoteBinaryStoreTransmit` uses it as a recovery step after encoding the caller's buffer for transmission, so failed transmissions can leave the buffer in decoded form for retry by the caller. + +## Tests Observed + +Focused tests in `test/src/NoteBinaryCodecDecode_test.cpp` verify null parameter rejection, undersized buffer rejection using `_cobsGuaranteedFit`, delegation to `_cobsDecode`, argument forwarding for `encData`, `encDataLen`, and `decBuf`, and return-value passthrough. Focused `_cobsDecode` and `_cobsGuaranteedFit` tests cover the lower helper behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:127:NoteBinaryCodecDecode` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_cobsGuaranteedFit`, `_cobsDecode`, `ERRSTR`, and `NOTE_C_LOG_ERROR`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md b/source-research/artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md new file mode 100644 index 00000000..2d17c965 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md @@ -0,0 +1,61 @@ +# `NoteGetEnvInt` + +## Status + +Finalized. Source-inspected public integer environment retrieval wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1281` +- Declaration/interface: `note.h:1791` +- Signature/API shape: `JINTEGER NoteGetEnvInt(const char *variable, JINTEGER defaultVal)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteGetEnvInt` +- Macro aliases/wrappers: none +- Ownership/lifetime role: stack-buffer wrapper around `NoteGetEnv` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson_helpers.c:284:JItoA` finalized + - `function:n_helpers.c:1302:NoteGetEnv` finalized in this slice +- External/system dependencies: `atoi` +- Data/type/global dependencies: stack buffers sized 32 bytes +- Artifact coverage: generated artifact exists + +## Behavior + +Formats `defaultVal` into a default string with `JItoA(defaultVal, buf2)`, calls `NoteGetEnv(variable, buf2, buf, sizeof(buf))`, ignores the boolean result, and returns `atoi(buf)`. + +## Important Boundaries + +- Preconditions and assumptions: 32-byte buffers are expected to hold `JINTEGER` text and returned integer text. +- Error/null/empty behavior: because `NoteGetEnv` initializes `buf` to `buf2`, request failures and missing values normally parse back to `defaultVal`. Non-integer returned text follows `atoi` behavior, commonly `0`. +- Ownership and lifetime: no allocation; all intermediate storage is stack-owned. +- Concurrency/global state: reaches request/transport hooks through `NoteGetEnv`. +- Portability/platform constraints: `atoi` conversion semantics are C library dependent for overflow. +- Performance shape: bounded integer formatting/parsing plus one `NoteGetEnv` transaction. +- Security or parsing constraints: ignores `NoteGetEnv` success/failure and trusts parsed buffer contents. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1791`. + +## Role In Callers + +This is the public integer convenience API over `NoteGetEnv`. + +## Tests Observed + +Focused `test/src/NoteGetEnvNumber_test.cpp` fakes `NoteGetEnv` and verifies existing values parse to the returned integer while misses/failures parse the default string. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1281:NoteGetEnvInt` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JItoA` and `NoteGetEnv`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md b/source-research/artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md new file mode 100644 index 00000000..0a40159b --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md @@ -0,0 +1,71 @@ +# `NoteGetEnv` + +## Status + +Finalized. Source-inspected public environment string retrieval helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1302` +- Declaration/interface: `note.h:1811` +- Signature/API shape: `bool NoteGetEnv(const char *variable, const char *defaultVal, char *buf, uint32_t buflen)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteGetEnv` +- Macro aliases/wrappers: none +- Ownership/lifetime role: writes caller output buffer; consumes request through `NoteRequestResponse`; deletes response after inspection + +## Dependency Status + +- Project-local dependencies: + - `function:n_str.c:31:strlcpy` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: sends Notecard `env.get` request and reads response JSON fields +- Artifact coverage: generated artifact exists + +## Behavior + +Initializes `buf` to `defaultVal` with `strlcpy`, or to an empty string when `defaultVal == NULL`, before sending any request. Creates an `env.get` request with `NoteNewRequest`, adds `"name": variable`, sends it with `NoteRequestResponse`, and treats a non-null response without `NoteResponseError(rsp)` as success. + +On success, reads `JGetString(rsp, "text")`; only a non-empty returned string replaces the default already in `buf`. Missing, non-string, null, or empty `"text"` leaves the default/empty buffer intact. Any non-null response is released with `NoteDeleteResponse` before return. + +## Important Boundaries + +- Preconditions and assumptions: `buf` must be non-null and usable before any request work; the function writes `buf[0]` when `defaultVal == NULL`. `variable` should be non-null for `"name"` attachment, but `JAddStringToObject` failure is not checked. +- Error/null/empty behavior: request allocation failure, null response, or response error returns `false` with the initialized default value left in `buf`. A no-error response with missing/empty `"text"` returns `true` and still leaves the initialized default value. +- Ownership and lifetime: caller owns `buf`; `NoteRequestResponse` consumes the request; this function owns and deletes the returned response after borrowing the `"text"` pointer. +- Concurrency/global state: uses the SDK request/transaction path and allocator hooks behind callees. +- Portability/platform constraints: platform I/O remains behind request/transport hooks. +- Performance shape: one request/response transaction plus bounded output copy into `buf`. +- Security or parsing constraints: no explicit output-buffer null check; `strlcpy` bounds copies by `buflen` in non-null-default paths. + +## Direct Call Sites + +Exact source search found direct production callers: + +- `n_helpers.c:1269` `NoteGetEnvNumber` formats a numeric default, calls `NoteGetEnv`, and parses the resulting buffer. +- `n_helpers.c:1285` `NoteGetEnvInt` formats an integer default, calls `NoteGetEnv`, and parses the resulting buffer. + +## Role In Callers + +This is the shared string retrieval layer for numeric and integer environment wrappers. The wrappers ignore its boolean return and rely on the initialized output buffer. + +## Tests Observed + +Focused `test/src/NoteGetEnv_test.cpp` covers request allocation failure, null response, response error, missing `"text"` with success/default retention, and valid `"text"` overriding the default. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1302:NoteGetEnv` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `strlcpy`, `NoteNewRequest`, `JAddStringToObject`, `NoteRequestResponse`, `NoteResponseError`, `JGetString`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md b/source-research/artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md new file mode 100644 index 00000000..d9a47eae --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md @@ -0,0 +1,63 @@ +# `NoteIsConnected` + +## Status + +Finalized. Source-inspected public immediate-refresh connectivity wrapper, direct caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1334` +- Declaration/interface: `note.h:1844` +- Public/exported names: `NoteIsConnected` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NoteIsConnected(void)` +- Visibility: public note-c helper API +- Ownership/lifetime role: no caller-owned data; delegates response ownership to `NoteIsConnectedST` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:1346:NoteIsConnectedST` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes static `connectivityTimer` +- Artifact coverage: source, declaration, direct caller search, and focused tests inspected + +## Behavior + +Sets the static `connectivityTimer` to zero, then returns `NoteIsConnectedST()`. Because `_timerExpiredSecs` treats a zero previous timer as expired, this wrapper forces an immediate connectivity refresh attempt instead of using the suppressed cached path. + +## Important Boundaries + +- Preconditions and assumptions: global helper state is available; normal callers do not pass arguments. +- Error/null/empty behavior: error behavior is delegated to `NoteIsConnectedST`; this wrapper resets only the timer and does not clear the cached `cardConnected` value. +- Ownership and lifetime: no allocation in this wrapper. +- Concurrency/global state: mutates static `connectivityTimer` without local locking. +- Portability/platform constraints: transport and timing behavior remain behind `NoteIsConnectedST`. +- Performance shape: one forced `NoteIsConnectedST` refresh attempt. +- Security or parsing constraints: no parsing in this wrapper. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This is the public non-suppressed connectivity helper API. + +## Tests Observed + +`test/src/NoteIsConnected_test.cpp` covers no response, error response, connected false, and connected true cases through this public wrapper. + +## Test Coverage Notes + +Focused tests do not assert that `connectivityTimer` was reset, do not verify the request name passed to `NoteNewRequest`, and do not cover cached true value preservation across later null/error responses. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1334:NoteIsConnected` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md b/source-research/artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md new file mode 100644 index 00000000..8d254890 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md @@ -0,0 +1,72 @@ +# `NoteIsConnectedST` + +## Status + +Finalized. Source-inspected suppressed connectivity helper, cache behavior, caller, and focused wrapper tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1346` +- Declaration/interface: `note.h:1850` +- Public/exported names: `NoteIsConnectedST` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NoteIsConnectedST(void)` +- Visibility: public note-c helper API +- Ownership/lifetime role: allocates no caller-owned data; consumes and deletes response objects created by request APIs + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:2301:_timerExpiredSecs` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:137:JGetBool` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: none +- Data/type/global dependencies: static `connectivityTimer`, `cardConnected`, and `suppressionTimerSecs` in `n_helpers.c` +- Artifact coverage: source, declaration, caller, static state, and focused tests inspected + +## Behavior + +Uses `_timerExpiredSecs(&connectivityTimer, suppressionTimerSecs)` to decide whether to refresh cached connectivity state. When the timer has not expired, it returns the current static `cardConnected` cache without making a request. + +When the timer expires, it sends `hub.status` through `NoteRequestResponse(NoteNewRequest("hub.status"))`. If a response is returned and `NoteResponseError(rsp)` is false, it updates `cardConnected` from `JGetBool(rsp, "connected")`. It deletes any non-null response with `NoteDeleteResponse(rsp)` and returns `cardConnected`. + +## Important Boundaries + +- Preconditions and assumptions: global helper state is initialized in `n_helpers.c`; normal callers do not pass arguments. +- Error/null/empty behavior: null request/response, transport failure, and response error do not clear `cardConnected`; they leave the prior cached value in place. A successful response with a missing, non-bool, or false `connected` field sets or leaves `cardConnected` false through `JGetBool`. +- Ownership and lifetime: `NoteRequestResponse` consumes the request object; `NoteIsConnectedST` owns and deletes the returned response when non-null. +- Concurrency/global state: mutates static `connectivityTimer` and `cardConnected` without local locking. Suppression period uses static `suppressionTimerSecs`, defaulting to 10 seconds. +- Portability/platform constraints: request transport remains behind `NoteRequestResponse`; timer behavior depends on the platform millisecond hook through `_timerExpiredSecs`. +- Performance shape: O(1) cached path; refresh path performs one Notecard transaction and a small JSON lookup. +- Security or parsing constraints: trusts helper-level response parsing; no validation beyond `NoteResponseError` and `JGetBool`. + +## Direct Call Sites + +Exact production caller found by source search: + +- `n_helpers.c:1337` `NoteIsConnected` resets `connectivityTimer` and delegates to `NoteIsConnectedST`. + +## Role In Callers + +`NoteIsConnected` uses this suppressed variant after forcing the timer expired, giving the public wrapper an immediate refresh path while preserving the response handling and cache semantics here. + +## Tests Observed + +`test/src/NoteIsConnected_test.cpp` covers the public wrapper for no response, error response, connected false, and connected true cases. Those tests reach `NoteIsConnectedST` through `NoteIsConnected`. + +## Test Coverage Notes + +Focused tests do not assert the exact `"hub.status"` request name, the timer-suppressed cached path, or the behavior where a previous true cache survives a later null/error response. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1346:NoteIsConnectedST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md b/source-research/artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md new file mode 100644 index 00000000..81d1d8d4 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md @@ -0,0 +1,65 @@ +# `NoteGetNetStatus` + +## Status + +Finalized. Source-inspected public `hub.status` helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1368` +- Declaration/interface: `note.h:1859` +- Public/exported names: `NoteGetNetStatus` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteGetNetStatus(char *statusBuf, int statusBufLen)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: writes into caller-owned buffer and owns/deletes the response object it receives + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:220:NoteRequestResponse` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `macro:note.h:479:NoteResponseError` expands through finalized `JIsNullString` + - `function:n_str.c:31:strlcpy` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:note.h:486:NoteDeleteResponse` expands to finalized `JDelete` +- External/system dependencies: Notecard transaction path through `NoteRequestResponse` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Clears `statusBuf[0]`, sends a `hub.status` request with `NoteRequestResponse(NoteNewRequest("hub.status"))`, and returns false when no response is returned. For a response, treats `!NoteResponseError(rsp)` as success; on success, copies `JGetString(rsp, "status")` into `statusBuf` with `strlcpy(statusBuf, ..., statusBufLen)`. Always deletes a non-null response before returning. + +## Important Boundaries + +- Preconditions and assumptions: `statusBuf` must be non-null and writable; `statusBufLen` should describe its capacity. +- Error/null/empty behavior: request allocation failure flows through `NoteRequestResponse(NULL)` to false after clearing the buffer. Error responses return false. Missing or non-string `"status"` can still return true and copy an empty string. +- Ownership and lifetime: caller owns `statusBuf`; `NoteRequestResponse` owns/frees the request, and this helper deletes the returned response. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: uses the bundled or platform `strlcpy`. +- Performance shape: one request/response transaction plus bounded buffer copy. +- Security or parsing constraints: `statusBufLen <= 0` is not guarded before being passed to `strlcpy` as `size_t`; truncation is not surfaced. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1859`, the definition in `n_helpers.c:1368`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that want the Notecard network status copied into a caller-provided buffer. + +## Tests Observed + +Focused tests in `test/src/NoteGetNetStatus_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: no response returns false, response with `"err"` returns false, and response with `"status"` returns true and copies the value. Gaps include request argument assertions, output clearing on failure, truncation, invalid buffer lengths, and real transport behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1368:NoteGetNetStatus` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `JGetString`, `strlcpy`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md b/source-research/artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md new file mode 100644 index 00000000..9f3df278 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md @@ -0,0 +1,65 @@ +# `NoteGetVersion` + +## Status + +Finalized. Source-inspected public `card.version` helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1391` +- Declaration/interface: `note.h:1868` +- Public/exported names: `NoteGetVersion` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteGetVersion(char *versionBuf, int versionBufLen)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: writes into caller-owned buffer and owns/deletes the response object it receives + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:220:NoteRequestResponse` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `macro:note.h:479:NoteResponseError` expands through finalized `JIsNullString` + - `function:n_str.c:31:strlcpy` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:note.h:486:NoteDeleteResponse` expands to finalized `JDelete` +- External/system dependencies: Notecard transaction path through `NoteRequestResponse` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Clears `versionBuf[0]`, sends a `card.version` request with `NoteRequestResponse(NoteNewRequest("card.version"))`, and returns false when no response is returned. For a response, treats `!NoteResponseError(rsp)` as success; on success, copies `JGetString(rsp, "version")` into `versionBuf` with `strlcpy(versionBuf, ..., versionBufLen)`. Always deletes a non-null response before returning. + +## Important Boundaries + +- Preconditions and assumptions: `versionBuf` must be non-null and writable; `versionBufLen` should describe its capacity. +- Error/null/empty behavior: request allocation failure flows through `NoteRequestResponse(NULL)` to false after clearing the buffer. Error responses return false. Missing or non-string `"version"` can still return true and copy an empty string. +- Ownership and lifetime: caller owns `versionBuf`; `NoteRequestResponse` owns/frees the request, and this helper deletes the returned response. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: uses the bundled or platform `strlcpy`. +- Performance shape: one request/response transaction plus bounded buffer copy. +- Security or parsing constraints: `versionBufLen <= 0` is not guarded before being passed to `strlcpy` as `size_t`; truncation is not surfaced. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1868`, the definition in `n_helpers.c:1391`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that want the Notecard version string copied into a caller-provided buffer. + +## Tests Observed + +Focused tests in `test/src/NoteGetVersion_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: no response returns false, response with `"err"` returns false, and response with `"version"` returns true and copies the value. Gaps include request name/call-count assertions, null/zero/negative buffer length, missing version, truncation, and response deletion side effects. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1391:NoteGetVersion` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `JGetString`, `strlcpy`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md b/source-research/artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md new file mode 100644 index 00000000..bf451b26 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md @@ -0,0 +1,67 @@ +# `NoteGetLocation` + +## Status + +Finalized. Source-inspected public `card.location` helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1417` +- Declaration/interface: `note.h:1880` +- Public/exported names: `NoteGetLocation` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteGetLocation(JNUMBER *retLat, JNUMBER *retLon, JTIME *time, char *statusBuf, int statusBufLen)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: writes optional caller-owned output slots and owns/deletes the response object it receives + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:220:NoteRequestResponse` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_str.c:31:strlcpy` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_cjson_helpers.c:19:JIsPresent` finalized + - `function:n_cjson_helpers.c:99:JGetNumber` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `macro:note.h:486:NoteDeleteResponse` expands to finalized `JDelete` +- External/system dependencies: Notecard transaction path through `NoteRequestResponse` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Initializes non-null outputs before I/O: clears `statusBuf`, sets `*retLat = 0.0`, `*retLon = 0.0`, and `*time = 0`. Sends `card.location` via `NoteRequestResponse(NoteNewRequest("card.location"))`. For a non-null response, copies `"status"` to `statusBuf` when provided, sets `locValid = true` only when both `"lat"` and `"lon"` fields are present, copies numeric latitude/longitude into non-null output pointers, copies nonzero `"time"` into `time`, deletes the response, and returns `locValid`. + +## Important Boundaries + +- Preconditions and assumptions: output pointers are optional except that `statusBufLen` should describe `statusBuf` capacity when `statusBuf` is non-null. +- Error/null/empty behavior: no response returns false after output initialization. Response `"err"` is not checked; success depends on presence of both `"lat"` and `"lon"`. +- Ownership and lifetime: caller owns output storage; `NoteRequestResponse` owns/frees the request, and this helper deletes the returned response. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: uses `JNUMBER` and `JTIME` public typedefs and the bundled or platform `strlcpy`. +- Performance shape: one request/response transaction plus field lookups and bounded buffer copy. +- Security or parsing constraints: `statusBufLen <= 0` is not guarded before being passed to `strlcpy` as `size_t`; non-number `lat`/`lon` fields still make `locValid` true because presence, not numeric type, gates success. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1880`, the definition in `n_helpers.c:1417`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that want current Notecard location values copied into optional output slots. + +## Tests Observed + +Focused tests in `test/src/NoteGetLocation_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: no response returns false, and a response with status/lat/lon/time returns true and populates outputs. Gaps include request string assertions, null output pointers, zero/negative `statusBufLen`, `"err"` responses, missing lat/lon, and non-number lat/lon. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1417:NoteGetLocation` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `NoteRequestResponse`, `strlcpy`, `JGetString`, `JIsPresent`, `JGetNumber`, `JGetInt`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md b/source-research/artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md new file mode 100644 index 00000000..2a361f4b --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md @@ -0,0 +1,63 @@ +# `NoteSetLocation` + +## Status + +Finalized. Source-inspected public fixed-location setter. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1463` +- Declaration/interface: `note.h:1889` +- Public/exported names: `NoteSetLocation` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSetLocation(JNUMBER lat, JNUMBER lon)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a request object and transfers it to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1974:JAddNumberToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard transaction path through `NoteRequest` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `card.location.mode` request. If request allocation succeeds, adds `"mode": "fixed"`, `"lat": lat`, and `"lon": lon`, then returns `NoteRequest(req)`. If request allocation fails, returns false without calling `NoteRequest`. + +## Important Boundaries + +- Preconditions and assumptions: latitude and longitude are passed by value with no source-level range validation. +- Error/null/empty behavior: request allocation failure returns false. Individual JSON field-add return values are ignored, so partial request construction failure is not directly surfaced. +- Ownership and lifetime: request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: uses `JNUMBER`, whose precision depends on build configuration. +- Performance shape: one request allocation, three JSON field additions, and one request transaction. +- Security or parsing constraints: no validation of NaN/Inf, coordinate ranges, or Notecard-side acceptance in this helper. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1889`, the definition in `n_helpers.c:1463`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that set a fixed Notecard location. + +## Tests Observed + +Focused tests in `test/src/NoteSetLocation_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request creation failure returns false and does not call `NoteRequest`; `NoteRequest` false/true propagates. Gaps include request argument, constructed JSON fields, field-add failure, and numeric edge cases. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1463:NoteSetLocation` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddStringToObject`, `JAddNumberToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md b/source-research/artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md new file mode 100644 index 00000000..c9c9f94b --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md @@ -0,0 +1,62 @@ +# `NoteClearLocation` + +## Status + +Finalized. Source-inspected public location-clear helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1482` +- Declaration/interface: `note.h:1895` +- Public/exported names: `NoteClearLocation` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteClearLocation(void)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a request object and transfers it to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard transaction path through `NoteRequest` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `card.location.mode` request. If request allocation succeeds, adds `"delete": true`, then returns `NoteRequest(req)`. If request allocation fails, returns false without calling `NoteRequest`. + +## Important Boundaries + +- Preconditions and assumptions: no input parameters. +- Error/null/empty behavior: request allocation failure returns false. The `JAddBoolToObject` return value is ignored, so bool-field allocation/attach failure is not directly surfaced. +- Ownership and lifetime: request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one request allocation, one JSON boolean field addition, and one request transaction. +- Security or parsing constraints: does not locally verify the final JSON request contains `"delete": true`. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1895`, the definition in `n_helpers.c:1482`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that clear the stored Notecard location. + +## Tests Observed + +Focused tests in `test/src/NoteClearLocation_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request creation failure returns false and does not call `NoteRequest`; `NoteRequest` false/true propagates. Gaps include request argument, constructed JSON fields, and bool-field add failure. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1482:NoteClearLocation` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddBoolToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md b/source-research/artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md new file mode 100644 index 00000000..d9e3a767 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md @@ -0,0 +1,65 @@ +# `NoteGetLocationMode` + +## Status + +Finalized. Source-inspected public location-mode read helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1501` +- Declaration/interface: `note.h:1904` +- Public/exported names: `NoteGetLocationMode` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteGetLocationMode(char *modeBuf, int modeBufLen)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: creates a request object through `NoteNewRequest`, receives a response object from `NoteRequestResponse`, and deletes the response with `NoteDeleteResponse` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_str.c:31:strlcpy` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: Notecard request/response transaction path through `NoteRequestResponse` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Clears `modeBuf[0]`, sends a `card.location.mode` request through `NoteRequestResponse(NoteNewRequest(...))`, and returns false when no response is returned. When a response exists, returns false if `NoteResponseError(rsp)` reports an error. On a non-error response, copies `JGetString(rsp, "mode")` into `modeBuf` with `strlcpy`, deletes the response, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: `modeBuf` must be non-null because the function writes `modeBuf[0]` before any guard. `modeBufLen` is passed directly to `strlcpy`; non-positive lengths are not locally rejected. +- Error/null/empty behavior: no response returns false. Error responses return false after response cleanup. A missing or non-string `"mode"` value is handled by finalized `JGetString` as an empty string, so a non-error response can still return true with an empty copied mode. +- Ownership and lifetime: `NoteRequestResponse` owns the request created by `NoteNewRequest`; the response object is deleted by `NoteDeleteResponse` on every non-null response path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: uses project-local `strlcpy`; no platform-specific behavior in this wrapper. +- Performance shape: one request allocation/transaction, one response error check, one bounded string copy, and one response delete. +- Security or parsing constraints: truncation is not reported; the function trusts response shape apart from `NoteResponseError`. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1904`, the definition in `n_helpers.c:1501`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that retrieve the Notecard location mode. + +## Tests Observed + +Focused tests in `test/src/NoteGetLocationMode_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: no response returns false, error response returns false, and a response containing `"mode"` returns true. Gaps include a weak success assertion that compares `modeBuf` with itself instead of the expected mode string, plus no coverage for null output buffer, non-positive buffer length, missing mode, or truncation. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1501:NoteGetLocationMode` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `strlcpy`, `JGetString`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md b/source-research/artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md new file mode 100644 index 00000000..0f39ffb8 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md @@ -0,0 +1,63 @@ +# `NoteSetLocationMode` + +## Status + +Finalized. Source-inspected public location-mode write helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1524` +- Declaration/interface: `note.h:1913` +- Public/exported names: `NoteSetLocationMode` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSetLocationMode(const char *mode, uint32_t seconds)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a request object and transfers it to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1974:JAddNumberToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard transaction path through `NoteRequest` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `card.location.mode` request. If request allocation succeeds, rewrites an empty `mode` string to `"-"`, adds `"mode"` and `"seconds"` fields, and returns `NoteRequest(req)`. If request allocation fails, returns false without calling `NoteRequest`. + +## Important Boundaries + +- Preconditions and assumptions: `mode` must be non-null when request allocation succeeds because the function reads `mode[0]` before calling any guarded JSON helper. +- Error/null/empty behavior: request allocation failure returns false. Empty string mode is converted to `"-"`. `JAddStringToObject` and `JAddNumberToObject` return values are ignored, so field allocation/attach failures are not surfaced before `NoteRequest`. +- Ownership and lifetime: request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one request allocation, two JSON field additions, and one request transaction. +- Security or parsing constraints: does not locally validate allowed mode values or verify that both request fields were attached. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1913`, the definition in `n_helpers.c:1524`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that set the Notecard location mode and periodic interval. + +## Tests Observed + +Focused tests in `test/src/NoteSetLocationMode_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request creation failure returns false and does not call `NoteRequest`; `NoteRequest` false/true propagates; empty mode is encoded as `"-"`. Gaps include null mode and JSON field add failures. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1524:NoteSetLocationMode` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddStringToObject`, `JAddNumberToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md b/source-research/artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md new file mode 100644 index 00000000..b9d0d7f9 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md @@ -0,0 +1,63 @@ +# `NoteGetServiceConfig` + +## Status + +Finalized. Source-inspected public immediate-refresh service-configuration wrapper, direct caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1557` +- Declaration/interface: `note.h:1928` +- Public/exported names: `NoteGetServiceConfig` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NoteGetServiceConfig(char *productBuf, int productBufLen, char *serviceBuf, int serviceBufLen, char *deviceBuf, int deviceBufLen, char *snBuf, int snBufLen)` +- Visibility: public note-c helper API +- Ownership/lifetime role: passes caller-provided output buffers through to `NoteGetServiceConfigST` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:1582:NoteGetServiceConfigST` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes static `serviceConfigTimer` +- Artifact coverage: source, declaration, direct caller search, and focused tests inspected + +## Behavior + +Sets static `serviceConfigTimer` to zero and returns `NoteGetServiceConfigST(...)` with the same output buffer pointers and lengths. The wrapper forces the suppressed variant to consider a refresh when product/device cache strings are already populated, but it does not clear any cached service-configuration strings. + +## Important Boundaries + +- Preconditions and assumptions: output-buffer preconditions are inherited from `NoteGetServiceConfigST`. +- Error/null/empty behavior: refresh, cache, output-copy, and error behavior are delegated to `NoteGetServiceConfigST`; this wrapper only resets the timer. +- Ownership and lifetime: no allocation in this wrapper. +- Concurrency/global state: mutates static `serviceConfigTimer` without local locking. +- Portability/platform constraints: transport and timing behavior remain behind the suppressed variant. +- Performance shape: one delegated refresh attempt or cache operation. +- Security or parsing constraints: no parsing in this wrapper. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This is the public non-suppressed service-configuration helper API. + +## Tests Observed + +`test/src/NoteGetServiceConfig_test.cpp` covers no response with empty cache, successful response caching/copying, and a subsequent no-response call that returns false while copying previously cached values. + +## Test Coverage Notes + +Focused tests do not directly assert `serviceConfigTimer` reset, suppressed cache-hit behavior, error responses carrying `"err"`, or the exact `"hub.get"` request string. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1557:NoteGetServiceConfig` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md b/source-research/artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md new file mode 100644 index 00000000..87da7a4a --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md @@ -0,0 +1,75 @@ +# `NoteGetServiceConfigST` + +## Status + +Finalized. Source-inspected suppressed service-configuration helper, cache/timer behavior, caller, and focused wrapper tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1582` +- Declaration/interface: `note.h:1943` +- Public/exported names: `NoteGetServiceConfigST` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NoteGetServiceConfigST(char *productBuf, int productBufLen, char *serviceBuf, int serviceBufLen, char *deviceBuf, int deviceBufLen, char *snBuf, int snBufLen)` +- Visibility: public note-c helper API +- Ownership/lifetime role: copies cached service fields into caller-provided buffers; consumes and deletes response objects created by request APIs + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:2301:_timerExpiredSecs` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_str.c:31:strlcpy` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: none +- Data/type/global dependencies: static `serviceConfigTimer`, `scProduct`, `scService`, `scDevice`, and `scSN` in `n_helpers.c` +- Artifact coverage: source, declaration, caller, static cache state, and focused tests inspected + +## Behavior + +Initializes local `success` to `false`. It refreshes from the Notecard when `scProduct[0] == '\0'`, `scDevice[0] == '\0'`, or `_timerExpiredSecs(&serviceConfigTimer, 4*60*60)` reports the four-hour refresh timer expired. Because the timer check is the third operand in an `||` expression, the timer helper is not called when the product or device cache is empty. + +On refresh, sends `hub.get` through `NoteRequestResponse(NoteNewRequest("hub.get"))`. If a response is returned, `success` becomes `!NoteResponseError(rsp)`. On success, it caches `product` into `scProduct`, `host` into `scService`, `device` into `scDevice`, and `sn` into `scSN` using `JGetString` and `strlcpy`. It deletes any non-null response with `NoteDeleteResponse(rsp)`. + +If the cache is usable and the four-hour timer has not expired, it performs no Notecard I/O and sets `success = true`. Regardless of success or failure, it copies current cached values into any non-null output buffers with `strlcpy`, then returns `success`. + +## Important Boundaries + +- Preconditions and assumptions: non-null output buffers must be writable for their paired length when the corresponding pointer is non-null. +- Error/null/empty behavior: null response or error response returns `false` for a refresh attempt but still copies current cached strings to requested output buffers. Missing or non-string response fields become empty strings through `JGetString`. +- Ownership and lifetime: `NoteRequestResponse` consumes the request object; this function owns and deletes the returned response when non-null. Caller output buffers remain caller-owned. +- Concurrency/global state: mutates static service config cache and timer without local locking. `NoteSetProductID` and `NoteSetSerialNumber` reset `serviceConfigTimer` but do not clear cached strings. +- Portability/platform constraints: transport remains behind `NoteRequestResponse`; timer behavior depends on the platform millisecond hook through `_timerExpiredSecs`. +- Performance shape: O(total copied string lengths) on cache-hit path; refresh path adds one Notecard transaction and JSON lookups. +- Security or parsing constraints: cache validity only checks product and device cache strings; host/service and serial-number strings do not affect refresh eligibility. + +## Direct Call Sites + +Exact production caller found by source search: + +- `n_helpers.c:1560` `NoteGetServiceConfig` resets `serviceConfigTimer` and delegates to this suppressed variant. + +## Role In Callers + +`NoteGetServiceConfig` uses this function as the implementation after forcing a refresh attempt by setting `serviceConfigTimer = 0`. It does not clear cached strings, so a forced refresh that receives no response can return `false` while still copying previously cached values. + +## Tests Observed + +`test/src/NoteGetServiceConfig_test.cpp` covers the public wrapper for no response with empty cache, successful response caching/copying, and a subsequent no-response call that returns false while copying previously cached service configuration values. + +## Test Coverage Notes + +Focused tests call the public wrapper rather than `NoteGetServiceConfigST` directly. They do not cover the suppressed cache-hit ST path, four-hour expiry, timer rollback behavior, error responses carrying `"err"`, or direct verification of the `"hub.get"` request string. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1582:NoteGetServiceConfigST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md b/source-research/artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md new file mode 100644 index 00000000..e1e7a39d --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md @@ -0,0 +1,63 @@ +# `NoteGetStatus` + +## Status + +Finalized. Source-inspected public immediate-refresh card-status wrapper, direct caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1631` +- Declaration/interface: `note.h:1955` +- Public/exported names: `NoteGetStatus` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NoteGetStatus(char *statusBuf, int statusBufLen, JTIME *bootTime, bool *retUSB, bool *retSignals)` +- Visibility: public note-c helper API +- Ownership/lifetime role: passes caller-provided outputs through to `NoteGetStatusST` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:1649:NoteGetStatusST` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes static `statusTimer` +- Artifact coverage: source, declaration, direct caller search, and focused tests inspected + +## Behavior + +Sets static `statusTimer` to zero and returns `NoteGetStatusST(statusBuf, statusBufLen, bootTime, retUSB, retSignals)`. This forces the suppressed variant to attempt a refresh, but it does not clear the suppressed variant's function-local cached status values. + +## Important Boundaries + +- Preconditions and assumptions: output-buffer and pointer behavior is inherited from `NoteGetStatusST`. +- Error/null/empty behavior: refresh, cache, output-copy, and error behavior are delegated to `NoteGetStatusST`; this wrapper only resets the timer. +- Ownership and lifetime: no allocation in this wrapper. +- Concurrency/global state: mutates static `statusTimer` without local locking. +- Portability/platform constraints: transport and timing behavior remain behind the suppressed variant. +- Performance shape: one delegated refresh attempt or cache operation. +- Security or parsing constraints: no parsing in this wrapper. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This is the public non-suppressed card-status helper API. + +## Tests Observed + +`test/src/NoteGetStatus_test.cpp` covers no response and successful responses, including connected, disconnected, and connected-with-zero-signals cases. + +## Test Coverage Notes + +Focused tests do not directly assert `statusTimer` reset, suppressed cache-hit behavior, stale-cache behavior after a failed refresh, error responses carrying `"err"`, or the exact `"card.status"` request string. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1631:NoteGetStatus` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md b/source-research/artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md new file mode 100644 index 00000000..080fe925 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md @@ -0,0 +1,78 @@ +# `NoteGetStatusST` + +## Status + +Finalized. Source-inspected suppressed card-status helper, static cache/timer behavior, caller, and focused wrapper tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1649` +- Declaration/interface: `note.h:1967` +- Public/exported names: `NoteGetStatusST` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NoteGetStatusST(char *statusBuf, int statusBufLen, JTIME *bootTime, bool *retUSB, bool *retSignals)` +- Visibility: public note-c helper API +- Ownership/lifetime role: copies cached status fields into caller-provided outputs; consumes and deletes response objects created by request APIs + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:2301:_timerExpiredSecs` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `function:n_cjson_helpers.c:137:JGetBool` finalized + - `function:n_str.c:31:strlcpy` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: none +- Data/type/global dependencies: static `statusTimer`; function-local static `lastStatus`, `lastBootTime`, `lastUSB`, and `lastSignals` +- Artifact coverage: source, declaration, caller, static cache state, and focused tests inspected + +## Behavior + +Initializes local `success` to `false`. It refreshes only when `_timerExpiredSecs(&statusTimer, suppressionTimerSecs)` reports the status timer expired. On refresh, sends `card.status` through `NoteRequestResponse(NoteNewRequest("card.status"))`. If a response is returned, `success` becomes `!NoteResponseError(rsp)`. + +On successful response, it caches `status` into function-local static `lastStatus`, `time` into `lastBootTime`, `usb` into `lastUSB`, and derives `lastSignals`: when `connected` is true, `lastSignals` is `JGetInt(rsp, "signals") > 0`; otherwise `lastSignals` is false. It deletes any non-null response with `NoteDeleteResponse(rsp)`. + +If the timer has not expired, it performs no Notecard I/O and sets `success = true`. Regardless of success or failure, it writes cached values to any non-null output parameters and returns `success`. + +## Important Boundaries + +- Preconditions and assumptions: non-null `statusBuf` must be writable for `statusBufLen` bytes. +- Error/null/empty behavior: null response or error response returns `false` for a refresh attempt but still copies current cached values to requested outputs. Missing or wrong-type JSON fields collapse through helper defaults: empty string status, zero time/signals, and false booleans. +- Ownership and lifetime: `NoteRequestResponse` consumes the request object; this function owns and deletes the returned response when non-null. +- Concurrency/global state: mutates static `statusTimer` and function-local static cached values without local locking. Suppression period uses shared static `suppressionTimerSecs`. +- Portability/platform constraints: transport remains behind `NoteRequestResponse`; timer behavior depends on the platform millisecond hook through `_timerExpiredSecs`. +- Performance shape: O(status string copy length) cache-hit path; refresh path adds one Notecard transaction and JSON lookups. +- Security or parsing constraints: signal presence is deliberately gated by `connected`; positive `signals` is ignored when `connected` is false. +- Timer edge: `_timerExpiredSecs` updates `statusTimer` before request success is known. With a nonzero millisecond clock, a failed refresh can be followed by suppressed calls that return `true` with old or default cached values until the timer expires again. + +## Direct Call Sites + +Exact production caller found by source search: + +- `n_helpers.c:1634` `NoteGetStatus` resets `statusTimer` and delegates to this suppressed variant. + +## Role In Callers + +`NoteGetStatus` uses this function as the implementation after forcing a refresh attempt by setting `statusTimer = 0`. It does not clear the function-local cached values. + +## Tests Observed + +`test/src/NoteGetStatus_test.cpp` covers the public wrapper for no response and successful responses, including connected, disconnected, and connected-with-zero-signals cases. + +## Test Coverage Notes + +Focused tests call the public wrapper rather than `NoteGetStatusST` directly. They do not cover the suppressed cache-hit ST path, stale-cache success after refresh failure, `NoteSetSTSecs` interaction, error responses carrying `"err"`, wrong-type response fields, request deletion, or direct verification of the `"card.status"` request string. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1649:NoteGetStatusST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md b/source-research/artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md new file mode 100644 index 00000000..cc150874 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md @@ -0,0 +1,76 @@ +# `NoteBinaryCodecEncode` + +## Status + +Finalized. Implementation, public declaration, project-local callees, and production call sites were inspected from source. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:169` +- Declaration/interface: `note.h:1619` +- Public/exported names: `NoteBinaryCodecEncode` +- Macro aliases/wrappers: none. +- Signature/API shape: `uint32_t NoteBinaryCodecEncode(const uint8_t *decData, uint32_t decDataLen, uint8_t *encBuf, uint32_t encBufSize)` +- Visibility: public SDK API. +- Ownership/lifetime role: reads caller-owned decoded data and writes encoded bytes into caller-owned output buffer; does not allocate or take ownership. + +## Dependency Status + +- Project-local dependencies: +- `macro:note.h:990:NOTE_C_LOG_ERROR` (verified) +- `macro:note.h:75:ERRSTR` / `macro:note.h:78:ERRSTR` (verified conditional variants) +- `function:n_cobs.c:263:_cobsEncodedMaxLength` (verified) +- `function:n_cobs.c:196:_cobsEncodedLength` (verified) +- `function:n_cobs.c:115:_cobsEncode` (verified) +- External/system dependencies: none directly. +- Data/type/global dependencies: `NOTE_C_BINARY_EOP` from `n_helpers.c:81`. +- Artifact coverage: all project-local callees listed above are finalized. + +## Behavior + +1. Initializes a `result` variable. +2. Returns `0` after logging `"NULL parameter"` if either `decData` or `encBuf` is `NULL`. +3. Checks output capacity with a two-stage policy: first the O(1) worst-case `_cobsEncodedMaxLength(decDataLen)`; only if that fails does it compute exact `_cobsEncodedLength(decData, decDataLen)`. +4. Returns `0` after logging `"output buffer too small"` when the buffer is smaller than both the worst-case and exact encoded sizes. +5. Otherwise calls `_cobsEncode((uint8_t *)decData, decDataLen, NOTE_C_BINARY_EOP, encBuf)` and returns the encoded length. + +## Important Boundaries + +- Preconditions and assumptions: `encBuf` must be large enough for the encoded data; in-place use is supported only when the decoded data has already been shifted so input and output do not start at the same address. +- Error/null/empty behavior: returns `0` on NULL parameters or insufficient output capacity; no separate error string is returned. +- Ownership and lifetime: no allocation; caller owns both buffers. +- Concurrency/global state: no global state beyond logging/debug hooks. +- Portability/platform constraints: uses internal COBS helper with newline as the binary EOP byte. +- Performance shape: O(1) fast capacity rejection/acceptance for worst case, with O(n) exact length fallback only when the worst-case check fails. +- Security or parsing constraints: casts away `const` when passing to `_cobsEncode`, but source inspection of `_cobsEncode` shows it only reads the input pointer and writes `encBuf`. + +## Direct Call Sites + +Exact production search `rg -n "\bNoteBinaryCodecEncode\b" -g '!source-research/**' -g '!docs/**'` found: + +- Public declaration: `note.h:1619`. +- Definition: `n_helpers.c:169`. +- Production caller: `n_helpers.c:631`, from `NoteBinaryStoreTransmit`. + +Focused tests exercise NULL, buffer-size, and call-through behavior but are outside production graph scope. + +## Role In Callers + +`NoteBinaryStoreTransmit` uses this wrapper after shifting unencoded data toward the end of the caller buffer. It passes the original buffer front as `encBuf`, leaving space for a newline byte that the store transmit path appends separately. + +## Tests Observed + +Focused test search found wrapper tests in `test/src/NoteBinaryCodecEncode_test.cpp` and binary-store tests using this API. Source behavior and production caller evidence were sufficient for finalization. + +## Graph Links + +- Graph node id: `function:n_helpers.c:169:NoteBinaryCodecEncode` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: `artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md`, `artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md`, `artifacts/functions/n_cobs_c__L115__cobsEncode.md`, `artifacts/macros/note_h__L75__ERRSTR.md`, `artifacts/macros/note_h__L78__ERRSTR.md`, `artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md`. +- Caller artifact candidates: `artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md`. +- Upstream public behavior candidates: `NoteBinaryStoreTransmit`. + +## Evidence Gaps + +No unresolved behavior for this wrapper. Upstream binary store transmit remains preliminary. diff --git a/source-research/artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md b/source-research/artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md new file mode 100644 index 00000000..594bc897 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md @@ -0,0 +1,64 @@ +# `NotePayloadSaveAndSleep` + +## Status + +Finalized. Source-inspected public payload-save sleep helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1708` +- Declaration/interface: `note.h:2124`; `NotePayloadDesc` type at `note.h:2109` +- Public/exported names: `NotePayloadSaveAndSleep` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NotePayloadSaveAndSleep(NotePayloadDesc *desc, uint32_t seconds, const char *modes)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: borrows caller-owned payload data, allocates a temporary base64 string when needed, passes it synchronously to `NoteSleep`, then frees it + +## Dependency Status + +- Project-local dependencies: + - `function:n_b64.c:169:JB64EncodeLen` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_b64.c:174:JB64Encode` finalized + - `function:n_helpers.c:1754:NoteSleep` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: Notecard `card.attn` command path through `NoteSleep` +- Data/type/global dependencies: `NotePayloadDesc` fields `data`, `alloc`, and `length`; transitive allocation, logging, JSON, and request hooks through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Initializes a temporary base64 pointer to null. If `desc->data` is non-null and `desc->length` is non-zero, computes the base64 encoded length with `JB64EncodeLen`, allocates that many bytes with `_Malloc`, returns false on allocation failure, and encodes `desc->data` into the temporary buffer with `JB64Encode`. It then calls `NoteSleep(stateB64, seconds, modes)`, frees the temporary buffer when one was allocated, and returns the `NoteSleep` result. When the descriptor has null data or zero length, it calls `NoteSleep(NULL, seconds, modes)` without allocating. + +## Important Boundaries + +- Preconditions and assumptions: `desc` must be non-null because the function reads `desc->data` before any guard. `desc->alloc` is not consulted; the function trusts `desc->length` bytes are readable from `desc->data`. +- Error/null/empty behavior: null `desc->data` or zero `desc->length` is treated as no payload and still delegates to `NoteSleep`. Temporary allocation failure returns false without calling `NoteSleep`. `NoteSleep` false propagates after freeing any temporary buffer. +- Ownership and lifetime: caller retains ownership of `desc` and `desc->data`. The base64 buffer is owned by this function and freed before return. `NoteSleep` attaches a borrowed string reference and consumes/deletes its command synchronously before returning, so the temporary buffer remains valid for its use. +- Concurrency/global state: no local static state; transitive allocation, logging, JSON, and request behavior use global SDK hook layers. +- Portability/platform constraints: portable C helper; platform-specific behavior is behind allocator/request hooks. +- Performance shape: O(payload length) encode plus one allocation/free only when payload data and length are both present; otherwise a direct `NoteSleep` delegation. +- Security or parsing constraints: no local bounds check against `desc->alloc`; very large `length` values rely on finalized base64 length/allocation behavior. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2124`, the definition in `n_helpers.c:1708`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that want to save an optional binary payload before putting the Notecard/host attention path into sleep mode. + +## Tests Observed + +Focused tests in `test/src/NotePayloadSaveAndSleep_test.cpp` fake `NoteMalloc` and `NoteSleep`. Covered cases: valid payload success, null payload data, zero payload length, allocation failure, and `NoteSleep` failure propagation. `test/src/NoteSleep_test.cpp` separately covers the delegated mode-string behavior. Gaps include null descriptor, exact base64 payload contents passed to `NoteSleep`, `desc->alloc` mismatch, very large length handling, and downstream JSON add failures inside `NoteSleep`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1708:NotePayloadSaveAndSleep` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JB64EncodeLen`, `_Malloc`, `JB64Encode`, `NoteSleep`, and `_Free`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1754__NoteSleep.md b/source-research/artifacts/functions/n_helpers_c__L1754__NoteSleep.md new file mode 100644 index 00000000..712894cc --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1754__NoteSleep.md @@ -0,0 +1,75 @@ +# `NoteSleep` + +## Status + +Finalized. Source-inspected public sleep helper, dependency-ready callees, direct production caller, declaration, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1754` +- Declaration/interface: `note.h:1977` +- Public/exported names: `NoteSleep` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSleep(char *stateb64, uint32_t seconds, const char *modes)` +- Visibility: public SDK helper declared in `note.h` +- Ownership/lifetime role: consumes a caller-owned command object through `NoteRequest`; may attach a borrowed payload string reference before request deletion + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:1006:NOTE_C_LOG_INFO` finalized + - `function:n_request.c:182:NoteNewCommand` finalized + - `function:n_cjson.c:2384:JCreateStringReference` finalized + - `function:n_cjson.c:1866:JAddItemToObject` finalized + - `function:n_str.c:31:strlcpy` finalized + - `function:n_str.c:69:strlcat` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1974:JAddNumberToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized +- External/system dependencies: none +- Data/type/global dependencies: logging macros depend on configured SDK log hooks; JSON allocation and request behavior follow previously finalized allocator/transport layers +- Artifact coverage: source, declaration, direct production caller, finalized callees, ownership boundaries, and focused tests inspected + +## Behavior + +Initializes `success` to false, logs that sleep is about to begin, and creates a `card.attn` command via `NoteNewCommand`. If command allocation fails, it skips request construction and returns false. On a non-null command, it optionally creates a `JCreateStringReference` for non-null `stateb64` and adds it as `"payload"` when the reference node allocation succeeds. It then builds a fixed 64-byte mode string beginning with `"sleep"`, appends `","` and `modes` when `modes` is non-null using bounded `strlcat`, adds `"mode"` and `"seconds"` fields, and sends the command with `NoteRequest`. The returned value is exactly the bool result from `NoteRequest` on the command path. The final `NOTE_C_LOG_ERROR("DIDN'T SLEEP\n")` call is unconditional. + +## Important Boundaries + +- Preconditions and assumptions: `stateb64` and `modes` are optional pointers; `seconds` is copied as a JSON number. Long `modes` strings are truncated by the 64-byte local buffer and `strlcat` result is ignored. +- Error/null/empty behavior: null command object returns false and does not call `NoteRequest`; null payload omits `"payload"`; failure to allocate the payload reference silently omits `"payload"`; field-add failures for `"mode"` or `"seconds"` are not checked before calling `NoteRequest`. +- Ownership and lifetime: `JCreateStringReference` stores a borrowed `stateb64` pointer; after adding it to the command, `NoteRequest` consumes/deletes the command before `NoteSleep` returns, so the borrowed pointer only needs to remain valid through the call. +- Concurrency/global state: no local static state; log and request behavior use global SDK hook layers. +- Portability/platform constraints: portable C helper; platform-specific behavior stays behind log, allocator, JSON, and request/transport hooks. +- Performance shape: O(length of optional mode string plus JSON field creation); avoids copying large payload state by using a string reference. +- Security or parsing constraints: no validation of mode tokens; long mode input is bounded/truncated by `strlcat`. + +## Direct Call Sites + +Exact source search found one production caller and public/test references: + +- `n_helpers.c:1730` `NotePayloadSaveAndSleep` base64-encodes an optional binary payload, calls `NoteSleep(stateB64, seconds, modes)`, frees the temporary base64 buffer afterward, and returns the sleep result. +- `note.h:1977` declares the public SDK API. + +## Role In Callers + +`NotePayloadSaveAndSleep` relies on `NoteSleep` consuming the command synchronously before the temporary `stateB64` buffer is freed. A false result from `NoteSleep` propagates as the high-level payload-save-and-sleep failure. + +## Tests Observed + +`test/src/NoteSleep_test.cpp` fakes `NoteNewCommand` and `NoteRequest` to cover command-construction failure skipping `NoteRequest`, request failure returning false, request success returning true, additional modes producing `"sleep,modea,modeb"`, and null modes still calling `NoteRequest`. `test/src/NotePayloadSaveAndSleep_test.cpp` fakes `NoteSleep` to cover the direct caller's success and failure propagation. + +## Test Coverage Notes + +Focused tests do not assert the `"payload"` string-reference field, the `"seconds"` field, truncation of long modes, unchecked field-add failures, or the unconditional final error log. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1754:NoteSleep` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1805__NoteWake.md b/source-research/artifacts/functions/n_helpers_c__L1805__NoteWake.md new file mode 100644 index 00000000..8a399036 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1805__NoteWake.md @@ -0,0 +1,61 @@ +# `NoteWake` + +## Status + +Finalized. Source-inspected public fixed-length wake-state restore wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1805` +- Declaration/interface: `note.h:1986` +- Signature/API shape: `bool NoteWake(int stateLen, void *state)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteWake` +- Macro aliases/wrappers: none +- Ownership/lifetime role: copies descriptor-owned payload into caller buffer and frees descriptor storage + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep` finalized in this slice + - `function:n_helpers.c:2453:NotePayloadFree` finalized in this slice +- External/system dependencies: `memcpy` +- Data/type/global dependencies: stack `NotePayloadDesc` +- Artifact coverage: generated artifact exists + +## Behavior + +Creates a stack `NotePayloadDesc`, retrieves a sleep payload into it, and returns false if retrieval fails. If the decoded descriptor length does not equal `(uint32_t)stateLen`, frees the descriptor and returns false. On a length match, copies `stateLen` bytes from `desc.data` into caller `state`, frees the descriptor, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: `state` must point to at least `stateLen` writable bytes when retrieval succeeds and lengths match. +- Error/null/empty behavior: retrieval failure returns false without cleanup because no descriptor ownership is established; wrong length frees descriptor and returns false. +- Ownership and lifetime: consumes the temporary descriptor through `NotePayloadFree` on all post-retrieval paths. +- Concurrency/global state: inherits request/time-cache/allocator behavior from `NotePayloadRetrieveAfterSleep`. +- Portability/platform constraints: state copy uses standard `memcpy`. +- Performance shape: one payload retrieval plus O(stateLen) copy on success. +- Security or parsing constraints: negative `stateLen` is cast to `uint32_t` for the length comparison and passed to `memcpy` only if it matches the descriptor length. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1986`. + +## Role In Callers + +This is the fixed-length convenience API above descriptor-level sleep payload retrieval. + +## Tests Observed + +Focused `test/src/NoteWake_test.cpp` covers retrieval failure, wrong decoded length cleanup, and successful state copy. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1805:NoteWake` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NotePayloadRetrieveAfterSleep` and `NotePayloadFree`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md b/source-research/artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md new file mode 100644 index 00000000..68955d8f --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md @@ -0,0 +1,75 @@ +# `NotePayloadRetrieveAfterSleep` + +## Status + +Finalized. Source-inspected public sleep-payload retrieval helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1830` +- Declaration/interface: `note.h:2132` +- Signature/API shape: `bool NotePayloadRetrieveAfterSleep(NotePayloadDesc *desc)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NotePayloadRetrieveAfterSleep` +- Macro aliases/wrappers: none +- Ownership/lifetime role: initializes/fills caller descriptor with allocated decoded payload buffer + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `function:n_helpers.c:791:_setTime` finalized in this slice + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_b64.c:106:JB64DecodeLen` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_b64.c:121:JB64Decode` finalized + - `macro:note.h:1006:NOTE_C_LOG_INFO` finalized +- External/system dependencies: `memset` +- Data/type/global dependencies: request/response JSON, time cache through `_setTime`, allocator hook through `_Malloc` +- Artifact coverage: generated artifact exists + +## Behavior + +Zeroes `*desc` when `desc` is non-null, sends `card.attn` with `"start": true`, and fails on request allocation, null response, or response error. A nonzero response `"time"` refreshes the global time cache with `_setTime`. + +If `desc == NULL`, a successful no-error response is enough and the function deletes the response and returns true. Otherwise it requires a nonempty `"payload"` string, allocates `JB64DecodeLen(payload)` bytes, decodes with `JB64Decode`, stores `data`, `alloc`, and `length` in the descriptor, logs success, deletes the response, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: caller frees a successful descriptor with `NotePayloadFree`; malformed Base64 is not separately validated by this helper. +- Error/null/empty behavior: descriptor is zeroed before failures when non-null; missing/empty payload is failure only when a descriptor was requested; allocation failure deletes the response and returns false. +- Ownership and lifetime: on success with `desc`, descriptor owns the allocated decoded buffer; response strings are borrowed only before response deletion. +- Concurrency/global state: may update global time cache; allocation uses hook-backed `_Malloc`. +- Portability/platform constraints: Base64 decoding and allocation remain in portable helpers/hooks. +- Performance shape: one request transaction plus O(payload length) Base64 sizing/decoding. +- Security or parsing constraints: allocates based on `JB64DecodeLen` and trusts `JB64Decode` output length; no checksum or payload schema validation. + +## Direct Call Sites + +Exact source search found direct production caller: + +- `n_helpers.c:1808` `NoteWake` retrieves and length-checks preserved state. + +## Role In Callers + +This is the public descriptor-level sleep payload restore API; `NoteWake` is the fixed-length convenience wrapper. + +## Tests Observed + +Focused `test/src/NotePayloadRetrieveAfterSleep_test.cpp` covers no-payload success, request allocation failure, null response, response error, missing payload, allocation failure, and successful Base64 decode with a `"time"` field. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddBoolToObject`, `NoteRequestResponse`, `NoteResponseError`, `NoteDeleteResponse`, `JGetInt`, `_setTime`, `JGetString`, `JB64DecodeLen`, `_Malloc`, `JB64Decode`, and `NOTE_C_LOG_INFO`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md b/source-research/artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md new file mode 100644 index 00000000..38fa2e16 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md @@ -0,0 +1,65 @@ +# `NoteFactoryReset` + +## Status + +Finalized. Source-inspected public factory-reset helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1902` +- Declaration/interface: `note.h:1994` +- Public/exported names: `NoteFactoryReset` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteFactoryReset(bool deleteConfigSettings)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a `card.restore` request and transfers it to `NoteRequest`; then drives delay/log/reset hooks after a successful request + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized + - `macro:n_lib.h:244:_DelayMs` finalized + - `macro:note.h:1006:NOTE_C_LOG_INFO` finalized + - `function:n_request.c:766:NoteReset` finalized +- External/system dependencies: Notecard `card.restore` transaction and post-restore reset path through request/delay/log/reset hooks +- Data/type/global dependencies: transitive request/transaction globals and hooks; `_DelayMs` uses the configured delay hook; `NOTE_C_LOG_INFO` uses configured log hook; `NoteReset` touches request/reset global state through its finalized path +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `card.restore` request. If request allocation succeeds, adds `"delete"` with the `deleteConfigSettings` argument and sends it with `NoteRequest`. If request creation or request execution fails, returns false immediately. After a successful restore request, waits 5000 ms, logs `"CARD RESTORED\n"`, then repeatedly calls `NoteReset()` until it returns true, sleeping 5000 ms between failed reset attempts. Returns true only after `NoteReset()` succeeds. + +## Important Boundaries + +- Preconditions and assumptions: no pointer inputs. `deleteConfigSettings` is copied into the JSON `"delete"` field. +- Error/null/empty behavior: request allocation failure returns false. `NoteRequest` failure returns false and skips delay/log/reset. `JAddBoolToObject` return value is ignored, so bool-field allocation/attach failure is not directly surfaced before `NoteRequest`. +- Ownership and lifetime: request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: request, logging, delay, and reset behavior use global SDK hook/state layers; there is no local static state in this wrapper. +- Portability/platform constraints: platform timing/logging behavior is behind `_DelayMs` and `NOTE_C_LOG_INFO` hooks. +- Performance shape: one restore request transaction, at least one 5000 ms delay on success, one log call, then one or more `NoteReset` attempts with 5000 ms delay between failures. +- Security or parsing constraints: no timeout or max-attempt limit around the `NoteReset` loop; if `NoteReset` never succeeds, this function does not return. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1994`, the definition in `n_helpers.c:1902`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that restore the Notecard to factory settings and then wait for/reset the card. + +## Tests Observed + +Focused tests in `test/src/NoteFactoryReset_test.cpp` fake `NoteNewRequest`, `NoteRequest`, and `NoteReset`. Covered cases: request creation failure returns false; request failure returns false; successful request writes `"delete"` true/false as requested; and a first reset failure is retried until success. Gaps include unchecked `JAddBoolToObject` failure, delay/log hook effects, and the infinite-loop case when `NoteReset` never succeeds. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1902:NoteFactoryReset` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddBoolToObject`, `NoteRequest`, `_DelayMs`, `NOTE_C_LOG_INFO`, and `NoteReset`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md b/source-research/artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md new file mode 100644 index 00000000..af9d7158 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md @@ -0,0 +1,62 @@ +# `NoteSetProductID` + +## Status + +Finalized. Source-inspected public product-id setter helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1939` +- Declaration/interface: `note.h:2010` +- Public/exported names: `NoteSetProductID` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSetProductID(const char *productID)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a `hub.set` request and transfers it to `NoteRequest`; always invalidates the service-config cache timer before return + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard/Notehub transaction path through `NoteRequest` +- Data/type/global dependencies: directly writes static `serviceConfigTimer` in `n_helpers.c`; transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `hub.set` request. If request allocation succeeds, writes `"product": "-"` for an empty `productID` string, otherwise writes `"product"` from `productID`, then returns the result of `NoteRequest(req)`. If request allocation fails, the request path leaves `success` false. On every return path, resets the static `serviceConfigTimer` to zero so cached service configuration will be refreshed. + +## Important Boundaries + +- Preconditions and assumptions: `productID` must be non-null when request allocation succeeds because the function reads `productID[0]` before any guarded helper call. +- Error/null/empty behavior: request allocation failure returns false but still clears `serviceConfigTimer`. Empty product ID is encoded as `"-"`. `JAddStringToObject` return values are ignored, so string allocation/attach failure is not surfaced before `NoteRequest`. +- Ownership and lifetime: product strings are copied by the finalized JSON string helper; request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: directly mutates the static service-config cache timer without local locking; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper; runtime effects go through portable hook layers. +- Performance shape: one request allocation, one JSON string add, one request transaction when allocation succeeds, and one static cache-timer write. +- Security or parsing constraints: does not validate product UID format or verify the `"product"` field was attached. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2010`, the definition in `n_helpers.c:1939`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that set the Notecard ProductUID and force service-config cache refresh on subsequent reads. + +## Tests Observed + +Focused tests in `test/src/NoteSetProductID_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request allocation failure, `NoteRequest` false/true propagation, and empty string mapping to `"-"`. Gaps include null `productID`, non-empty product field assertion, JSON field-add failure, direct `serviceConfigTimer` invalidation assertion, and end-to-end transport/user-agent behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1939:NoteSetProductID` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddStringToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md b/source-research/artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md new file mode 100644 index 00000000..6ef7e42f --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md @@ -0,0 +1,62 @@ +# `NoteSetSerialNumber` + +## Status + +Finalized. Source-inspected public serial-number setter helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1963` +- Declaration/interface: `note.h:2002` +- Public/exported names: `NoteSetSerialNumber` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSetSerialNumber(const char *sn)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a `hub.set` request and transfers it to `NoteRequest`; always invalidates the service-config cache timer before return + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard/Notehub transaction path through `NoteRequest` +- Data/type/global dependencies: directly writes static `serviceConfigTimer` in `n_helpers.c`; transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `hub.set` request. If request allocation succeeds, writes `"sn": "-"` for an empty serial number string, otherwise writes `"sn"` from `sn`, then returns the result of `NoteRequest(req)`. If request allocation fails, the request path leaves `success` false. On every return path, resets the static `serviceConfigTimer` to zero so cached service configuration will be refreshed. + +## Important Boundaries + +- Preconditions and assumptions: `sn` must be non-null when request allocation succeeds because the function reads `sn[0]` before any guarded helper call. +- Error/null/empty behavior: request allocation failure returns false but still clears `serviceConfigTimer`. Empty serial number is encoded as `"-"`. `JAddStringToObject` return values are ignored, so string allocation/attach failure is not surfaced before `NoteRequest`. +- Ownership and lifetime: serial strings are copied by the finalized JSON string helper; request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: directly mutates the static service-config cache timer without local locking; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper; runtime effects go through portable hook layers. +- Performance shape: one request allocation, one JSON string add, one request transaction when allocation succeeds, and one static cache-timer write. +- Security or parsing constraints: does not validate serial-number format or verify the `"sn"` field was attached. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2002`, the definition in `n_helpers.c:1963`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that set the Notecard serial number and force service-config cache refresh on subsequent reads. + +## Tests Observed + +Focused tests in `test/src/NoteSetSerialNumber_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request allocation failure, `NoteRequest` false/true propagation, and empty string mapping to `"-"`. Gaps include null `sn`, non-empty serial field assertion, request name, JSON field-add failure, direct `serviceConfigTimer` invalidation assertion, and end-to-end transport behavior. The empty-string test comment says product but asserts `"sn"`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1963:NoteSetSerialNumber` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddStringToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md b/source-research/artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md new file mode 100644 index 00000000..76a416bc --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md @@ -0,0 +1,64 @@ +# `NoteSetUploadMode` + +## Status + +Finalized. Source-inspected public upload-mode request helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:1993` +- Declaration/interface: `note.h:2020` +- Public/exported names: `NoteSetUploadMode` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSetUploadMode(const char *uploadMode, int uploadMinutes, bool align)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a `hub.set` request and transfers it to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1974:JAddNumberToObject` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard/Notehub transaction path through `NoteRequest` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `hub.set` request. If request allocation succeeds, adds `"mode"` from `uploadMode`; when `uploadMinutes != 0`, adds `"outbound"` and `"align"`; then returns `NoteRequest(req)`. If request allocation fails, returns false without calling `NoteRequest`. + +## Important Boundaries + +- Preconditions and assumptions: `uploadMode` is passed directly to `JAddStringToObject`; a null mode is not locally rejected, and the finalized callee returns null for null strings while this helper ignores that result. +- Error/null/empty behavior: request allocation failure returns false. Zero upload minutes omits both `"outbound"` and `"align"`. JSON field-add return values are ignored, so field allocation/attach failures do not stop `NoteRequest`. +- Ownership and lifetime: request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. `JAddStringToObject` copies the mode string rather than retaining the caller pointer. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one request allocation, up to three JSON field additions, and one request transaction. +- Security or parsing constraints: does not validate upload mode tokens or reject negative interval values; non-zero negative intervals are emitted as JSON numbers. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2020`, the definition in `n_helpers.c:1993`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that configure Notehub upload mode and optional upload interval alignment. + +## Tests Observed + +Focused tests in `test/src/NoteSetUploadMode_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request allocation failure; `NoteRequest` false/true propagation; zero minutes omitting `"outbound"` and `"align"`; non-zero minutes adding both. Gaps include request name, `"mode"` value, `align=false`, null `uploadMode`, negative minutes, and JSON field-add failures. + +## Graph Links + +- Graph node id: `function:n_helpers.c:1993:NoteSetUploadMode` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddStringToObject`, `JAddNumberToObject`, `JAddBoolToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md b/source-research/artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md new file mode 100644 index 00000000..505df705 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md @@ -0,0 +1,64 @@ +# `NoteSetSyncMode` + +## Status + +Finalized. Source-inspected public sync-mode request helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2028` +- Declaration/interface: `note.h:2032` +- Public/exported names: `NoteSetSyncMode` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSetSyncMode(const char *uploadMode, int uploadMinutes, int downloadMinutes, bool align, bool sync)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a `hub.set` request and transfers it to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1974:JAddNumberToObject` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard/Notehub transaction path through `NoteRequest` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `hub.set` request. If request allocation succeeds, adds `"mode"` from `uploadMode`; when `uploadMinutes != 0`, adds `"outbound"` and `"align"`; when `downloadMinutes != 0`, adds `"inbound"`; always adds `"sync"` from `sync`; then returns `NoteRequest(req)`. If request allocation fails, returns false without calling `NoteRequest`. + +## Important Boundaries + +- Preconditions and assumptions: `uploadMode` is passed directly to `JAddStringToObject`; a null mode is not locally rejected, and the finalized callee returns null for null strings while this helper ignores that result. +- Error/null/empty behavior: request allocation failure returns false. Zero upload minutes omits both `"outbound"` and `"align"`. Zero download minutes omits `"inbound"`. JSON field-add return values are ignored, so field allocation/attach failures do not stop `NoteRequest`. +- Ownership and lifetime: request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one request allocation, up to five JSON field additions, and one request transaction. +- Security or parsing constraints: does not validate upload mode tokens or reject negative interval values; non-zero negative intervals are emitted as JSON numbers. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2032`, the definition in `n_helpers.c:2028`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that configure upload/download sync intervals and service-side sync behavior. + +## Tests Observed + +Focused tests in `test/src/NoteSetSyncMode_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request allocation failure; `NoteRequest` false; zero/non-zero upload minutes controlling `"outbound"` and `"align"`; zero/non-zero download minutes controlling `"inbound"`. Gaps include request name, `"mode"` value, `"sync"` presence/value, `align=false`, null `uploadMode`, negative intervals, and JSON field-add failures. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2028:NoteSetSyncMode` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddStringToObject`, `JAddNumberToObject`, `JAddBoolToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2060__NoteTemplate.md b/source-research/artifacts/functions/n_helpers_c__L2060__NoteTemplate.md new file mode 100644 index 00000000..3250dc3c --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2060__NoteTemplate.md @@ -0,0 +1,64 @@ +# `NoteTemplate` + +## Status + +Finalized. Source-inspected public Notefile template helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2060` +- Declaration/interface: `note.h:2209` +- Public/exported names: `NoteTemplate` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteTemplate(const char *target, J *body)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: consumes/frees `body` on all visible paths by deleting it when request allocation fails or attaching it into the request before `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1866:JAddItemToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard transaction path through `NoteRequest` +- Data/type/global dependencies: JSON object ownership and transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `note.template` request. If request allocation fails, deletes `body` and returns false. Otherwise adds `"file"` from `target`, attaches `"body"` by transferring `body` into the request, and returns `NoteRequest(req)`. + +## Important Boundaries + +- Preconditions and assumptions: `target` and `body` are not locally validated. Null `target` is delegated to `JAddStringToObject`, whose null return is ignored. Null `body` is delegated to `JAddItemToObject`, which handles null item behavior through its finalized path. +- Error/null/empty behavior: request allocation failure deletes `body` and returns false. Field-add failures for `"file"` or `"body"` are ignored before `NoteRequest`; success is determined by `NoteRequest`. +- Ownership and lifetime: caller gives up ownership of `body`. On request allocation failure `JDelete(body)` frees it; on request allocation success `JAddItemToObject(req, "body", body)` transfers ownership to `req`, and `NoteRequest` consumes/deletes the request through its finalized path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one request allocation, one JSON string add, one JSON object attach, and one request transaction. +- Security or parsing constraints: does not validate notefile target or template body shape locally. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2209`, the definition in `n_helpers.c:2060`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that set a Notefile template and transfer ownership of the template body to the SDK request path. + +## Tests Observed + +Focused tests in `test/src/NoteTemplate_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request allocation failure returns false, `NoteRequest` false propagates, and `NoteRequest` true propagates. Gaps include request name, `"file"` and `"body"` request shape, null `target`, null `body`, add-helper allocation failures, and direct ownership/free assertions. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2060:NoteTemplate` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JDelete`, `JAddStringToObject`, `JAddItemToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2083__NoteAdd.md b/source-research/artifacts/functions/n_helpers_c__L2083__NoteAdd.md new file mode 100644 index 00000000..71c5edc9 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2083__NoteAdd.md @@ -0,0 +1,66 @@ +# `NoteAdd` + +## Status + +Finalized. Source-inspected public Notefile add helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2083` +- Declaration/interface: `note.h:2044` +- Public/exported names: `NoteAdd`; macro alias `NoteSend` +- Macro aliases/wrappers: `note.h:2033` defines `NoteSend` as `NoteAdd` +- Signature/API shape: `bool NoteAdd(const char *target, J *body, bool urgent)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: consumes/frees `body` on all visible paths by deleting it when request allocation fails or attaching it into the request before `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1866:JAddItemToObject` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard transaction path through `NoteRequest` +- Data/type/global dependencies: JSON object ownership and transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `note.add` request. If request allocation fails, deletes `body` and returns false. Otherwise adds `"file"` from `target`, attaches `"body"` by transferring `body` into the request, adds `"start": true` when `urgent` is true, and returns `NoteRequest(req)`. + +## Important Boundaries + +- Preconditions and assumptions: `target` and `body` are not locally validated. Null `target` is delegated to `JAddStringToObject`, whose null return is ignored. Null `body` is delegated to `JAddItemToObject`, which handles null item behavior through its finalized path. +- Error/null/empty behavior: request allocation failure deletes `body` and returns false. Field-add failures for `"file"`, `"body"`, or `"start"` are not surfaced before `NoteRequest`; success is determined by `NoteRequest`. +- Ownership and lifetime: caller gives up ownership of `body`. On request allocation failure `JDelete(body)` frees it; on request allocation success `JAddItemToObject(req, "body", body)` transfers ownership to `req`, and `NoteRequest` consumes/deletes the request through its finalized path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one request allocation, one JSON string add, one JSON object attach, optional urgent boolean add, and one request transaction. +- Security or parsing constraints: does not validate notefile target or body shape locally. + +## Direct Call Sites + +Exact source search found the public macro alias in `note.h:2033`, the declaration in `note.h:2044`, the definition in `n_helpers.c:2083`, and focused tests. A source search outside tests found no production repository callers of `NoteAdd` or `NoteSend`. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that add a note body to a Notefile and optionally request urgent sync. + +## Tests Observed + +Focused tests in `test/src/NoteAdd_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request allocation failure returns false, `NoteRequest` false/true propagation, and urgent false/true controlling `"start"`. Gaps include request name, `"file"` and `"body"` request shape, null `target`, null `body`, add-helper allocation failures, and direct ownership/free assertions. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2083:NoteAdd` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JDelete`, `JAddStringToObject`, `JAddItemToObject`, `JAddBoolToObject`, and `NoteRequest`. +- Public macro alias node: `macro:note.h:2033:NoteSend` expands to this function. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md b/source-research/artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md new file mode 100644 index 00000000..4be44a1b --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md @@ -0,0 +1,70 @@ +# `NoteSendToRoute` + +## Status + +Finalized. Source-inspected public route-send helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2119` +- Declaration/interface: `note.h:2057` +- Public/exported names: `NoteSendToRoute` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSendToRoute(const char *method, const char *routeAlias, char *notefile, J *body)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: consumes caller-owned `body`, first through a `note.event` request and then by detaching the response body into a `web.` request + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson.c:1866:JAddItemToObject` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized + - `function:n_cjson.c:2135:JDetachItemFromObject` finalized + - `function:n_str.c:31:strlcpy` finalized + - `function:n_str.c:69:strlcat` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard `note.event` request path and dynamic `web.` request path through transaction hooks +- Data/type/global dependencies: JSON object ownership and transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Builds a two-step route send. First creates a `note.event` request; if allocation fails, deletes the caller-supplied `body` and returns false. It attaches `body` as `"body"`, adds `"file"` from `notefile`, and sends the first request with `NoteRequestResponse`. A null response or response error returns false after any non-null response cleanup. On success, detaches `"body"` from the response and deletes the response. It then builds a stack request string starting with `"web."` plus `method`, creates that request, deletes the detached body and returns false if allocation fails, otherwise attaches the body, adds `"route"` from `routeAlias`, and returns `NoteRequest(req)`. + +## Important Boundaries + +- Preconditions and assumptions: `method` must be non-null because it is passed to `strlcat`. `notefile` and `routeAlias` are passed to `JAddStringToObject`; null values cause that helper to return null, which this function ignores. +- Error/null/empty behavior: first request allocation failure deletes the original `body`. Null first response returns false. Error response is deleted and returns false. Missing response `"body"` produces a null detached body; the second request can still be sent and succeed if `NoteRequest` succeeds. Second request allocation failure deletes the detached body. +- Ownership and lifetime: caller gives up ownership of `body`. On the first request path, `JAddItemToObject` transfers `body` into the `note.event` request; the response body is detached into local ownership, then transferred into the `web.` request or deleted on second allocation failure. Request and response objects are consumed by finalized request/delete paths. +- Concurrency/global state: no direct global state; both transaction paths use request state, locks, transport hooks, allocation hooks, timing hooks, reset state, and optional CRC state. +- Portability/platform constraints: builds the dynamic request string in a fixed 32-byte stack buffer using project-local `strlcpy`/`strlcat`; no platform-specific code in this wrapper. +- Performance shape: two sequential Notecard transactions on the success path, plus JSON attach/detach work and bounded request-string construction. +- Security or parsing constraints: long `method` values are silently truncated; request-string truncation is not reported. The helper does not validate `method` against `get`, `post`, or `put`, does not verify `"file"` or `"route"` field attachment, and can send a second request without a body. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2057`, the definition in `n_helpers.c:2119`, and focused tests. No production repository caller or alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that convert a note body into an event and send it to a Notehub route via a dynamic web request. + +## Tests Observed + +Focused tests in `test/src/NoteSendToRoute_test.cpp` fake `NoteNewRequest`, `NoteRequestResponse`, and `NoteRequest`. Covered cases: first request allocation failure, null first response, error response, second request allocation failure, final request false/true, and `"route"` value on the second request. Gaps include first request name, second request name, `"file"` field, event body detach/forwarding, missing response body behavior, null arguments, method truncation, and unchecked JSON add failures. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2119:NoteSendToRoute` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JDelete`, `JAddItemToObject`, `JAddStringToObject`, `NoteRequestResponse`, `NoteResponseError`, `NoteDeleteResponse`, `JDetachItemFromObject`, `strlcpy`, `strlcat`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md b/source-research/artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md new file mode 100644 index 00000000..e389988e --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md @@ -0,0 +1,64 @@ +# `NoteGetVoltage` + +## Status + +Finalized. Source-inspected public voltage read helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2175` +- Declaration/interface: `note.h:2065` +- Public/exported names: `NoteGetVoltage` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteGetVoltage(JNUMBER *voltage)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: initializes caller-owned output storage, receives a response object from `NoteRequestResponse`, and deletes the response with `NoteDeleteResponse` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:99:JGetNumber` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: Notecard request/response transaction path through `NoteRequestResponse` +- Data/type/global dependencies: `JNUMBER` precision depends on public header configuration; transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Writes `0.0` to `*voltage`, sends a `card.voltage` request through `NoteRequestResponse(NoteNewRequest(...))`, and returns false when no response is returned. When a response exists, returns false if `NoteResponseError(rsp)` reports an error. On a non-error response, assigns `JGetNumber(rsp, "value")` to `*voltage`, deletes the response, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: `voltage` must be non-null and writable because the function writes `*voltage` before request allocation. +- Error/null/empty behavior: request/response failure and response errors return false after the output has been reset to zero. A no-error response with missing or non-number `"value"` returns true with `0.0`, following finalized `JGetNumber` behavior. +- Ownership and lifetime: `NoteRequestResponse` owns the request created by `NoteNewRequest`; the response object is deleted by `NoteDeleteResponse` on every non-null response path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: `JNUMBER` is `float` under `NOTE_C_SINGLE_PRECISION` and `double` otherwise; no platform-specific behavior in this wrapper. +- Performance shape: one request allocation/transaction, one response error check, one numeric field read, and one response delete. +- Security or parsing constraints: missing/non-numeric `"value"` is indistinguishable from a real numeric zero on successful no-error responses. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2065`, the definition in `n_helpers.c:2175`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that retrieve the Notecard voltage reading. + +## Tests Observed + +Focused tests in `test/src/NoteGetVoltage_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: request creation failure, no response, response error, and successful numeric `"value"` copy. Gaps include null output pointer, request name, missing/non-number `"value"`, response cleanup assertion, and real transaction hook behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2175:NoteGetVoltage` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `JGetNumber`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md b/source-research/artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md new file mode 100644 index 00000000..6e680350 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md @@ -0,0 +1,60 @@ +# `NoteBinaryCodecMaxDecodedLength` + +## Status + +Finalized. Source-inspected public binary codec decoded-length wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:218` +- Declaration/interface: `note.h:1628` +- Public/exported names: `NoteBinaryCodecMaxDecodedLength` +- Macro aliases/wrappers: none found +- Signature/API shape: `uint32_t NoteBinaryCodecMaxDecodedLength(uint32_t bufferSize)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: pure sizing wrapper; owns no memory and touches no caller buffers + +## Dependency Status + +- Project-local dependencies: + - `function:n_cobs.c:305:_cobsGuaranteedFit` finalized +- External/system dependencies: none +- Data/type/global dependencies: none beyond integer arithmetic in the finalized COBS helper +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `_cobsGuaranteedFit(bufferSize)` without modifying the argument or applying additional checks. + +## Important Boundaries + +- Preconditions and assumptions: accepts any `uint32_t` buffer size; boundary handling is delegated to `_cobsGuaranteedFit`. +- Error/null/empty behavior: no pointer inputs or local failure path. For small buffer sizes, finalized `_cobsGuaranteedFit` returns zero. +- Ownership and lifetime: no ownership or lifetime effects. +- Concurrency/global state: no global state. +- Portability/platform constraints: portable integer arithmetic through the finalized COBS helper. +- Performance shape: O(1) wrapper. +- Security or parsing constraints: no parsing; overflow/edge behavior is inherited from finalized `_cobsGuaranteedFit`. + +## Direct Call Sites + +Exact source search found the public declaration in `note.h:1628`, the definition in `n_helpers.c:218`, a source comment reference, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that need the maximum unencoded payload length guaranteed to fit in an encoded buffer. + +## Tests Observed + +Focused tests in `test/src/NoteBinaryCodecMaxDecodedLength_test.cpp` fake `_cobsGuaranteedFit` and verify the argument and return value are passed through unchanged. They do not exercise real COBS arithmetic edge cases through this wrapper. + +## Graph Links + +- Graph node id: `function:n_helpers.c:218:NoteBinaryCodecMaxDecodedLength` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_cobsGuaranteedFit`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md b/source-research/artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md new file mode 100644 index 00000000..57d30b64 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md @@ -0,0 +1,64 @@ +# `NoteGetTemperature` + +## Status + +Finalized. Source-inspected public temperature read helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2197` +- Declaration/interface: `note.h:2073` +- Public/exported names: `NoteGetTemperature` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteGetTemperature(JNUMBER *temp)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: initializes caller-owned output storage, receives a response object from `NoteRequestResponse`, and deletes the response with `NoteDeleteResponse` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:99:JGetNumber` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: Notecard request/response transaction path through `NoteRequestResponse` +- Data/type/global dependencies: `JNUMBER` precision depends on public header configuration; transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Writes `0.0` to `*temp`, sends a `card.temp` request through `NoteRequestResponse(NoteNewRequest(...))`, and returns false when no response is returned. When a response exists, returns false if `NoteResponseError(rsp)` reports an error. On a non-error response, assigns `JGetNumber(rsp, "value")` to `*temp`, deletes the response, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: `temp` must be non-null and writable because the function writes `*temp` before request allocation. +- Error/null/empty behavior: request/response failure and response errors return false after the output has been reset to zero. A no-error response with missing or non-number `"value"` returns true with `0.0`, following finalized `JGetNumber` behavior. +- Ownership and lifetime: `NoteRequestResponse` owns the request created by `NoteNewRequest`; the response object is deleted by `NoteDeleteResponse` on every non-null response path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: `JNUMBER` is `float` under `NOTE_C_SINGLE_PRECISION` and `double` otherwise; no platform-specific behavior in this wrapper. +- Performance shape: one request allocation/transaction, one response error check, one numeric field read, and one response delete. +- Security or parsing constraints: missing/non-numeric `"value"` is indistinguishable from a real numeric zero on successful no-error responses. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2073`, the definition in `n_helpers.c:2197`, and focused tests. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that retrieve the Notecard temperature reading. + +## Tests Observed + +Focused tests in `test/src/NoteGetTemperature_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: request creation failure, no response, response error, and successful numeric `"value"` copy. Gaps include null output pointer, request name, missing/non-number `"value"`, response cleanup assertion, and real transaction hook behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2197:NoteGetTemperature` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `JGetNumber`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2226__NoteGetContact.md b/source-research/artifacts/functions/n_helpers_c__L2226__NoteGetContact.md new file mode 100644 index 00000000..15773f52 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2226__NoteGetContact.md @@ -0,0 +1,65 @@ +# `NoteGetContact` + +## Status + +Finalized. Source-inspected public contact read helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2226` +- Declaration/interface: `note.h:2088` +- Public/exported names: `NoteGetContact` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteGetContact(char *nameBuf, int nameBufLen, char *orgBuf, int orgBufLen, char *roleBuf, int roleBufLen, char *emailBuf, int emailBufLen)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: initializes caller-owned output buffers when non-null, receives a response object from `NoteRequestResponse`, and deletes the response with `NoteDeleteResponse` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_str.c:31:strlcpy` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: Notecard request/response transaction path through `NoteRequestResponse` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Clears each non-null output buffer to an empty string, sends a `card.contact` request through `NoteRequestResponse(NoteNewRequest(...))`, and returns false when no response is returned. When a response exists, returns false if `NoteResponseError(rsp)` reports an error. On a non-error response, copies `"name"`, `"org"`, `"role"`, and `"email"` response fields into the corresponding non-null buffers using `strlcpy`, deletes the response, and returns true. + +## Important Boundaries + +- Preconditions and assumptions: null output buffers are accepted and skipped. Every non-null output buffer must be writable for at least one byte because the function writes the leading NUL before checking that buffer's length argument. +- Error/null/empty behavior: request/response failure and response errors return false after clearing all non-null buffers. Missing or non-string contact fields copy as empty strings through finalized `JGetString`. +- Ownership and lifetime: `NoteRequestResponse` owns the request created by `NoteNewRequest`; the response object is deleted by `NoteDeleteResponse` on every non-null response path. Copied strings do not escape as borrowed response pointers. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: uses project-local `strlcpy`; no platform-specific behavior in this wrapper. +- Performance shape: one request allocation/transaction, one response error check, up to four bounded string copies, and one response delete. +- Security or parsing constraints: truncation is not reported. Lengths are `int` but passed to `strlcpy` as `size_t`; negative values would convert to very large sizes. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2088`, the definition in `n_helpers.c:2226`, and focused tests. No production repository caller or alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that retrieve contact fields from the Notecard. + +## Tests Observed + +Focused tests in `test/src/NoteGetContact_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: request allocation failure, response failure, response error, successful all-null buffers, and successful copy of all four fields. Gaps include request name, truncation, zero/negative lengths, missing/non-string fields, empty `"err"`, mixed null/non-null buffers, and real transaction hook behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2226:NoteGetContact` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `strlcpy`, `JGetString`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2276__NoteSetContact.md b/source-research/artifacts/functions/n_helpers_c__L2276__NoteSetContact.md new file mode 100644 index 00000000..e6ae82a9 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2276__NoteSetContact.md @@ -0,0 +1,62 @@ +# `NoteSetContact` + +## Status + +Finalized. Source-inspected public contact write helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2276` +- Declaration/interface: `note.h:2099` +- Public/exported names: `NoteSetContact` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteSetContact(char *nameBuf, char *orgBuf, char *roleBuf, char *emailBuf)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: reads caller-owned input strings, copies non-null values into a request, and transfers the request to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: Notecard transaction path through `NoteRequest` +- Data/type/global dependencies: transitive request/transaction globals and hooks through request callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `card.contact` request. If request allocation fails, returns false. For each non-null input pointer, adds the corresponding string field: `"name"`, `"org"`, `"role"`, and `"email"`. Null input pointers omit their fields. Returns the `NoteRequest(req)` result. + +## Important Boundaries + +- Preconditions and assumptions: input pointers may be null. Non-null inputs are expected to point to valid NUL-terminated strings readable by `JAddStringToObject`. +- Error/null/empty behavior: request allocation failure returns false. All-null inputs still send a bare `card.contact` request. `JAddStringToObject` return values are ignored, so per-field allocation/attach failures can produce a partial request that is still sent. +- Ownership and lifetime: input string buffers remain caller-owned and are copied by `JAddStringToObject`; request ownership transfers to `NoteRequest`, which handles request/response cleanup through its finalized path. +- Concurrency/global state: no direct global state; transitive request path uses transaction state, locks, transport hooks, allocation hooks, and timing hooks. +- Portability/platform constraints: no platform-specific behavior in this wrapper. +- Performance shape: one request allocation, zero to four JSON string additions, and one request transaction. +- Security or parsing constraints: no local validation of contact field content or email format. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2099`, the definition in `n_helpers.c:2276`, and focused tests. No production repository caller or alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that set the Notecard contact fields. + +## Tests Observed + +Focused tests in `test/src/NoteSetContact_test.cpp` fake `NoteNewRequest` and `NoteRequest`. Covered cases: request allocation failure, `NoteRequest` failure, all-null inputs returning true when the request succeeds, and all-valid inputs returning true. Gaps include request name, field shape assertions, mixed null/non-null inputs, JSON field-add failures, request ownership, response error handling, and real transaction hook behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2276:NoteSetContact` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddStringToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md b/source-research/artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md new file mode 100644 index 00000000..7c87027c --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md @@ -0,0 +1,70 @@ +# `_timerExpiredSecs` + +## Status + +Finalized. Source-inspected suppression timer helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2301` +- Declaration/interface: `n_helpers.c:78`; exposed to tests through `test/include/test_static.h:29` when static helpers are test-visible +- Signature/API shape: `NOTE_C_STATIC bool _timerExpiredSecs(uint32_t *timer, uint32_t periodSecs)` +- Visibility: internal helper +- Public/exported names: none +- Macro aliases/wrappers: none +- Ownership/lifetime role: mutates caller-provided timer state in place + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized +- External/system dependencies: none +- Data/type/global dependencies: caller-owned `uint32_t *timer`; platform millisecond hook through `_GetMs` + +## Behavior + +Reads the previous timer value, gets the current millisecond counter through `_GetMs`, and treats the timer as expired when any of these conditions hold: + +- the current counter is less than the previous timer value, interpreted as clock reset/wrap/backward movement; +- the previous timer value is `0`, interpreted as uninitialized; +- the current counter is greater than or equal to `prev + periodSecs * 1000`. + +When expired, it writes the current millisecond counter back to `*timer` and returns `true`. Otherwise it leaves `*timer` unchanged and returns `false`. + +## Important Boundaries + +- Preconditions and assumptions: caller passes a non-null timer pointer; source has no null guard. +- Error/null/empty behavior: no error reporting. A zero previous timer expires immediately. +- Ownership and lifetime: no allocation; caller owns timer storage. +- Concurrency/global state: reads platform time through `_GetMs`; mutates shared/static timer globals when callers pass them. +- Performance shape: O(1). +- Portability/platform constraints: depends on the platform `NoteGetMs` hook. If no hook is installed and `_GetMs` returns `0`, an uninitialized timer remains zero and repeated calls continue to expire. +- Arithmetic constraints: interval calculation uses 32-bit unsigned arithmetic in `prev + (periodSecs * 1000)`. The source explicitly handles `now < prev`, but does not otherwise special-case multiplication or addition wraparound. + +## Direct Call Sites + +Exact source search found internal callers in `n_helpers.c`: + +- `NoteTimeST` uses it for refresh and suppression timers before requesting `card.time`. +- `NoteLocationValidST` uses it to suppress repeated `card.location` polling. +- `NoteIsConnectedST` uses it to suppress repeated `hub.status` polling. +- `NoteGetServiceConfigST` uses it with a four-hour period to refresh cached `hub.get` service configuration. +- `NoteGetStatusST` uses it to suppress repeated `card.status` polling. + +## Role In Callers + +Provides shared cache/suppression timing for high-level helper APIs so repeated calls can reuse cached state until the configured interval elapses. Reset-style public wrappers zero their associated timer globals before calling the suppressed variants when they need an immediate refresh. + +## Tests Observed + +No dedicated direct `_timerExpiredSecs` test was found. Focused helper tests for time, location, connectivity, service config, status, and debug-sync paths fake `NoteGetMs` or exercise timer-gated callers indirectly. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2301:_timerExpiredSecs` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md b/source-research/artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md new file mode 100644 index 00000000..42ee170d --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md @@ -0,0 +1,82 @@ +# `NoteDebugSyncStatus` + +## Status + +Final. Behavior, public declaration, direct call sites, state/timing behavior, request/response ownership, debug suppression, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2332` +- Declaration/interface: `note.h:423` +- Public/exported names: `NoteDebugSyncStatus` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteDebugSyncStatus(int pollFrequencyMs, int maxLevel)` +- Visibility: public SDK helper +- Ownership/lifetime role: creates a request consumed by `NoteRequestResponse`; owns and deletes any returned response before returning + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:243:_GetMs` (calls, verified) +- `function:n_request.c:173:NoteNewRequest` (calls, verified) +- `function:n_cjson.c:2013:JAddStringToObject` (calls, verified) +- `function:n_cjson.c:1950:JAddBoolToObject` (calls, verified) +- `function:n_request.c:88:_noteSuspendTransactionDebug` (calls, verified) +- `function:n_request.c:220:NoteRequestResponse` (calls, verified; consumes request) +- `function:n_request.c:80:_noteResumeTransactionDebug` (calls, verified) +- `macro:note.h:479:NoteResponseError` (calls, verified) +- `macro:note.h:486:NoteDeleteResponse` (calls, verified) +- `function:n_cjson_helpers.c:60:JGetObject` (calls, verified) +- `function:n_cjson_helpers.c:122:JGetInt` (calls, verified) +- `macro:n_lib.h:256:_Debug` (calls, verified) +- `function:n_cjson_helpers.c:27:JGetString` (calls, verified) +- `macro:n_lib.h:257:_Debugln` (calls, verified) +- External/system dependencies: Notecard `note.get` request for `_synclog.qi` +- Data/type/global dependencies: static local `lastCommStatusPollMs` +- Artifact coverage: generated artifact exists + +## Behavior + +Polls `_synclog.qi` for one queued sync-status note and optionally emits it to the debug stream. If a previous no-status/error poll recorded `lastCommStatusPollMs` and the unsigned elapsed time is less than `(uint32_t)pollFrequencyMs`, it returns `false` without making a request. + +When polling, it creates a `note.get` request, sets `"file":"_synclog.qi"` and `"delete":true`, suppresses transaction debug output around `NoteRequestResponse(req)`, and resumes debug output immediately after the request returns. A `NULL` request or `NULL` response returns `false`. + +If the response has an error, it records `lastCommStatusPollMs = _GetMs()`, deletes the response, and returns `false`. Otherwise it looks for object field `"body"`. If a body exists and `maxLevel < 0` or `JGetInt(body, "level") <= maxLevel`, it writes `[SYNC] `, the body `subsystem`, a space, and the body `text` with a trailing newline. It deletes the response and returns `true` even when no body is present or the level is above `maxLevel`. + +## Important Boundaries + +- Preconditions and assumptions: intended to be called periodically by applications that want sync-status debug output +- Error/null/empty behavior: no request allocation or no response returns `false`; response error returns `false` and starts the suppression interval; no body returns `true`; missing body fields flow through `JGetString`/debug helpers +- Ownership and lifetime: `NoteRequestResponse` consumes the request; this function deletes any non-`NULL` response exactly once +- Concurrency/global state: uses static `lastCommStatusPollMs` without locking; transaction debug suppression counter is incremented/decremented around the request +- Portability/platform constraints: debug output can be compiled away by `NOTE_NODEBUG` through `_Debug`/`_Debugln` +- Performance shape: normally one Notecard request per unsuppressed call; quick no-request return while suppressed +- Security or parsing constraints: no untrusted parsing beyond JSON helpers; debug output may include Notecard-provided subsystem/text fields + +## Direct Call Sites + +No production library callers found by `rg -n "\bNoteDebugSyncStatus\b" --glob '!source-research/**'`. References are the public declaration in `note.h:423`, definition in `n_helpers.c:2332`, and focused unit tests. + +## Role In Callers + +Application-facing polling helper for surfacing Notecard sync-log entries as debug output. + +## Tests Observed + +`test/src/NoteDebugSyncStatus_test.cpp` covers: + +- `NoteNewRequest` failure, `NoteRequestResponse` failure, and response-error failure +- suppression of repeated polls after an error and unsigned millisecond rollover behavior +- success with no response body +- valid body with level above, at, below, and unrestricted by negative `maxLevel` +- debug output expectations under normal and `NOTE_NODEBUG` builds + +## Graph Links + +- Graph node id: `function:n_helpers.c:2332:NoteDebugSyncStatus` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers negative `pollFrequencyMs`; source casts it to `uint32_t` in the suppression comparison. diff --git a/source-research/artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md b/source-research/artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md new file mode 100644 index 00000000..ffd835c9 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md @@ -0,0 +1,60 @@ +# `NoteBinaryCodecMaxEncodedLength` + +## Status + +Finalized. Source-inspected public binary codec encoded-length wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:233` +- Declaration/interface: `note.h:1636` +- Public/exported names: `NoteBinaryCodecMaxEncodedLength` +- Macro aliases/wrappers: none found +- Signature/API shape: `uint32_t NoteBinaryCodecMaxEncodedLength(uint32_t unencodedLength)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: pure sizing wrapper; owns no memory and touches no caller buffers + +## Dependency Status + +- Project-local dependencies: + - `function:n_cobs.c:263:_cobsEncodedMaxLength` finalized +- External/system dependencies: none +- Data/type/global dependencies: none beyond integer arithmetic in the finalized COBS helper +- Artifact coverage: source-inspected artifact + +## Behavior + +Returns `_cobsEncodedMaxLength(unencodedLength)` without modifying the argument or applying additional checks. + +## Important Boundaries + +- Preconditions and assumptions: accepts any `uint32_t` unencoded length; boundary and overflow behavior are delegated to `_cobsEncodedMaxLength`. +- Error/null/empty behavior: no pointer inputs or local failure path. +- Ownership and lifetime: no ownership or lifetime effects. +- Concurrency/global state: no global state. +- Portability/platform constraints: portable integer arithmetic through the finalized COBS helper. +- Performance shape: O(1) wrapper. +- Security or parsing constraints: no parsing; sizing behavior is inherited from finalized `_cobsEncodedMaxLength`. + +## Direct Call Sites + +Exact source search found the public declaration in `note.h:1636`, the definition in `n_helpers.c:233`, source comment references, focused unit tests, and HITL test/support uses under `test/`. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that need the maximum encoded buffer size for an unencoded payload length. + +## Tests Observed + +Focused tests in `test/src/NoteBinaryCodecMaxEncodedLength_test.cpp` fake `_cobsEncodedMaxLength` and verify the argument and return value are passed through unchanged. HITL test/support code under `test/hitl/card.binary` calls this helper for buffer sizing. The focused unit test does not exercise real COBS arithmetic edge cases through this wrapper. + +## Graph Links + +- Graph node id: `function:n_helpers.c:233:NoteBinaryCodecMaxEncodedLength` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_cobsEncodedMaxLength`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md b/source-research/artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md new file mode 100644 index 00000000..63dc5da5 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md @@ -0,0 +1,61 @@ +# `NoteMemAvailable` + +## Status + +Finalized. Source-inspected public allocator-probing memory helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2399` +- Declaration/interface: `note.h:1111` +- Public/exported names: `NoteMemAvailable` +- Macro aliases/wrappers: none found +- Signature/API shape: `uint32_t NoteMemAvailable(void)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: temporarily allocates blocks from the configured SDK allocator, links them through an in-block header, then frees every allocated block before returning + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: configured platform allocator hooks behind `NoteMalloc` and `NoteFree` +- Data/type/global dependencies: static local `maxsize` initialized to `35000`; temporary `objHeader` chain stored inside allocated blocks +- Artifact coverage: source-inspected artifact + +## Behavior + +Initializes a local linked list of allocation records and loops from a static `maxsize` of `35000` down to `sizeof(objHeader)`, stepping by `sizeof(objHeader)`. For each size, repeatedly calls `_Malloc(i)` until allocation fails; each successful block is treated as an `objHeader`, linked onto the list, and records `length = i`. After probing all sizes, walks the linked list, sums every recorded allocation size into a `uint32_t`, frees each block with `_Free`, and returns the total. + +## Important Boundaries + +- Preconditions and assumptions: the configured allocator must return memory that is writable for at least `sizeof(objHeader)` when allocation succeeds. The helper assumes allocation probing is acceptable in the current runtime. +- Error/null/empty behavior: if every `_Malloc` call fails, returns zero. There is no direct error channel. +- Ownership and lifetime: every successful allocation is linked and then freed before return. The function writes its `objHeader` metadata into the allocated block, so allocated bytes are not preserved. +- Concurrency/global state: uses a static local `maxsize` value and global allocator hooks through `_Malloc`/`_Free`; no locking around allocator probing. +- Portability/platform constraints: behavior depends entirely on the configured allocator implementation and heap/fragmentation behavior; it does not query the Notecard over transport. +- Performance shape: intentionally allocates until failure across many sizes and can be expensive/disruptive; total work depends on available heap and allocator behavior. +- Security or parsing constraints: no parsing. Returned total can differ from true contiguous free space and can perturb allocator state through allocation/free churn. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1111` and the definition in `n_helpers.c:2399`. No production repository caller or focused test was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that want an allocator-based estimate of available memory. + +## Tests Observed + +No focused tests for `NoteMemAvailable` were found. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2399:NoteMemAvailable` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_Malloc` and `_Free`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md b/source-research/artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md new file mode 100644 index 00000000..6108801b --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md @@ -0,0 +1,59 @@ +# `NotePayloadSet` + +## Status + +Finalized. Source-inspected public payload descriptor initializer. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2440` +- Declaration/interface: `note.h:2140` +- Public/exported names: `NotePayloadSet` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NotePayloadSet(NotePayloadDesc *desc, uint8_t *buf, uint32_t buflen)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: records caller-provided buffer storage in a caller-owned `NotePayloadDesc` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `NotePayloadDesc` fields `data`, `alloc`, and `length`; payload size constants live beside the type in `note.h` +- Artifact coverage: source-inspected artifact + +## Behavior + +Stores `buf` directly into `desc->data`, stores `buflen` into `desc->alloc`, and stores `buflen` into `desc->length`. It performs no allocation, copy, validation, error reporting, or ownership transfer beyond updating those descriptor fields. + +## Important Boundaries + +- Preconditions and assumptions: `desc` must be non-null. The function dereferences it unconditionally. +- Error/null/empty behavior: `buf` may be null and is still stored as-is. A null buffer with a nonzero length is not rejected. +- Ownership and lifetime: the descriptor aliases the caller-provided buffer. Later descriptor helpers such as `NotePayloadFree` free `desc->data` when non-null, so callers must only use this initializer with storage that is compatible with the SDK free hook if the descriptor will be freed or grown by note-c payload helpers. +- Concurrency/global state: no global state or hooks are touched directly. +- Portability/platform constraints: plain pointer and `uint32_t` field assignments only. +- Performance shape: constant-time three-field assignment. +- Security or parsing constraints: no length validation and no buffer provenance check. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:2140` and the definition in `n_helpers.c:2440`. No production repository caller, test caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that want to initialize a `NotePayloadDesc` around an existing payload buffer or an empty descriptor state. + +## Tests Observed + +No focused tests for `NotePayloadSet` were found. Payload tests exercise other descriptor helpers but do not call this function. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2440:NotePayloadSet` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md b/source-research/artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md new file mode 100644 index 00000000..ca791ee7 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md @@ -0,0 +1,62 @@ +# `NotePayloadFree` + +## Status + +Finalized. Source-inspected public payload descriptor cleanup helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2453` +- Declaration/interface: `note.h:2146` +- Signature/API shape: `void NotePayloadFree(NotePayloadDesc *desc)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NotePayloadFree` +- Macro aliases/wrappers: none +- Ownership/lifetime role: releases descriptor-owned payload buffer and resets descriptor fields + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: mutates caller-owned `NotePayloadDesc` +- Artifact coverage: generated artifact exists + +## Behavior + +If `desc->data` is non-null, frees it with `_Free`. Then sets `desc->data = NULL`, `desc->alloc = 0`, and `desc->length = 0`. + +## Important Boundaries + +- Preconditions and assumptions: `desc` must be non-null and `desc->data`, when non-null, must be compatible with the SDK free hook. +- Error/null/empty behavior: null `desc->data` is accepted; null `desc` would dereference. +- Ownership and lifetime: consumes descriptor ownership of `data` and leaves the descriptor empty. +- Concurrency/global state: free uses hook-backed `_Free`. +- Portability/platform constraints: allocation ownership stays behind SDK hooks. +- Performance shape: O(1) plus allocator free cost. +- Security or parsing constraints: no validation of pointer provenance. + +## Direct Call Sites + +Exact source search found production callers: + +- `n_helpers.c:1813` and `n_helpers.c:1817` in `NoteWake`. + +## Role In Callers + +This is the cleanup API for descriptors filled by payload helpers and for ownership transferred by `NotePayloadSet`. + +## Tests Observed + +Focused tests call this helper after payload retrieval and segment-manipulation scenarios (`NotePayloadRetrieveAfterSleep_test.cpp`, `NotePayload_test.cpp`). + +## Graph Links + +- Graph node id: `function:n_helpers.c:2453:NotePayloadFree` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_Free`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md b/source-research/artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md new file mode 100644 index 00000000..187ed797 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md @@ -0,0 +1,63 @@ +# `NotePayloadAddSegment` + +## Status + +Finalized. Source-inspected public segmented-payload append helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2473` +- Declaration/interface: `note.h:2157` +- Public/exported names: `NotePayloadAddSegment` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NotePayloadAddSegment(NotePayloadDesc *desc, const char segtype[NP_SEGTYPE_LEN], void *data, uint32_t len)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: mutates and may replace the buffer owned by the caller-provided `NotePayloadDesc` + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: libc `memcpy` +- Data/type/global dependencies: `NotePayloadDesc`; payload constants `NP_SEGTYPE_LEN`, `NP_SEGLEN_LEN`, and `NP_SEGHDR_LEN` +- Artifact coverage: source-inspected artifact + +## Behavior + +Computes segment storage size as `len + NP_SEGHDR_LEN`, starts with a 512-byte allocation target, and raises that target by the segment size when the segment is larger than the default block. If `desc->data` is null, it allocates a new buffer, writes the 4-byte segment type, writes the `uint32_t` segment length, copies `len` payload bytes, and records `data`, `alloc`, and `length` in the descriptor. + +If `desc->data` already exists but the remaining capacity is smaller than the new segment, it allocates `desc->alloc + alloc`, copies the old descriptor contents, appends the new segment header and payload, frees the old descriptor buffer, then points the descriptor at the new buffer and extends `alloc` and `length`. If enough capacity remains, it appends the same segment header and payload in place. Allocation failure returns `false`; otherwise the helper returns `true`. + +## Important Boundaries + +- Preconditions and assumptions: `desc` and `segtype` must be non-null. `segtype` is read for exactly four bytes. `data` must be usable as a `memcpy` source for `len` bytes. +- Error/null/empty behavior: allocation failure returns `false` and leaves the descriptor unchanged in both allocation paths. Null pointers are not guarded before dereference/copy. Zero-length data still writes an 8-byte segment header. +- Ownership and lifetime: allocated storage comes from `_Malloc`/`NoteMalloc`; replaced storage is released through `_Free`/`NoteFree`. A descriptor initialized with external storage can be freed by this helper during growth, so that storage must match the SDK free hook when growth is possible. +- Concurrency/global state: no direct locking; allocator behavior depends on global SDK allocation hooks through `_Malloc` and `_Free`. +- Portability/platform constraints: stores the segment length by copying the in-memory `uint32_t` representation, so the payload segment header follows the platform endianness and width used by this SDK build. +- Performance shape: appends are O(segment length) when capacity remains and O(existing length + segment length) when reallocation is needed. The first allocation reserves at least 512 bytes. +- Security or parsing constraints: no overflow checks for `len + NP_SEGHDR_LEN`, `alloc + hlen`, `desc->alloc - desc->length`, or `desc->alloc + alloc`; malformed descriptor state can make capacity checks unreliable. + +## Direct Call Sites + +Exact source search found the public declaration in `note.h:2157`, the definition in `n_helpers.c:2473`, and focused tests in `test/src/NotePayload_test.cpp`. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that build an in-memory segmented payload descriptor. + +## Tests Observed + +Focused tests in `test/src/NotePayload_test.cpp` call `NotePayloadAddSegment` and then use payload retrieval helpers. Covered cases include first allocation and append, finding two segments, missing segment lookup, duplicate segment IDs returning the first segment, and forced reallocation while preserving prior data. Gaps include allocator failure, null `desc`, null `segtype`, null `data`, zero-length payloads, integer overflow, malformed descriptor capacity/length, and external-buffer ownership via `NotePayloadSet`. The test section intended to check an incorrect `NotePayloadGetSegment` length has a precedence issue and does not actually assert the failure path. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2473:NotePayloadAddSegment` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_Malloc` and `_Free`; libc `memcpy` is an external dependency. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md b/source-research/artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md new file mode 100644 index 00000000..4a933146 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md @@ -0,0 +1,69 @@ +# `NoteBinaryStoreDecodedLength` + +## Status + +Finalized. Source-inspected public binary-store decoded-length helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:249` +- Declaration/interface: `note.h:1644` +- Public/exported names: `NoteBinaryStoreDecodedLength` +- Macro aliases/wrappers: none found +- Signature/API shape: `const char * NoteBinaryStoreDecodedLength(uint32_t *len)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: writes caller-owned output storage, creates a `card.binary` request, owns/deletes the returned response, and returns static/configuration-dependent error strings + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_request.c:940:NoteErrorContains` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized +- External/system dependencies: Notecard `card.binary` request/response transaction path through `NoteRequestResponse` +- Data/type/global dependencies: constants `c_bad`, `c_badbinerr`, and `c_err`; transitive request/transaction and log-hook globals through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Validates that `len` is non-null. If it is null, logs and returns `ERRSTR("len cannot be NULL", c_bad)`. Otherwise sends a `card.binary` request via `NoteRequestResponse(NoteNewRequest(...))`. A null response logs and returns `ERRSTR("unable to issue binary request", c_err)`. If the response contains an error, it reads `"err"` and swallows only errors containing `c_badbinerr`; other errors are logged, the response is deleted, and `ERRSTR("unexpected error received during handshake", c_bad)` is returned. On success or swallowed `{bad-bin}`, writes `JGetInt(rsp, "length")` into `*len`, deletes the response, and returns null. + +## Important Boundaries + +- Preconditions and assumptions: `len` must be non-null to receive output; null is rejected before request work. +- Error/null/empty behavior: null response and non-`{bad-bin}` response errors return static/configuration-dependent error strings. Missing or non-number `"length"` becomes zero through finalized `JGetInt`. `{bad-bin}` is intentionally treated as success and still reads `"length"`. +- Ownership and lifetime: `NoteRequestResponse` owns/deletes the request. This helper owns any non-null response and deletes it before returning. Returned error strings are not caller-owned. +- Concurrency/global state: no direct local static state; request and logging paths use global SDK hook layers. +- Portability/platform constraints: low-memory builds use compact `ERRSTR` codes instead of verbose strings. +- Performance shape: one request/response transaction, one response error check, optional error string scan, one integer field read, and response cleanup. +- Security or parsing constraints: no range/sign validation before assigning `JGetInt` to `uint32_t`; negative JSON integers convert according to C assignment rules. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1644`, the definition in `n_helpers.c:249`, and focused tests. No production repository caller or alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that query the decoded length currently stored in the Notecard binary store. + +## Tests Observed + +Focused tests in `test/src/NoteBinaryStoreDecodedLength_test.cpp` fake `NoteRequestResponse`. Covered cases: null output pointer, null response, generic response error, `"length": 0`, and positive `"length"`. Gaps include swallowed `{bad-bin}`, request shape, missing/non-number `"length"`, `NoteNewRequest` allocation/add-field failure, and response cleanup/log assertions. + +## Graph Links + +- Graph node id: `function:n_helpers.c:249:NoteBinaryStoreDecodedLength` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `ERRSTR`, `NOTE_C_LOG_ERROR`, `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `JGetString`, `NoteErrorContains`, `JDelete`, and `JGetInt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md b/source-research/artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md new file mode 100644 index 00000000..cee0fb20 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md @@ -0,0 +1,63 @@ +# `NotePayloadGetSegment` + +## Status + +Finalized. Source-inspected exact-length segmented payload copy helper, caller search, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2533` +- Declaration/interface: `note.h:2179` +- Public/exported names: `NotePayloadGetSegment` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NotePayloadGetSegment(NotePayloadDesc *desc, const char segtype[NP_SEGTYPE_LEN], void *pdata, uint32_t len)` +- Visibility: public note-c payload helper API +- Ownership/lifetime role: copies from descriptor-owned payload storage into caller-provided buffer + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:2555:NotePayloadFindSegment` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: `NotePayloadDesc` and payload segment constants through the lookup helper +- Artifact coverage: source, declaration, direct caller search, and focused tests inspected + +## Behavior + +Calls `NotePayloadFindSegment(desc, segtype, &data, &datalen)`. If the lookup succeeds and the returned segment length exactly equals the caller-provided `len`, copies `len` bytes from the borrowed segment pointer into `pdata` with `memcpy` and returns `true`. Otherwise returns `false` and does not copy. + +## Important Boundaries + +- Preconditions and assumptions: caller-provided `pdata` must be writable for `len` bytes when the segment is found with matching length. Other pointer preconditions are inherited from `NotePayloadFindSegment`. +- Error/null/empty behavior: lookup failure and length mismatch return `false`. +- Ownership and lifetime: no allocation; successful calls copy into caller storage and do not transfer ownership of descriptor storage. +- Concurrency/global state: no global state. +- Portability/platform constraints: inherits segment layout constraints from `NotePayloadFindSegment`. +- Performance shape: O(segment scan plus `len` byte copy on success). +- Security or parsing constraints: exact-length check prevents partial copies but trusts the length reported by `NotePayloadFindSegment`. + +## Direct Call Sites + +No production callers were found by exact source search outside the function definition and public declaration. + +## Role In Callers + +No production caller role is currently present in source. This is the public copy-oriented segment lookup API. + +## Tests Observed + +`test/src/NotePayload_test.cpp` covers successful copy from a segment and failure when the requested length does not match the stored segment length. + +## Test Coverage Notes + +Focused tests do not cover absent segment through this wrapper, null pointers, zero-length copy, or corrupt segment lengths. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2533:NotePayloadGetSegment` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md b/source-research/artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md new file mode 100644 index 00000000..141a7405 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md @@ -0,0 +1,66 @@ +# `NotePayloadFindSegment` + +## Status + +Finalized. Source-inspected segmented payload lookup helper, direct caller, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2555` +- Declaration/interface: `note.h:2168` +- Public/exported names: `NotePayloadFindSegment` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NotePayloadFindSegment(NotePayloadDesc *desc, const char segtype[NP_SEGTYPE_LEN], void *pdata, uint32_t *plen)` +- Visibility: public note-c payload helper API +- Ownership/lifetime role: returns a borrowed pointer into `desc->data` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `memcpy`, `memcmp` +- Data/type/global dependencies: `NotePayloadDesc`, `NP_SEGTYPE_LEN`, `NP_SEGLEN_LEN`, and `NP_SEGHDR_LEN` +- Artifact coverage: source, declaration, direct caller, payload constants, and focused tests inspected + +## Behavior + +First writes `NULL` to `*(uint8_t **)pdata` and zero to `*plen`. It then scans `desc->data` while at least one segment header remains in `desc->length`. + +Each segment is encoded as a 4-byte segment type followed by a native `uint32_t` payload length and then that many payload bytes. For each header, it copies the length field with `memcpy`. If the first four bytes match `segtype`, it writes the segment length to `*plen`, writes a borrowed pointer to the segment payload (`p + NP_SEGHDR_LEN`) through `pdata`, and returns `true`. Otherwise it advances by header length plus payload length and continues until no full header remains, then returns `false`. + +## Important Boundaries + +- Preconditions and assumptions: `desc`, `pdata`, and `plen` must be non-null; `pdata` must point to storage for a `uint8_t *`; `segtype` must reference at least `NP_SEGTYPE_LEN` bytes. +- Error/null/empty behavior: output values are preset to null/zero. If `desc->data` is `NULL`, returns `false`. A zero or too-short `desc->length` returns `false` after initialization. +- Ownership and lifetime: successful `pdata` output is borrowed interior storage owned by `desc`; callers must not free it and must not retain it after descriptor mutation/free. +- Concurrency/global state: no global state. +- Portability/platform constraints: segment length is stored and read as native `uint32_t` byte representation; `memcpy` avoids alignment assumptions but not cross-endian serialization concerns. +- Performance shape: O(number of segment headers scanned plus segment type comparisons). +- Security or parsing constraints: matching segments are returned without verifying that the stored segment length fits within remaining descriptor bytes. Nonmatching oversized segments terminate the scan after pointer advancement. + +## Direct Call Sites + +Exact production caller found by source search: + +- `n_helpers.c:2537` `NotePayloadGetSegment` looks up a segment, checks that the returned segment length equals the caller-requested length, and copies bytes to caller storage. + +## Role In Callers + +`NotePayloadGetSegment` uses this helper as the raw lookup primitive and adds exact-length copy semantics. Public callers can also use this helper directly when they want a borrowed pointer and returned length. + +## Tests Observed + +`test/src/NotePayload_test.cpp` covers successful lookup for multiple added segments, lookup failure for an absent segment with null/zero outputs, duplicate segment IDs returning the first added segment, and reallocation scenarios where lookups still find both segments. + +## Test Coverage Notes + +Focused tests do not cover null `desc`, null output pointers, null `segtype`, truncated/corrupt segment headers, stored lengths that exceed descriptor length, or native-endian portability. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2555:NotePayloadFindSegment` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md b/source-research/artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md new file mode 100644 index 00000000..69a1a2c8 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md @@ -0,0 +1,60 @@ +# `NoteTurboIO` + +## Status + +Finalized. Source-inspected deprecated public no-op helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:2587` +- Declaration/interface: `note.h:1782` with `NOTE_C_DEPRECATED` +- Public/exported names: `NoteTurboIO` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteTurboIO(bool enable)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: no ownership or memory effects + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:998:NOTE_C_LOG_WARN` finalized +- External/system dependencies: configured debug output hook reached through the logging macro when logging is active +- Data/type/global dependencies: warning log level and debug hook state through `NOTE_C_LOG_WARN`; nearby historical `cardTurboIO` global is not written by this function +- Artifact coverage: source-inspected artifact + +## Behavior + +Ignores the `enable` argument and emits a warning message: `"NoteTurboIO is deprecated and has no effect."` It does not toggle `cardTurboIO` or any transport behavior. + +## Important Boundaries + +- Preconditions and assumptions: no pointer inputs. `enable` is explicitly cast to void. +- Error/null/empty behavior: no return value or failure channel. If debug output is disabled or no hook is installed, the warning is dropped through the finalized logging path. +- Ownership and lifetime: no allocations, frees, or ownership transfers. +- Concurrency/global state: does not mutate `cardTurboIO`; logging uses global debug hook/log-level state. +- Portability/platform constraints: public declaration is compiler-deprecation-annotated through `NOTE_C_DEPRECATED`; runtime behavior is otherwise portable. +- Performance shape: one warning log attempt. +- Security or parsing constraints: no parsing. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1782`, the definition in `n_helpers.c:2587`, and the warning string. No production repository caller was found. Broader search found the historical `cardTurboIO` global and transport reads, but this function does not write that global. + +## Role In Callers + +No production repository caller role. Deprecated compatibility API that now warns and has no effect. + +## Tests Observed + +No focused tests referencing `NoteTurboIO`, `TurboIO`, or `cardTurboIO` behavior were found. + +## Graph Links + +- Graph node id: `function:n_helpers.c:2587:NoteTurboIO` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NOTE_C_LOG_WARN`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md b/source-research/artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md new file mode 100644 index 00000000..2a0c7b7b --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md @@ -0,0 +1,69 @@ +# `NoteBinaryStoreEncodedLength` + +## Status + +Finalized. Source-inspected public binary-store encoded-length helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:300` +- Declaration/interface: `note.h:1652` +- Public/exported names: `NoteBinaryStoreEncodedLength` +- Macro aliases/wrappers: none found +- Signature/API shape: `const char * NoteBinaryStoreEncodedLength(uint32_t *len)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: writes caller-owned output storage, creates a `card.binary` request, owns/deletes the returned response, and returns static/configuration-dependent error strings + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_request.c:940:NoteErrorContains` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized +- External/system dependencies: Notecard `card.binary` request/response transaction path through `NoteRequestResponse` +- Data/type/global dependencies: constants `c_bad`, `c_badbinerr`, and `c_err`; transitive request/transaction and log-hook globals through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Validates that `len` is non-null. If it is null, logs and returns `ERRSTR("size cannot be NULL", c_err)`. Otherwise sends a `card.binary` request via `NoteRequestResponse(NoteNewRequest(...))`. A null response logs and returns `ERRSTR("unable to issue binary request", c_err)`. If the response contains an error, it reads `"err"` and swallows only errors containing `c_badbinerr`; other errors are logged, the response is deleted, and `ERRSTR("unexpected error received during handshake", c_bad)` is returned. On success or swallowed `{bad-bin}`, reads `JGetInt(rsp, "cobs")` into a `long int`, deletes the response, assigns that value to `*len`, and returns null. + +## Important Boundaries + +- Preconditions and assumptions: `len` must be non-null to receive output; null is rejected before request work. +- Error/null/empty behavior: null response and non-`{bad-bin}` response errors return static/configuration-dependent error strings. Missing or non-number `"cobs"` becomes zero through finalized `JGetInt`. `{bad-bin}` is intentionally treated as success and still reads `"cobs"`. +- Ownership and lifetime: `NoteRequestResponse` owns/deletes the request. This helper owns any non-null response and deletes it before returning. Returned error strings are not caller-owned. +- Concurrency/global state: no direct local static state; request and logging paths use global SDK hook layers. +- Portability/platform constraints: low-memory builds use compact `ERRSTR` codes instead of verbose strings. +- Performance shape: one request/response transaction, one response error check, optional error string scan, one integer field read, and response cleanup. +- Security or parsing constraints: no range/sign validation before assigning the `JGetInt` value through a signed temporary to `uint32_t`; negative JSON integers convert according to C assignment rules. + +## Direct Call Sites + +Exact source search found the public declaration in `note.h:1652`, the definition in `n_helpers.c:300`, a source comment in `NoteBinaryStoreReceive` at `n_helpers.c:356`, focused tests in `test/src/NoteBinaryStoreEncodedLength_test.cpp`, and a fake in `test/src/NoteBinaryStoreReceive_test.cpp`. No production repository caller or alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that query the encoded COBS length currently stored in the Notecard binary store. + +## Tests Observed + +Focused tests in `test/src/NoteBinaryStoreEncodedLength_test.cpp` fake `NoteRequestResponse`. Covered cases: null output pointer, null response, generic response error, `"cobs": 0`, and positive `"cobs"`. `test/src/NoteBinaryStoreReceive_test.cpp` fakes this API while testing receive behavior. Gaps include swallowed `{bad-bin}`, request shape, missing/non-number `"cobs"`, negative or oversized integer conversion, and response cleanup/log assertions. + +## Graph Links + +- Graph node id: `function:n_helpers.c:300:NoteBinaryStoreEncodedLength` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `ERRSTR`, `NOTE_C_LOG_ERROR`, `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `JGetString`, `NoteErrorContains`, `JDelete`, and `JGetInt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md b/source-research/artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md new file mode 100644 index 00000000..d93bf9ff --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md @@ -0,0 +1,82 @@ +# `NoteBinaryStoreReceive` + +## Status + +Finalized. Source-inspected public binary-store receive API. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:359` +- Declaration/interface: `note.h:1663` +- Signature/API shape: `const char * NoteBinaryStoreReceive(uint8_t *buffer, uint32_t bufLen, uint32_t decodedOffset, uint32_t decodedLen)` +- Visibility: public SDK API +- Public/exported names: `NoteBinaryStoreReceive` +- Macro aliases/wrappers: none +- Ownership/lifetime role: fills caller-owned storage in place and returns NULL on success or a const error string on failure + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `function:n_cobs.c:263:_cobsEncodedMaxLength` finalized + - `macro:n_lib.h:226:_LockNote` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:1989:JAddIntToObject` finalized + - `function:n_request.c:428:_noteTransactionShouldLock` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized + - `function:n_str.c:31:strlcpy` finalized + - `macro:note.h:76:NOTE_C_LOG_DEBUG` finalized + - `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized + - `macro:n_lib.h:239:_ChunkedReceive` finalized + - `function:n_request.c:756:NoteResetRequired` finalized + - `function:n_helpers.c:127:NoteBinaryCodecDecode` finalized + - `function:n_md5.c:301:NoteMD5HashString` finalized +- External/system dependencies: `strncmp` +- Data/type/global dependencies: `NOTE_MD5_HASH_STRING_SIZE`, `CARD_INTRA_TRANSACTION_TIMEOUT_SEC`, JSON type `J`, Notecard lock and active-interface hook state through local aliases + +## Behavior + +Validates arguments before taking the Notecard lock. It rejects a null buffer, a buffer smaller than `_cobsEncodedMaxLength(decodedLen)`, and `decodedLen == 0`, logging and returning const error strings for those cases. + +After validation it locks the Notecard, creates a `card.binary.get` request, adds `"offset"` and `"length"` integer fields, and dispatches the setup request through `_noteTransactionShouldLock(req, false)` because this function already owns the Notecard lock. It deletes the request after dispatch. A null response or a response with `"err"` is treated as initialization failure; an error response's `"err"` field is logged before the response is deleted. On a successful setup response, it copies `"status"` into a fixed MD5 status buffer and deletes the response. + +The raw binary payload is read through `_ChunkedReceive(buffer, &bufLen, false, CARD_INTRA_TRANSACTION_TIMEOUT_SEC * 1000, &available)`. The Notecard lock is released immediately after the chunked receive returns. Receive errors are wrapped with `ERRSTR(err, c_err)` and queue `NoteResetRequired`. Any nonzero `available` value is treated as unexpected extra data, logs an error, queues reset, and returns an error. + +Successful chunk receive is assumed to include a trailing newline terminator; the function decrements `bufLen` to drop that byte, decodes the COBS payload in place with `NoteBinaryCodecDecode`, and requires the decoded length to equal `decodedLen`. A decoded-length mismatch logs an error, queues reset, and returns an error. On matching length it writes `'\0'` at `buffer[decLen]`, computes the decoded payload MD5 with `NoteMD5HashString`, compares it with the response `"status"` string using `strncmp`, and returns an MD5 mismatch error if the values differ. Success returns NULL. + +## Important Boundaries + +- Preconditions and assumptions: caller provides a writable buffer large enough for the encoded payload and trailing marker; the chunked receive path returns newline-terminated encoded data on success. +- Error/null/empty behavior: validation errors happen before locking; request allocation and response initialization errors unlock before returning; chunked receive, extra-available, and decoded-length failures queue interface reset; MD5 mismatch does not queue reset in this implementation. +- Ownership and lifetime: caller retains `buffer`; the function overwrites it with encoded bytes, then decoded bytes, then writes a NUL marker after the decoded range. It owns and deletes the request and response `J *` objects it creates or receives. +- Concurrency/global state: holds the Notecard mutex from setup request creation through raw chunk receive, and passes `lockNotecard=false` to the transaction helper to avoid nested lock acquisition. +- Performance shape: O(decoded length) receive/decode/hash work after an O(1) maximum encoded-length check. +- Portability/platform constraints: transport and locking remain behind hook aliases; the function itself is portable C SDK code with no direct platform adapter calls. +- Integrity constraints: validates decoded byte count and MD5 status after receiving binary data, but trusts the setup response to provide the expected status string. + +## Direct Call Sites + +Exact source search found no direct callers inside production library source beyond the public declaration. HITL helper code calls it in `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h` to validate transferred card binary content and to retrieve a web response payload. `test/src/NoteBinaryStoreReceive_test.cpp` directly exercises the public API with faked hooks. + +## Role In Callers + +This is the public API for retrieving a byte range from the Notecard binary store. The HITL validation path uses it repeatedly by chunk offset and compares the decoded bytes against generated source data. The web-response troubleshooting path uses it to retrieve binary-store content, print it, and parse it as JSON. + +## Tests Observed + +`test/src/NoteBinaryStoreReceive_test.cpp` covers null buffer, insufficient buffer, zero decoded length, request allocation failure, setup response error, chunked receive error, unexpected extra available data, MD5 mismatch, decoded-length mismatch, success with decoded payload contents, and balanced lock/unlock calls. HITL card-binary code exercises receive in validation and parse-helper flows. + +## Graph Links + +- Graph node id: `function:n_helpers.c:359:NoteBinaryStoreReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md b/source-research/artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md new file mode 100644 index 00000000..02847a7b --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md @@ -0,0 +1,68 @@ +# `NoteBinaryStoreReset` + +## Status + +Finalized. Source-inspected public binary-store reset helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:492` +- Declaration/interface: `note.h:1670` +- Public/exported names: `NoteBinaryStoreReset` +- Macro aliases/wrappers: none found +- Signature/API shape: `const char * NoteBinaryStoreReset(void)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: constructs a `card.binary` request and consumes/deletes the response returned by `NoteRequestResponse` + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized +- External/system dependencies: Notecard `card.binary` request/response transaction path through `NoteRequestResponse` +- Data/type/global dependencies: transitive request/transaction and log-hook globals through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Creates a `card.binary` request. If request allocation succeeds, adds `"delete": true` and sends the request with `NoteRequestResponse`. If `NoteResponseError(rsp)` is true, including the null-response case, it logs the response `"err"` string, deletes the response, returns an `ERRSTR("failed to reset binary buffer", c_err)` pointer, and logs that error string. On a non-error response, deletes the response and returns null. If request allocation fails, returns `ERRSTR("unable to allocate request", c_mem)` after logging that error. + +## Important Boundaries + +- Preconditions and assumptions: no input parameters. +- Error/null/empty behavior: request allocation failure returns a static error string. Null response is treated as an error through finalized `NoteResponseError`; `JGetString(NULL, "err")` returns the empty string and `JDelete(NULL)` is safe through finalized callees. `JAddBoolToObject` return value is ignored, so delete-field allocation/attach failure is only surfaced indirectly by the transaction response. +- Ownership and lifetime: request ownership transfers to `NoteRequestResponse`; any response pointer is deleted before return. Returned error strings come from `ERRSTR` and are static/configuration-dependent. +- Concurrency/global state: no direct local static state; request and logging paths use global SDK hook layers. +- Portability/platform constraints: low-memory builds use `ERRSTR` codes instead of verbose strings; transport/platform effects remain behind request/log hooks. +- Performance shape: one request allocation, one bool field addition, one request/response transaction, optional logging, and one response delete. +- Security or parsing constraints: does not inspect response fields beyond the standard `"err"` check. + +## Direct Call Sites + +Exact source search found the public declaration in `note.h:1670`, the definition in `n_helpers.c:492`, focused unit tests, and HITL test/support uses under `test/`. No production repository caller was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that clear the Notecard binary store. + +## Tests Observed + +Focused tests in `test/src/NoteBinaryStoreReset_test.cpp` fake `NoteNewRequest` and `NoteRequestResponse`. Covered cases: request allocation failure returns an error, response error returns an error, and success response returns null. Gaps include request name, constructed `"delete": true` field, null response behavior, unchecked bool-field add failure, and real transaction/log hook behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:492:NoteBinaryStoreReset` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddBoolToObject`, `NoteRequestResponse`, `NoteResponseError`, `NOTE_C_LOG_ERROR`, `JGetString`, `JDelete`, and `ERRSTR`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md b/source-research/artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md new file mode 100644 index 00000000..72cb546a --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md @@ -0,0 +1,92 @@ +# `NoteBinaryStoreTransmit` + +## Status + +Finalized. Source-inspected public binary-store transmit helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:539` +- Declaration/interface: `note.h:1681` +- Public/exported names: `NoteBinaryStoreTransmit` +- Macro aliases/wrappers: none found +- Signature/API shape: `const char * NoteBinaryStoreTransmit(uint8_t *unencodedData, uint32_t unencodedLen, uint32_t bufLen, uint32_t notecardOffset)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: mutates the caller-provided buffer in place, sends encoded bytes to the Notecard binary store, and returns static/configuration-dependent error strings + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `function:n_cobs.c:263:_cobsEncodedMaxLength` finalized + - `function:n_cobs.c:196:_cobsEncodedLength` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:1950:JAddBoolToObject` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_request.c:940:NoteErrorContains` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `function:n_md5.c:301:NoteMD5HashString` finalized + - `function:n_helpers.c:169:NoteBinaryCodecEncode` finalized + - `macro:n_lib.h:226:_LockNote` finalized + - `function:n_cjson.c:1989:JAddIntToObject` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:428:_noteTransactionShouldLock` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized + - `function:n_helpers.c:127:NoteBinaryCodecDecode` finalized + - `macro:note.h:76:NOTE_C_LOG_DEBUG` finalized + - `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized + - `macro:n_lib.h:240:_ChunkedTransmit` finalized + - `macro:note.h:998:NOTE_C_LOG_WARN` finalized +- External/system dependencies: libc `memmove` +- Data/type/global dependencies: constants `c_bad`, `c_badbinerr`, `c_err`, `c_mem`, and `NOTE_MD5_HASH_STRING_SIZE`; transitive Notecard, lock, transaction, logging, delay, and transport hooks through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Rejects a null `unencodedData` pointer. It then checks whether `bufLen` can hold the COBS-encoded payload plus newline, using the constant-time maximum check first and the data-dependent encoded-length check only if the maximum check fails. + +For the initial `card.binary` handshake, it creates a `card.binary` request and adds `"reset": true` when `notecardOffset == 0`. The initial request pointer is not checked locally before adding the reset field, but finalized `JAddBoolToObject` is null-safe and finalized `NoteRequestResponse` returns null for a null request. A null response returns `"unable to issue binary request"`. A response error is swallowed only when it contains `c_badbinerr`; other handshake errors are logged, the response is deleted, and `"unexpected error received during handshake"` is returned. + +On handshake success or swallowed `{bad-bin}`, it reads `"length"` and `"max"`, deletes the response, rejects missing/zero `"max"`, rejects offsets that do not equal the returned `"length"`, computes remaining binary-store capacity, and rejects payloads larger than the remaining capacity. It hashes the original unencoded bytes with `NoteMD5HashString`, shifts the unencoded data to the end of the caller buffer with `memmove`, COBS-encodes it into the front of the same buffer with `NoteBinaryCodecEncode`, and appends a newline byte. + +It then attempts up to three binary transmissions. For each attempt it locks the Notecard, creates `card.binary.put`, adds `"cobs"`, optional `"offset"`, and `"status"` MD5 fields, calls `_noteTransactionShouldLock(req, false)` while already holding the lock, deletes the request, and requires a non-error response. Initialization failure unlocks and decodes the encoded buffer back to the caller's original bytes before returning. If initialization succeeds, it sends the encoded buffer plus newline through `_ChunkedTransmit`, unlocks, and restores the caller buffer on transmit error. + +After each chunk transmit it validates with another `card.binary` request. A null validation response restores the buffer and returns `"unable to validate request"`. A non-`{bad-bin}` validation error restores the buffer and returns `"unexpected error received during confirmation"`. A `{bad-bin}` validation error logs a warning and retries until the third attempt; after retries are exhausted it restores the buffer and returns `"binary data invalid"`. A successful validation deletes the response, leaves the caller buffer encoded/modified, and returns null. + +## Important Boundaries + +- Preconditions and assumptions: `unencodedData` must be non-null. The caller buffer must be large enough for the encoded payload plus newline and must be writable for `bufLen` bytes. +- Error/null/empty behavior: null data, insufficient buffer, null request/response, missing/zero `"max"`, offset mismatch, store-capacity overflow, binary-put setup failure, chunk transmit failure, validation failure, and repeated `{bad-bin}` confirmation all return non-null error strings. Post-encode error paths attempt to restore the caller buffer by decoding in place. +- Ownership and lifetime: all JSON requests and responses are owned/deleted by this helper or by finalized request wrappers. Returned error strings are not caller-owned. The caller retains ownership of the data buffer, but successful calls leave it modified. +- Concurrency/global state: the binary-put transaction and chunk transmit are protected by `_LockNote`/`_UnlockNote`; the transaction call bypasses nested locking by passing `false` to `_noteTransactionShouldLock`. Hook behavior, active transport, logging, and mutex behavior are global SDK configuration. +- Portability/platform constraints: low-memory builds use compact `ERRSTR` codes; encoded transport behavior depends on configured chunked-transmit hook and active interface. +- Performance shape: one initial request/response, one MD5 pass over the payload, one buffer shift, one COBS encode, up to three binary-put transactions plus chunk sends, and up to three validation request/response cycles. +- Security or parsing constraints: no explicit check that returned `"max"` is greater than or equal to returned `"length"` before `max - len` is converted to `uint32_t`; no explicit encode-failure check before appending newline; request field-add return values are ignored. + +## Direct Call Sites + +Production-only exact search found only the public declaration in `note.h:1681` and the definition in `n_helpers.c:539`. Focused tests call it directly from `test/src/NoteBinaryStoreTransmit_test.cpp`. A HITL test support wrapper calls it from `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:749`. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that append sequential chunks to the Notecard binary store, optionally resetting the store when starting at offset zero. + +## Tests Observed + +Focused tests in `test/src/NoteBinaryStoreTransmit_test.cpp` fake the request/transaction/lock/chunk hooks. Covered cases include null data, initial response null or generic error, missing/zero max, offset mismatch, not enough remaining store space, buffer too small for encoded data plus newline, reset flag on zero offset, binary-put request allocation failure, binary-put transaction failure, chunk transmit failure, validation response null, validation generic error, repeated `{bad-bin}` exhaustion, `{bad-bin}` retry followed by success, buffer restoration on post-encode failures, and balanced lock/unlock counts. Gaps include missing/non-number `"length"` or negative values, `"max" < "length"`, `JAdd*` field-add failure, encode returning zero/failure, exact `card.binary.put` request field values beyond selected tests, and real transport behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:539:NoteBinaryStoreTransmit` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to COBS length helpers, JSON request builders, request/response helpers, response/error helpers, MD5, binary codec encode/decode, Notecard lock/unlock, transaction-with-lock-control, debug/warn/error logging, and chunked transmit. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L743__NoteTimeValid.md b/source-research/artifacts/functions/n_helpers_c__L743__NoteTimeValid.md new file mode 100644 index 00000000..901fddf3 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L743__NoteTimeValid.md @@ -0,0 +1,60 @@ +# `NoteTimeValid` + +## Status + +Finalized. Source-inspected public unsuppressed time-validity wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:743` +- Declaration/interface: `note.h:1696` +- Signature/API shape: `bool NoteTimeValid(void)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteTimeValid` +- Macro aliases/wrappers: none +- Ownership/lifetime role: resets suppression timer state and delegates to `NoteTimeValidST` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:755:NoteTimeValidST` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: mutates global `timeTimer` +- Artifact coverage: generated artifact exists + +## Behavior + +Sets `timeTimer = 0`, then returns `NoteTimeValidST()`. + +## Important Boundaries + +- Preconditions and assumptions: none. +- Error/null/empty behavior: inherits `NoteTimeValidST` false result when real time is not cached. +- Ownership and lifetime: no allocation. +- Concurrency/global state: writes global `timeTimer` without locking and delegates to global time-cache logic. +- Portability/platform constraints: inherits hook/request behavior from `NoteTimeValidST`. +- Performance shape: O(1) plus any refresh transaction performed by underlying time logic. +- Security or parsing constraints: none. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1696`. + +## Role In Callers + +This is the public force-refresh validity wrapper above `NoteTimeValidST`. + +## Tests Observed + +No direct focused tests were found for this wrapper. + +## Graph Links + +- Graph node id: `function:n_helpers.c:743:NoteTimeValid` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NoteTimeValidST`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md b/source-research/artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md new file mode 100644 index 00000000..e7706499 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md @@ -0,0 +1,63 @@ +# `NoteTimeValidST` + +## Status + +Finalized. Source-inspected public session-time validity wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:755` +- Declaration/interface: `note.h:1702` +- Signature/API shape: `bool NoteTimeValidST(void)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteTimeValidST` +- Macro aliases/wrappers: none +- Ownership/lifetime role: refreshes cached time and reports whether a real base time is known + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:871:NoteTimeST` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: reads global `timeBaseSec` +- Artifact coverage: generated artifact exists + +## Behavior + +Calls `NoteTimeST()` to give the cache a chance to refresh, then returns whether `timeBaseSec != 0`. + +## Important Boundaries + +- Preconditions and assumptions: `timeBaseSec == 0` represents unknown real time. +- Error/null/empty behavior: returns false when refresh fails or no real time is cached. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global time cache without locking after `NoteTimeST` may mutate it. +- Portability/platform constraints: inherits hook/request behavior from `NoteTimeST`. +- Performance shape: O(1) plus any refresh transaction performed by `NoteTimeST`. +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact source search found direct production callers: + +- `n_helpers.c:746` `NoteTimeValid`. +- `n_helpers.c:1048` `NoteLocalTimeST`. + +## Role In Callers + +This is the session-preserving validity wrapper; `NoteTimeValid` resets suppression before calling it. + +## Tests Observed + +No direct focused tests were found. `NoteTime_test.cpp` exercises the underlying refresh behavior through `NoteTime`; `NoteLocalTimeST_test.cpp` fakes this wrapper. + +## Graph Links + +- Graph node id: `function:n_helpers.c:755:NoteTimeValidST` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NoteTimeST`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L767__NoteTime.md b/source-research/artifacts/functions/n_helpers_c__L767__NoteTime.md new file mode 100644 index 00000000..a599f4fa --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L767__NoteTime.md @@ -0,0 +1,60 @@ +# `NoteTime` + +## Status + +Finalized. Source-inspected public unsuppressed time wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:767` +- Declaration/interface: `note.h:1708` +- Signature/API shape: `JTIME NoteTime(void)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteTime` +- Macro aliases/wrappers: none +- Ownership/lifetime role: resets suppression timer state and delegates to `NoteTimeST` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:871:NoteTimeST` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: mutates global `timeTimer` +- Artifact coverage: generated artifact exists + +## Behavior + +Sets `timeTimer = 0` to suppress no fetch attempt, then returns `NoteTimeST()`. + +## Important Boundaries + +- Preconditions and assumptions: none. +- Error/null/empty behavior: inherits `NoteTimeST` behavior, including boot-seconds fallback when no real time is cached. +- Ownership and lifetime: no allocation. +- Concurrency/global state: writes global `timeTimer` without locking and delegates to global time-cache logic. +- Portability/platform constraints: inherits millisecond hook behavior from `NoteTimeST`. +- Performance shape: O(1) plus any refresh transaction performed by `NoteTimeST`. +- Security or parsing constraints: none. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1708`. + +## Role In Callers + +This is the public force-refresh wrapper above session-time retrieval. + +## Tests Observed + +Focused `test/src/NoteTime_test.cpp` covers null/error responses, valid card time, and millisecond rollover through this wrapper. + +## Graph Links + +- Graph node id: `function:n_helpers.c:767:NoteTime` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NoteTimeST`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L780__NoteTimeRefreshMins.md b/source-research/artifacts/functions/n_helpers_c__L780__NoteTimeRefreshMins.md new file mode 100644 index 00000000..8c99c3ed --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L780__NoteTimeRefreshMins.md @@ -0,0 +1,59 @@ +# `NoteTimeRefreshMins` + +## Status + +Finalized. Source-inspected public time-refresh interval setter. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:780` +- Declaration/interface: `note.h:1720` +- Public/exported names: `NoteTimeRefreshMins` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteTimeRefreshMins(uint32_t mins)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: updates module-local time refresh configuration + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes static `refreshTimerSecs`, which defaults to 86400 seconds and is read by `NoteTimeST` +- Artifact coverage: source-inspected artifact + +## Behavior + +Stores `mins * 60` in the module-local `refreshTimerSecs` value. `NoteTimeST` later checks `refreshTimerSecs != 0` before using `_timerExpiredSecs(&timeRefreshTimer, refreshTimerSecs)` to invalidate the cached time by setting `timeTimer = 0`. + +## Important Boundaries + +- Preconditions and assumptions: accepts a primitive `uint32_t` minute count; no pointer or ownership boundary. +- Error/null/empty behavior: no return value and no error path. Passing zero stores zero, which disables automatic refresh in `NoteTimeST`. +- Ownership and lifetime: writes only module-local static state. +- Concurrency/global state: no locking around `refreshTimerSecs`; concurrent callers or `NoteTimeST` readers can observe unsynchronized updates. +- Portability/platform constraints: `mins * 60` is computed in `uint32_t` arithmetic and may wrap. +- Performance shape: constant-time scalar assignment. +- Security or parsing constraints: no input validation or overflow check. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1720` and the definition in `n_helpers.c:780`. No production repository caller, test caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public configuration helper for downstream callers that want to adjust or disable cached Notecard time refresh. + +## Tests Observed + +No focused tests for `NoteTimeRefreshMins` were found. Gaps include zero disabling refresh, minutes-to-seconds conversion, overflow, and downstream `NoteTimeST` refresh behavior. + +## Graph Links + +- Graph node id: `function:n_helpers.c:780:NoteTimeRefreshMins` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L791__setTime.md b/source-research/artifacts/functions/n_helpers_c__L791__setTime.md new file mode 100644 index 00000000..f34503ba --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L791__setTime.md @@ -0,0 +1,63 @@ +# `_setTime` + +## Status + +Finalized. Source-inspected internal time-base update helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:791` +- Declaration/interface: file-local prototype at `n_helpers.c:77` +- Signature/API shape: `void _setTime(JTIME seconds)` +- Visibility: internal to `n_helpers.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none +- Macro aliases/wrappers: none +- Ownership/lifetime role: updates global time-base cache + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: mutates `timeBaseSec` and `timeBaseSetAtMs` +- Artifact coverage: generated artifact exists + +## Behavior + +Stores `seconds` in `timeBaseSec` and records the current millisecond tick from `_GetMs()` in `timeBaseSetAtMs`. + +## Important Boundaries + +- Preconditions and assumptions: caller has already decided that `seconds` is a valid nonzero time when that distinction matters. +- Error/null/empty behavior: no validation; passing `0` clears the base seconds while still recording the current millisecond tick. +- Ownership and lifetime: no allocation. +- Concurrency/global state: writes global time cache state without locking. +- Portability/platform constraints: millisecond source remains behind the `_GetMs` hook alias. +- Performance shape: O(1). +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact source search found direct callers: + +- `n_helpers.c:903` `NoteTimeST` stores nonzero `card.time` results. +- `n_helpers.c:1856` `NotePayloadRetrieveAfterSleep` stores nonzero `card.attn` wake-time results. + +## Role In Callers + +This helper is the common cache update point when time is learned from the Notecard through normal time polling or sleep payload retrieval. + +## Tests Observed + +No direct `_setTime` test calls were found, though `test/include/test_static.h:28` exposes it. `NoteTime_test.cpp` and `NotePayloadRetrieveAfterSleep_test.cpp` cover it indirectly through public callers. + +## Graph Links + +- Graph node id: `function:n_helpers.c:791:_setTime` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_GetMs`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L808__NoteTimeSet.md b/source-research/artifacts/functions/n_helpers_c__L808__NoteTimeSet.md new file mode 100644 index 00000000..a2860c16 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L808__NoteTimeSet.md @@ -0,0 +1,63 @@ +# `NoteTimeSet` + +## Status + +Finalized. Source-inspected public manual time and region setter. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:808` +- Declaration/interface: `note.h:1730` +- Public/exported names: `NoteTimeSet` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteTimeSet(JTIME secondsUTC, int offset, char *zone, char *country, char *area)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: copies caller-provided region strings into module-local static buffers and updates cached time state + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized + - `function:n_str.c:31:strlcpy` finalized +- External/system dependencies: platform `strlcpy` may be used when available; the repository provides `n_str.c` when the build lacks it +- Data/type/global dependencies: writes static `timeBaseSec`, `timeBaseSetAtMs`, `timeBaseSetManually`, `zoneStillUnavailable`, `zoneForceRefresh`, `curZoneOffsetMins`, `curZone`, `curArea`, and `curCountry` +- Artifact coverage: source-inspected artifact + +## Behavior + +When `secondsUTC == 0`, clears the cached manual time by setting `timeBaseSec = 0`, `timeBaseSetAtMs = 0`, `timeBaseSetManually = false`, `zoneStillUnavailable = true`, and `zoneForceRefresh = false`. It does not update the region string buffers in this reset branch; later `NoteRegion` returns UTC and empty-region defaults while `zoneStillUnavailable` remains true. + +When `secondsUTC` is nonzero, stores it as `timeBaseSec`, snapshots `_GetMs()` into `timeBaseSetAtMs`, marks the time as manually set, marks zone information available, stores the timezone offset, and copies the provided `zone`, `area`, and `country` strings into static buffers. Null `zone` becomes `"UTC"`; null `area` and `country` become empty strings. + +## Important Boundaries + +- Preconditions and assumptions: non-null `zone`, `country`, and `area` inputs must be valid C strings when provided. +- Error/null/empty behavior: null region inputs on the nonzero path are accepted and replaced with defaults. There is no return value or error path. +- Ownership and lifetime: input strings are copied, not retained. Returned region data from `NoteRegion` points at static buffers owned by this module. +- Concurrency/global state: no locking around time and region statics; concurrent readers such as `NoteTimeST` and `NoteRegion` can observe unsynchronized updates. +- Portability/platform constraints: `_GetMs` depends on the configured timing hook and returns zero when no hook is set. `strlcpy` availability is build-dependent, with a project fallback when the platform lacks it. +- Performance shape: constant number of scalar assignments plus bounded string copies into `curZone[10]`, `curArea[64]`, and `curCountry[8]`. +- Security or parsing constraints: `strlcpy` truncates long strings silently; no validation of `offset` range or string contents. + +## Direct Call Sites + +Production-only exact search found only the public declaration in `note.h:1730` and the definition in `n_helpers.c:808`. Focused tests call it directly from `test/src/NoteTimeSet_test.cpp` and `test/src/NoteTime_test.cpp`. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that want to inject host-provided time and region state or clear manual time so later calls fall back to Notecard `card.time`. + +## Tests Observed + +Focused tests in `test/src/NoteTimeSet_test.cpp` cover setting manual time and region, clearing manual time with `secondsUTC == 0` so later `NoteTime` requests `card.time`, invalidating `NoteRegion`, and null region inputs defaulting to UTC/empty strings. `test/src/NoteTime_test.cpp` uses `NoteTimeSet` to cover millisecond rollover handling in `NoteTime`. Gaps include long-string truncation, offset boundary values, absent `NoteGetMs` hook behavior during manual set, and concurrency/locking. + +## Graph Links + +- Graph node id: `function:n_helpers.c:808:NoteTimeSet` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_GetMs` and `strlcpy`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L834__NotePrintln.md b/source-research/artifacts/functions/n_helpers_c__L834__NotePrintln.md new file mode 100644 index 00000000..19764f1d --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L834__NotePrintln.md @@ -0,0 +1,60 @@ +# `NotePrintln` + +## Status + +Finalized. Source-inspected public newline-print wrapper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:834` +- Declaration/interface: `note.h:1125` +- Signature/API shape: `void NotePrintln(const char *line)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NotePrintln` +- Macro aliases/wrappers: none +- Ownership/lifetime role: routes caller text and SDK newline constant through `NotePrint` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:847:NotePrint` finalized in this slice +- External/system dependencies: none directly +- Data/type/global dependencies: reads `c_newline` +- Artifact coverage: generated artifact exists + +## Behavior + +Calls `NotePrint(line)` and then `NotePrint(c_newline)`. It returns `void` and ignores both `NotePrint` return values. + +## Important Boundaries + +- Preconditions and assumptions: caller normally passes a non-null C string; null handling follows `NotePrint`. +- Error/null/empty behavior: failures from printing the line or newline are not surfaced. +- Ownership and lifetime: does not retain `line`; no allocation of its own. +- Concurrency/global state: inherits debug hook and request/transport behavior from `NotePrint`. +- Portability/platform constraints: inherits `NOTE_NODEBUG` behavior from `NotePrint`. +- Performance shape: two `NotePrint` calls. +- Security or parsing constraints: no validation of `line`. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1125`. + +## Role In Callers + +This is the public line-oriented wrapper over `NotePrint`. + +## Tests Observed + +Focused `test/src/NotePrintln_test.cpp` fakes `NotePrint` and verifies the line text is followed by `c_newline`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:834:NotePrintln` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NotePrint`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L847__NotePrint.md b/source-research/artifacts/functions/n_helpers_c__L847__NotePrint.md new file mode 100644 index 00000000..1344c905 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L847__NotePrint.md @@ -0,0 +1,69 @@ +# `NotePrint` + +## Status + +Finalized. Source-inspected public debug/card.log print helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:847` +- Declaration/interface: `note.h:1119` +- Signature/API shape: `bool NotePrint(const char *text)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NotePrint` +- Macro aliases/wrappers: none +- Ownership/lifetime role: routes text to active debug hook or transfers a `card.log` request to `NoteRequest` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:308:_noteIsDebugOutputActive` finalized + - `macro:n_lib.h:256:_Debug` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: reads debug hook state and may send `card.log` +- Artifact coverage: generated artifact exists + +## Behavior + +If debug output is active, calls `_Debug(text)` and returns `true` without sending a Notecard request. In `NOTE_NODEBUG` builds `_Debug` expands to nothing, so this path still reports success when the debug hook is active. + +When debug output is inactive, creates a `card.log` request, adds `"text": text`, and returns `NoteRequest(req)`. The return from `JAddStringToObject` is ignored; request allocation failure flows through `JAddStringToObject(NULL, ...)` and `NoteRequest(NULL)` to `false`. + +## Important Boundaries + +- Preconditions and assumptions: callers normally pass a non-null C string; null text is passed through to `_Debug` on the debug path or causes `JAddStringToObject` to return `NULL` on the card.log path. +- Error/null/empty behavior: debug-active path always returns true after `_Debug`; card.log path returns the boolean from `NoteRequest`. +- Ownership and lifetime: does not retain `text`; `NoteRequest` consumes the request object when one is created. +- Concurrency/global state: observes debug hook state without locking and otherwise uses request/transport hooks. +- Portability/platform constraints: `_Debug` behavior changes under `NOTE_NODEBUG`. +- Performance shape: O(length of text) for debug/card.log string handling plus one request transaction on the card.log path. +- Security or parsing constraints: no explicit validation of `text`; logging request may be sent without a `"text"` field if string attachment fails. + +## Direct Call Sites + +Exact source search found direct production callers: + +- `n_helpers.c:836` and `n_helpers.c:837` in `NotePrintln`. +- `n_printf.c:67` in `NotePrintf`. + +## Role In Callers + +This is the shared output primitive for line-oriented and formatted public print helpers. + +## Tests Observed + +Focused `test/src/NotePrint_test.cpp` covers debug output mode, card.log request allocation failure, `NoteRequest` failure, and `NoteRequest` success. The test accounts for `NOTE_NODEBUG` suppressing `NoteDebug`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:847:NotePrint` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_noteIsDebugOutputActive`, `_Debug`, `NoteNewRequest`, `JAddStringToObject`, and `NoteRequest`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L871__NoteTimeST.md b/source-research/artifacts/functions/n_helpers_c__L871__NoteTimeST.md new file mode 100644 index 00000000..fd338d18 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L871__NoteTimeST.md @@ -0,0 +1,73 @@ +# `NoteTimeST` + +## Status + +Finalized. Source-inspected public session-time retrieval and refresh helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:871` +- Declaration/interface: `note.h:1714` +- Signature/API shape: `JTIME NoteTimeST(void)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteTimeST` +- Macro aliases/wrappers: none +- Ownership/lifetime role: maintains global cached time/zone state; owns no heap memory + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized + - `function:n_helpers.c:2301:_timerExpiredSecs` finalized + - `function:n_request.c:220:NoteRequestResponse` finalized + - `function:n_request.c:173:NoteNewRequest` finalized + - `macro:note.h:479:NoteResponseError` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `function:n_helpers.c:791:_setTime` finalized in this slice + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `function:n_str.c:31:strlcpy` finalized + - `macro:note.h:486:NoteDeleteResponse` finalized +- External/system dependencies: `strchr`, `memcmp` +- Data/type/global dependencies: reads/writes `timeBaseSec`, `timeBaseSetAtMs`, `timeBaseSetManually`, `timeTimer`, `timeRefreshTimer`, `refreshTimerSecs`, `suppressionTimerSecs`, `zoneStillUnavailable`, `zoneForceRefresh`, `curZone`, `curZoneOffsetMins`, `curCountry`, and `curArea` +- Artifact coverage: generated artifact exists + +## Behavior + +Reads the current millisecond tick, adjusts `timeBaseSec` across 32-bit millisecond rollover, and expires the refresh timer by clearing `timeTimer` when configured. If time was not manually set and the suppression timer permits a refresh, it requests `card.time`, ignores null/error responses, and on a nonzero `"time"` field calls `_setTime(seconds)`. + +When a nonempty `"zone"` field is present, it copies the substring before the first comma as the zone abbreviation, sets `zoneStillUnavailable` based on whether that abbreviation is `UTC`, clears `zoneForceRefresh`, stores the zone, offset minutes, country, and area, then deletes the response. The return value is the cached base seconds plus elapsed whole seconds since `timeBaseSetAtMs`; when no real base exists this acts like seconds since boot. + +## Important Boundaries + +- Preconditions and assumptions: global time state is initialized at module scope; request helpers own/delete request objects. +- Error/null/empty behavior: null/error `card.time` responses leave cached state unchanged and return elapsed boot seconds if no base is known; missing/zero `"time"` does not call `_setTime`; missing/empty `"zone"` does not update region globals. +- Ownership and lifetime: borrows strings from the response only until copied into global buffers; deletes any non-null response after inspection. +- Concurrency/global state: reads and mutates global time/zone state without locking. +- Portability/platform constraints: depends on platform millisecond hook width and wrap behavior through `_GetMs`. +- Performance shape: O(1) normally, plus one request transaction and bounded string copies when refresh is attempted. +- Security or parsing constraints: zone parsing expects comma-delimited `"ABBR,Name"` text; strings are bounded with `strlcpy`. + +## Direct Call Sites + +Exact source search found direct production callers in this file: + +- `NoteTimeValidST`, `NoteTime`, `NoteRegion`, and `NoteLocalTimeST`. + +## Role In Callers + +This is the central cached time/zone refresh API. `NoteTime` and `NoteTimeValidST` are small public wrappers; region/local-time helpers use it to keep cached zone state fresh. + +## Tests Observed + +Focused `test/src/NoteTime_test.cpp` covers null response, error/missing time response, valid `card.time` response with zone fields, and millisecond rollover through `NoteTime`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:871:NoteTimeST` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_GetMs`, `_timerExpiredSecs`, `NoteNewRequest`, `NoteRequestResponse`, `NoteResponseError`, `JGetInt`, `_setTime`, `JGetString`, `strlcpy`, and `NoteDeleteResponse`. + +## Evidence Gaps + +No unresolved source gaps for this node. Region/local-time callers remain separate frontier work. diff --git a/source-research/artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md b/source-research/artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md new file mode 100644 index 00000000..3e08e22a --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md @@ -0,0 +1,65 @@ +# `NoteAuxSerialFlowControl` + +## Status + +Finalized. Source-inspected public AUX serial flow-control request helper. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:92` +- Declaration/interface: `note.h:1596` +- Public/exported names: `NoteAuxSerialFlowControl` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteAuxSerialFlowControl(int bufSize, int delayMs)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: creates a `card.aux.serial` request, transfers request ownership to `NoteRequest`, and returns the request success boolean + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:173:NoteNewRequest` finalized + - `function:n_cjson.c:1989:JAddIntToObject` finalized + - `function:n_request.c:191:NoteRequest` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized +- External/system dependencies: none +- Data/type/global dependencies: constant `c_mem`; transitive request/transaction and logging hooks through callees +- Artifact coverage: source-inspected artifact + +## Behavior + +Initializes `result` to false, creates a `card.aux.serial` request, and when allocation succeeds adds `"max": bufSize - 1` and `"ms": delayMs` before submitting the request through `NoteRequest`. The return value is exactly the bool returned by `NoteRequest`. If request allocation fails, it logs `ERRSTR("Failed to configure AUX serial flow control", c_mem)` and returns false. + +## Important Boundaries + +- Preconditions and assumptions: integer inputs are accepted as-is. +- Error/null/empty behavior: request allocation failure returns false and logs. `JAddIntToObject` failures are ignored; `NoteRequest` decides final success after whatever fields were inserted. +- Ownership and lifetime: a non-null request is consumed by `NoteRequest`; this helper does not delete it directly. +- Concurrency/global state: no direct local shared state; request submission and logging use global SDK hook layers through finalized callees. +- Portability/platform constraints: the helper is platform-neutral; I/O is behind `NoteRequest` and configured transaction hooks. +- Performance shape: one JSON request allocation, two best-effort integer insertions, one request transaction. +- Security or parsing constraints: no range validation; `bufSize - 1` can underflow for `INT_MIN` or produce negative `"max"` values for small inputs. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1596`, the definition in `n_helpers.c:92`, and focused tests in `test/src/NoteAuxSerialFlowControl_test.cpp`. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that configure the Notecard AUX serial flow-control buffer and read delay. + +## Tests Observed + +Focused tests in `test/src/NoteAuxSerialFlowControl_test.cpp` fake `NoteNewRequest`, `NoteRequest`, and logging. Covered cases include request object creation, request type `card.aux.serial`, `"max" == bufSize - 1`, `"ms" == delayMs`, successful true return, allocation-failure logging, and false return on allocation failure. Gaps include `NoteRequest` returning false, invalid numeric inputs, and JSON field insertion failure. + +## Graph Links + +- Graph node id: `function:n_helpers.c:92:NoteAuxSerialFlowControl` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteNewRequest`, `JAddIntToObject`, `NoteRequest`, `NOTE_C_LOG_ERROR`, and `ERRSTR`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L948__NoteSetSTSecs.md b/source-research/artifacts/functions/n_helpers_c__L948__NoteSetSTSecs.md new file mode 100644 index 00000000..ee49012a --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L948__NoteSetSTSecs.md @@ -0,0 +1,59 @@ +# `NoteSetSTSecs` + +## Status + +Finalized. Source-inspected public suppression-timer interval setter. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:948` +- Declaration/interface: `note.h:1690` +- Public/exported names: `NoteSetSTSecs` +- Macro aliases/wrappers: none found +- Signature/API shape: `uint32_t NoteSetSTSecs(uint32_t secs)` +- Visibility: public note-c helper implemented in `n_helpers.c` +- Ownership/lifetime role: updates module-local suppression timer configuration and returns the previous value + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads and writes static `suppressionTimerSecs`, which defaults to 10 seconds and is consumed by multiple `*ST` cached-helper paths +- Artifact coverage: source-inspected artifact + +## Behavior + +Copies the current `suppressionTimerSecs` value into a local `prev`, assigns the caller-provided `secs` to `suppressionTimerSecs`, and returns `prev`. + +## Important Boundaries + +- Preconditions and assumptions: accepts a primitive `uint32_t` second count; no pointer or ownership boundary. +- Error/null/empty behavior: no error path. Passing zero stores zero, making downstream `_timerExpiredSecs(..., suppressionTimerSecs)` calls use a zero-second interval. +- Ownership and lifetime: writes only module-local static state. +- Concurrency/global state: no locking around `suppressionTimerSecs`; cached-helper readers can observe unsynchronized updates. +- Portability/platform constraints: downstream timer expiration multiplies seconds by 1000, so large values can overflow there. +- Performance shape: constant-time read, write, and return. +- Security or parsing constraints: no range validation. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:1690` and the definition in `n_helpers.c:948`. No production repository caller, test caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public configuration helper for downstream callers that want to change the suppression timer used by cached `*ST` helpers. + +## Tests Observed + +No focused tests for `NoteSetSTSecs` were found. Gaps include previous-value return behavior, zero-second behavior, large-value overflow effects in `_timerExpiredSecs`, and behavior across `NoteTimeST`, `NoteLocationValidST`, `NoteIsConnectedST`, and `NoteGetStatusST`. + +## Graph Links + +- Graph node id: `function:n_helpers.c:948:NoteSetSTSecs` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_helpers_c__L965__NoteRegion.md b/source-research/artifacts/functions/n_helpers_c__L965__NoteRegion.md new file mode 100644 index 00000000..65519750 --- /dev/null +++ b/source-research/artifacts/functions/n_helpers_c__L965__NoteRegion.md @@ -0,0 +1,62 @@ +# `NoteRegion` + +## Status + +Finalized. Source-inspected public cached region/timezone accessor. + +## Identity + +- Kind: function +- Definition: `n_helpers.c:965` +- Declaration/interface: `note.h:1756` +- Signature/API shape: `bool NoteRegion(char **retCountry, char **retArea, char **retZone, int *retZoneOffset)` +- Visibility: public SDK API declared in `note.h` +- Public/exported names: `NoteRegion` +- Macro aliases/wrappers: none +- Ownership/lifetime role: returns borrowed pointers to static region cache or static fallback strings + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:871:NoteTimeST` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: reads `zoneStillUnavailable`, `curCountry`, `curArea`, `curZone`, and `curZoneOffsetMins` +- Artifact coverage: generated artifact exists + +## Behavior + +Calls `NoteTimeST()` first to refresh cached time/zone state. If `zoneStillUnavailable` remains true, writes fallback values to non-null outputs (`country=""`, `area=""`, `zone="UTC"`, offset `0`) and returns false. Otherwise writes pointers to the cached country/area/zone buffers and cached offset to non-null outputs, then returns true. + +## Important Boundaries + +- Preconditions and assumptions: output pointers are optional; caller must treat returned strings as borrowed. +- Error/null/empty behavior: null output pointers are ignored; unavailable zone reports false with safe fallback values for provided outputs. +- Ownership and lifetime: returned cached pointers remain owned by module globals/static strings. +- Concurrency/global state: reads global region cache without locking after `NoteTimeST` may mutate it. +- Portability/platform constraints: region cache is populated by Notecard `card.time` response parsing in `NoteTimeST`. +- Performance shape: O(1) plus any refresh transaction performed by `NoteTimeST`. +- Security or parsing constraints: no validation beyond the cached state maintained by `NoteTimeST`. + +## Direct Call Sites + +Exact source search found direct production caller: + +- `n_helpers.c:1056` `NoteLocalTimeST` obtains current zone and offset. + +## Role In Callers + +This is the public region/timezone cache accessor and local-time dependency. + +## Tests Observed + +Focused `test/src/NoteRegion_test.cpp` covers unavailable and valid cached region paths, with null and non-null output pointers. `NoteTimeSet_test.cpp` also covers manual region setup and reset behavior through this accessor. + +## Graph Links + +- Graph node id: `function:n_helpers.c:965:NoteRegion` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NoteTimeST`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L1015__noteHardReset.md b/source-research/artifacts/functions/n_hooks_c__L1015__noteHardReset.md new file mode 100644 index 00000000..94fdbdba --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L1015__noteHardReset.md @@ -0,0 +1,54 @@ +# `_noteHardReset` + +## Status + +Finalized. Source-inspected active-interface reset dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:1015` +- Declaration/interface: internal hook target +- Signature/API shape: `bool _noteHardReset(void)` +- Visibility: internal note-c hook boundary +- Public/exported names: `_noteHardReset` + +## Dependency Status + +- Project-local dependencies: selected reset target is dynamic through `notecardReset` +- External/system dependencies: none +- Data/type/global dependencies: `notecardReset` + +## Behavior + +Returns true when no reset target is selected. Otherwise calls the active `notecardReset` function pointer and returns its result. + +## Important Boundaries + +- Preconditions and assumptions: active interface selection owns the function pointer. +- Error/null/empty behavior: no active reset target is treated as success. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global dispatch pointer. +- Performance shape: O(1) plus active adapter reset cost. +- Portability/platform constraints: serial/I2C reset behavior remains in adapter targets selected by `_noteSetActiveInterface`. + +## Direct Call Sites + +Exact source search found macro alias `_Reset` and `NoteReset` as callers. + +## Role In Callers + +`_noteTransactionShouldLock` uses this through `_Reset` when `resetRequired` is set or I/O errors require retry reset. + +## Tests Observed + +`_noteHardReset_test.cpp`, `_noteSetActiveInterface_test.cpp`, and transaction reset tests cover default and selected reset behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:1015:_noteHardReset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md b/source-research/artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md new file mode 100644 index 00000000..bd89ddbe --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md @@ -0,0 +1,54 @@ +# `_noteJSONTransaction` + +## Status + +Finalized. Source-inspected active-interface JSON transaction dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:1042` +- Declaration/interface: internal hook target +- Signature/API shape: `const char *_noteJSONTransaction(const char *request, size_t reqLen, char **response, uint32_t timeoutMs)` +- Visibility: internal note-c hook boundary +- Public/exported names: `_noteJSONTransaction` + +## Dependency Status + +- Project-local dependencies: selected transaction target is dynamic through `notecardTransaction` +- External/system dependencies: none +- Data/type/global dependencies: `notecardTransaction`, `hookActiveInterface` + +## Behavior + +Returns the error string `"a valid interface must be selected"` when no transaction target is selected or the active interface is none. Otherwise forwards request pointer, request length, response pointer, and timeout unchanged to the selected transaction function pointer and returns its result. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies newline-terminated request text according to transport contract. +- Error/null/empty behavior: disabled interface returns an error string rather than attempting I/O. +- Ownership and lifetime: response ownership is determined by the selected adapter. +- Concurrency/global state: reads active interface and transaction dispatch pointer. +- Performance shape: O(1) plus adapter transaction cost. +- Portability/platform constraints: serial/I2C behavior remains behind adapter targets selected by `_noteSetActiveInterface`. + +## Direct Call Sites + +Exact source search found macro alias `_Transaction` as the primary internal caller surface. + +## Role In Callers + +`_noteTransactionShouldLock`, raw JSON request flow, and ping flow use this dispatcher for Notecard I/O. + +## Tests Observed + +`_noteJSONTransaction_test.cpp`, `_noteSetActiveInterface_test.cpp`, serial/I2C transaction tests, and transaction tests cover disabled-interface and forwarding behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:1042:_noteJSONTransaction` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md b/source-research/artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md new file mode 100644 index 00000000..d6cc30e8 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md @@ -0,0 +1,54 @@ +# `_noteChunkedReceive` + +## Status + +Finalized. Source-inspected active-interface chunked receive dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:1068` +- Declaration/interface: `n_lib.h:150` +- Signature/API shape: `const char *_noteChunkedReceive(uint8_t *buffer, uint32_t *size, bool delay, uint32_t timeoutMs, uint32_t *available)` +- Visibility: internal note-c hook boundary +- Public/exported names: `_noteChunkedReceive` + +## Dependency Status + +- Project-local dependencies: selected chunked receive target is dynamic through `notecardChunkedReceive` +- External/system dependencies: none +- Data/type/global dependencies: `notecardChunkedReceive`, `hookActiveInterface` + +## Behavior + +Returns `"a valid interface must be selected"` when no chunked receive target is selected or the active interface is none. Otherwise forwards buffer, size pointer, delay flag, timeout, and available pointer to the selected chunked receive function pointer and returns its error string. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies buffers and in/out pointers according to active adapter contract. +- Error/null/empty behavior: disabled interface returns an error string. +- Ownership and lifetime: no allocation in dispatcher; adapter owns any transport-specific behavior. +- Concurrency/global state: reads active interface and dispatch pointer. +- Performance shape: O(1) plus adapter receive cost. +- Portability/platform constraints: serial/I2C behavior remains behind adapter targets selected by `_noteSetActiveInterface`. + +## Direct Call Sites + +Exact source search found macro alias `_ChunkedReceive` as the primary internal caller surface. + +## Role In Callers + +`NoteBinaryStoreReceive` uses this dispatcher to read raw binary chunks after the JSON setup transaction succeeds. + +## Tests Observed + +`_noteChunkedReceive_test.cpp`, `_noteSetActiveInterface_test.cpp`, and `NoteBinaryStoreReceive_test.cpp` cover disabled-interface and forwarding behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:1068:_noteChunkedReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md b/source-research/artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md new file mode 100644 index 00000000..45236f77 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md @@ -0,0 +1,72 @@ +# `_noteChunkedTransmit` + +## Status + +Finalized. Source-inspected active-interface chunked transmit dispatcher, callback registrations, macro alias caller, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:1087` +- Declaration/interface: `n_lib.h:151` +- Public/exported names: none; internal active-interface dispatch wrapper +- Macro aliases/wrappers: `_ChunkedTransmit` expands to `_noteChunkedTransmit` at `n_lib.h:240` +- Signature/API shape: `const char *_noteChunkedTransmit(const uint8_t *buffer, uint32_t size, bool delay)` +- Visibility: internal declaration in `n_lib.h`, implementation in `n_hooks.c` +- Ownership/lifetime role: forwards caller-owned buffer to the active chunked transmit callback; does not allocate or retain it + +## Dependency Status + +- Project-local dependencies: + - Dynamic callback candidates through `notecardChunkedTransmit`: + - `function:n_serial.c:303:_serialChunkedTransmit` finalized + - `function:n_i2c.c:456:_i2cNoteChunkedTransmit` finalized +- External/system dependencies: transport behavior behind the active callback and platform hooks +- Data/type/global dependencies: reads `notecardChunkedTransmit` and `hookActiveInterface`; assignments are made by finalized `_noteSetActiveInterface` +- Artifact coverage: source, declaration, alias, callback registration paths, dynamic candidates, direct callers, and focused tests inspected + +## Behavior + +If `notecardChunkedTransmit` is null or `hookActiveInterface == NOTE_C_INTERFACE_NONE`, returns the literal error string `"a valid interface must be selected"`. Otherwise forwards `buffer`, `size`, and `delay` unchanged to the currently installed `notecardChunkedTransmit` callback and returns that callback's result. + +## Important Boundaries + +- Preconditions and assumptions: a serial or I2C active interface must have installed a chunked transmit callback for successful dispatch. Buffer validity is delegated to the active callback. +- Error/null/empty behavior: no active callback or `NOTE_C_INTERFACE_NONE` returns a literal error; otherwise all error/null/zero-size behavior is inherited from the active callback. +- Ownership and lifetime: no allocation and no ownership transfer; forwards the borrowed buffer pointer. +- Concurrency/global state: reads active-interface dispatch state; callers generally hold the relevant Notecard lock before binary transfers. +- Portability/platform constraints: platform transport behavior remains behind the selected serial or I2C adapter. +- Performance shape: O(1) dispatch plus active callback cost. +- Security or parsing constraints: no parsing; raw bytes are forwarded. + +## Direct Call Sites + +Exact source search found: + +- `n_lib.h:151` internal declaration. +- `n_lib.h:240` `_ChunkedTransmit` macro alias. +- `n_hooks.c:1087` implementation. +- `n_helpers.c:683` `NoteBinaryStoreTransmit` uses the alias to send encoded binary data immediately after the setup request. + +Related registration sites: `_noteSetActiveInterface` installs `_serialChunkedTransmit` for serial and `_i2cNoteChunkedTransmit` for I2C, and clears the callback for disabled/unrecognized interfaces. + +## Role In Callers + +`_ChunkedTransmit` is the direct alias used by binary-store transmit. Active-interface setup decides whether this dispatch reaches the serial adapter, the I2C adapter, or returns a no-interface error. + +## Tests Observed + +`test/src/_noteChunkedTransmit_test.cpp` covers `NOTE_C_INTERFACE_NONE` returning the interface error even when a callback is set, I2C/serial active interfaces with null callback returning the interface error, and I2C/serial active interfaces with callbacks forwarding parameters and returning the callback result. `_noteSetActiveInterface_test.cpp` verifies serial/I2C callback registration and callback clearing. `NoteBinaryStoreTransmit_test.cpp` fakes `_noteChunkedTransmit` to cover caller error propagation. + +## Test Coverage Notes + +Focused tests do not exercise the real serial/I2C callbacks through this dispatcher in one integration path; those adapters are covered by their own focused tests. + +## Graph Links + +- Graph node id: `function:n_hooks.c:1087:_noteChunkedTransmit` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md b/source-research/artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md new file mode 100644 index 00000000..f48b7079 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md @@ -0,0 +1,54 @@ +# `NoteGetActiveInterface` + +## Status + +Finalized. Source-inspected active-interface getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:209` +- Declaration/interface: `note.h:783` +- Signature/API shape: `int NoteGetActiveInterface(void)` +- Visibility: public note-c hook API +- Public/exported names: `NoteGetActiveInterface` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `hookActiveInterface` + +## Behavior + +Returns the current `hookActiveInterface` value, one of the note-c interface constants or `NOTE_C_INTERFACE_NONE`. + +## Important Boundaries + +- Preconditions and assumptions: no inputs. +- Error/null/empty behavior: no error channel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global hook state. +- Performance shape: O(1). +- Portability/platform constraints: none. + +## Direct Call Sites + +Exact source search found callers in `NoteUserAgent`, `NoteReset`, and tests. + +## Role In Callers + +`NoteUserAgent` uses this value to record `"req_interface"` as `none`, `serial`, `i2c`, or `unknown`. + +## Tests Observed + +`NoteGetActiveInterface_test.cpp` covers the getter. Interface-setting tests exercise it indirectly. + +## Graph Links + +- Graph node id: `function:n_hooks.c:209:NoteGetActiveInterface` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md b/source-research/artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md new file mode 100644 index 00000000..90b04d61 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md @@ -0,0 +1,62 @@ +# `_noteSetActiveInterface` + +## Status + +Finalized. Source-inspected active-interface dispatch selector. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:214` +- Declaration/interface: `test/include/test_static.h:25` when static helpers are test-visible +- Signature/API shape: `NOTE_C_STATIC void _noteSetActiveInterface(int interface)` +- Visibility: internal hook helper +- Public/exported names: none +- Macro aliases/wrappers: none +- Ownership/lifetime role: mutates global active-interface and dispatch function-pointer state + +## Dependency Status + +- Project-local dependencies: no project-local callees +- External/system dependencies: none +- Data/type/global dependencies: `hookActiveInterface`, `notecardReset`, `notecardTransaction`, `notecardChunkedReceive`, `notecardChunkedTransmit`, serial adapter entry points, I2C adapter entry points + +## Behavior + +Stores the requested interface in `hookActiveInterface`, then selects the active Notecard transport dispatch table. + +- `NOTE_C_INTERFACE_SERIAL`: sets reset/transaction/chunked receive/chunked transmit dispatch pointers to `_serialNoteReset`, `_serialNoteTransaction`, `_serialChunkedReceive`, and `_serialChunkedTransmit`. +- `NOTE_C_INTERFACE_I2C`: sets dispatch pointers to `_i2cNoteReset`, `_i2cNoteTransaction`, `_i2cNoteChunkedReceive`, and `_i2cNoteChunkedTransmit`. +- Any other value, including `NOTE_C_INTERFACE_NONE`: normalizes `hookActiveInterface` to `NOTE_C_INTERFACE_NONE` and clears all four dispatch pointers to NULL. + +The function only assigns pointers; it does not call the selected transport functions. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies one of the public interface constants or accepts disabled behavior for any other value. +- Error/null/empty behavior: unrecognized values silently disable active communication. +- Ownership and lifetime: no allocation; stores addresses of static adapter functions. +- Concurrency/global state: mutates global dispatch state. Public callers wrap this helper with the Notecard lock; tests call it directly. +- Performance shape: O(1). +- Portability/platform constraints: centralizes active serial/I2C adapter selection while platform-specific I/O remains in adapter functions and hooks. + +## Direct Call Sites + +Exact source search found production callers in `NoteSetActiveInterface`, `NoteSetFnSerial`, `NoteSetFnSerialDefault`, `NoteSetFnI2C`, `NoteSetFnI2CDefault`, and `NoteSetFnDisabled`. + +## Role In Callers + +Public setter APIs install or preserve hook pointers, then use this helper to choose which transport dispatch table active transactions will use. Default setter variants only call it when no interface is active. + +## Tests Observed + +`test/src/_noteSetActiveInterface_test.cpp` verifies NULL/previously-set dispatch state for none, I2C, serial, and unrecognized interface values. Public setter tests fake `_noteSetActiveInterface` to verify callers pass the intended interface or skip default activation when an interface is already active. + +## Graph Links + +- Graph node id: `function:n_hooks.c:214:_noteSetActiveInterface` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md b/source-research/artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md new file mode 100644 index 00000000..3706ffe9 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md @@ -0,0 +1,61 @@ +# `NoteSetActiveInterface` + +## Status + +Finalized. Source-inspected public active-interface setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:241` +- Declaration/interface: `note.h:777` +- Signature/API shape: `void NoteSetActiveInterface(int interface)` +- Visibility: public SDK hook API +- Public/exported names: `NoteSetActiveInterface` +- Macro aliases/wrappers: none +- Ownership/lifetime role: no ownership; synchronizes global active-interface dispatch update + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `function:n_hooks.c:214:_noteSetActiveInterface` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: Notecard lock hook state and active-interface dispatch globals through callees + +## Behavior + +Takes the Notecard lock with `_LockNote`, calls `_noteSetActiveInterface(interface)`, then releases the lock with `_UnlockNote`. + +The selected serial/I2C/disabled dispatch behavior is owned by `_noteSetActiveInterface`; this wrapper adds synchronization for public callers. + +## Important Boundaries + +- Preconditions and assumptions: accepts any integer; unrecognized values are normalized to disabled state by the helper. +- Error/null/empty behavior: no return value and no error signal. +- Ownership and lifetime: no allocation. +- Concurrency/global state: serializes active-interface dispatch mutation with the Notecard lock when lock hooks are installed. +- Performance shape: O(1) plus lock hook cost. +- Portability/platform constraints: active interface selection remains portable; concrete I/O remains behind selected adapter functions and hooks. + +## Direct Call Sites + +Exact source search found public declaration, implementation, and focused tests. No production library caller was found; this is a public API entry point. + +## Role In Callers + +Allows applications/adapters to switch the active Notecard communication interface explicitly while ensuring the global dispatch table update is lock-protected. + +## Tests Observed + +`test/src/NoteSetActiveInterface_test.cpp` verifies that NONE, I2C, and SERIAL values are forwarded to `_noteSetActiveInterface` and that lock/unlock calls are balanced. + +## Graph Links + +- Graph node id: `function:n_hooks.c:241:NoteSetActiveInterface` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md b/source-research/artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md new file mode 100644 index 00000000..f9980a45 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md @@ -0,0 +1,61 @@ +# `NoteSetFnDefault` + +## Status + +Finalized. Source-inspected public default memory/timing hook setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:248` +- Declaration/interface: `note.h:645` +- Public/exported names: `NoteSetFnDefault` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnDefault(mallocFn mallocfn, freeFn freefn, delayMsFn delayfn, getMsFn millisfn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: conditionally stores caller-provided callback pointers as default SDK hook globals + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `hookMalloc`, `hookFree`, `hookDelayMs`, and `hookGetMs` only when each current slot is null +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access, checks each memory/timing hook slot independently, stores the supplied callback only when that slot is currently null, then unlocks. A null argument can become the stored default only when the current slot is already null; it does not clear an already-set hook. + +## Important Boundaries + +- Preconditions and assumptions: callback pointers are accepted as opaque values and are not validated. +- Error/null/empty behavior: no return value or error path; null callbacks are accepted. +- Ownership and lifetime: callback ownership stays with the caller/platform; note-c stores the raw function pointers. +- Concurrency/global state: updates global hook slots under `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: this is the portable hook boundary for allocation and timing callbacks. +- Performance shape: one lock, up to four conditional pointer assignments, one unlock. +- Security or parsing constraints: no validation that callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:645`, the definition in `n_hooks.c:248`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream adapter code that wants to provide fallback allocation/free/delay/millis hooks without overriding hooks already installed. + +## Tests Observed + +Focused tests in `test/src/NoteSetFnDefault_test.cpp` verify storage and lock behavior. Consumer tests for `NoteMalloc`, `NoteFree`, `NoteDelayMs`, and `NoteGetMs` exercise the resulting hook values. Gaps include mixed set/unset permutations and concurrency. + +## Graph Links + +- Graph node id: `function:n_hooks.c:248:NoteSetFnDefault` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L266__NoteSetFn.md b/source-research/artifacts/functions/n_hooks_c__L266__NoteSetFn.md new file mode 100644 index 00000000..eae3fb79 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L266__NoteSetFn.md @@ -0,0 +1,61 @@ +# `NoteSetFn` + +## Status + +Finalized. Source-inspected public memory/timing hook setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:266` +- Declaration/interface: `note.h:659` +- Public/exported names: `NoteSetFn` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFn(mallocFn mallocHook, freeFn freeHook, delayMsFn delayMsHook, getMsFn getMsHook)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: unconditionally stores caller-provided callback pointers as SDK hook globals + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `hookMalloc`, `hookFree`, `hookDelayMs`, and `hookGetMs` +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access, assigns all four memory/timing hook globals from the supplied arguments, and unlocks. Null arguments clear the corresponding hook slots. + +## Important Boundaries + +- Preconditions and assumptions: callback pointers are accepted as opaque values and are not validated. +- Error/null/empty behavior: no return value or error path; null callbacks are accepted and clear hooks. +- Ownership and lifetime: callback ownership stays with the caller/platform; note-c stores raw function pointers. +- Concurrency/global state: updates global hook slots under `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: this is the portable hook boundary for allocation and timing callbacks. +- Performance shape: one lock, four pointer assignments, one unlock. +- Security or parsing constraints: no validation that callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:659`, the definition in `n_hooks.c:266`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream adapter code that wants to install or clear allocation/free/delay/millis hooks. + +## Tests Observed + +Focused tests in `test/src/NoteSetFn_test.cpp` verify setting hooks, clearing hooks with nulls, and lock/unlock pairing. Gaps include partial argument permutations and concurrency. + +## Graph Links + +- Graph node id: `function:n_hooks.c:266:NoteSetFn` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md b/source-research/artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md new file mode 100644 index 00000000..a3f7fea6 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md @@ -0,0 +1,61 @@ +# `NoteSetFnHeartbeat` + +## Status + +Finalized. Source-inspected conditional public heartbeat hook setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:285` +- Declaration/interface: `note.h:547` +- Public/exported names: `NoteSetFnHeartbeat` when `NOTE_C_HEARTBEAT_CALLBACK` is enabled +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnHeartbeat(heartbeatFn fn, void *context)` +- Visibility: conditional public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: stores a caller-provided heartbeat callback pointer and opaque context + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `hookHeartbeat` and `hookHeartbeatContext` +- Artifact coverage: source-inspected artifact + +## Behavior + +When compiled with `NOTE_C_HEARTBEAT_CALLBACK`, locks Notecard access, assigns the heartbeat function and context globals from the supplied arguments, and unlocks. Null `fn` disables heartbeat dispatch; the context value is still stored even when the function pointer is null. + +## Important Boundaries + +- Preconditions and assumptions: callback and context are accepted as opaque values. +- Error/null/empty behavior: no return value or error path; null callback clears/disables heartbeat dispatch. +- Ownership and lifetime: callback/context ownership stays with the caller; note-c stores raw values. +- Concurrency/global state: updates heartbeat globals under `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: symbol exists only in `NOTE_C_HEARTBEAT_CALLBACK` builds. +- Performance shape: one lock, two assignments, one unlock. +- Security or parsing constraints: no validation that callback/context remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the conditional public declaration in `note.h:547`, the conditional definition in `n_hooks.c:285`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream adapter code that wants transaction heartbeat callbacks in heartbeat-enabled builds. + +## Tests Observed + +Focused tests in `test/src/NoteSetFnHeartbeat_test.cpp`, `test/src/NoteGetFnHeartbeat_test.cpp`, `test/src/_noteHeartbeat_test.cpp`, and heartbeat-enabled transaction tests cover setter/getter/dispatch behavior. Gaps include every null-argument branch's lock pairing and the symbol's absence in non-heartbeat builds. + +## Graph Links + +- Graph node id: `function:n_hooks.c:285:NoteSetFnHeartbeat` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md b/source-research/artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md new file mode 100644 index 00000000..675b5ee2 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md @@ -0,0 +1,61 @@ +# `NoteSetFnDebugOutput` + +## Status + +Finalized. Source-inspected public debug-output hook setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:294` +- Declaration/interface: `note.h:533` +- Public/exported names: `NoteSetFnDebugOutput` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnDebugOutput(debugOutputFn fn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: stores a caller-provided debug output callback pointer + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `hookDebugOutput` +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access, assigns `hookDebugOutput = fn`, and unlocks. Null clears the debug output hook; `_noteIsDebugOutputActive` and debug output helpers then treat debug output as inactive. + +## Important Boundaries + +- Preconditions and assumptions: callback pointer is accepted as an opaque value. +- Error/null/empty behavior: no return value or error path; null clears the hook. +- Ownership and lifetime: callback ownership stays with the caller/platform; note-c stores the raw function pointer. +- Concurrency/global state: updates `hookDebugOutput` under `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: debug/log output still depends on `NOTE_NODEBUG` and log-level compilation/runtime behavior. +- Performance shape: one lock, one pointer assignment, one unlock. +- Security or parsing constraints: no validation that callback remains valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:533`, the definition in `n_hooks.c:294`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream adapter code that wants to route SDK debug/log output. + +## Tests Observed + +Focused tests in `test/src/NoteSetFnDebugOutput_test.cpp`, `test/src/NoteGetFnDebugOutput_test.cpp`, `test/src/NoteDebug_test.cpp`, and `test/src/NoteDebugf_test.cpp` cover setting/getting and debug output use. Gap: no concurrent set/use coverage. + +## Graph Links + +- Graph node id: `function:n_hooks.c:294:NoteSetFnDebugOutput` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md b/source-research/artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md new file mode 100644 index 00000000..02292921 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md @@ -0,0 +1,59 @@ +# `_noteIsDebugOutputActive` + +## Status + +Finalized. Source-inspected debug-output hook predicate. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:308` +- Declaration/interface: `n_lib.h:152` +- Signature/API shape: `bool _noteIsDebugOutputActive(void)` +- Visibility: internal/private helper declared in `n_lib.h` +- Public/exported names: none in `note.h` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads static hook pointer `hookDebugOutput` declared in `n_hooks.c` + +## Behavior + +Returns `true` when `hookDebugOutput` is non-NULL and `false` otherwise. + +## Important Boundaries + +- Preconditions and assumptions: none. +- Error/null/empty behavior: null hook means inactive debug output. +- Ownership and lifetime: reads hook pointer only. +- Concurrency/global state: observes global hook state without locking; callers use it as an advisory debug predicate. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search found production callers: + +- `n_helpers.c:847` in `NotePrint`. +- `n_hooks.c:474` in `NoteDebug`. +- `n_hooks.c:576` and `n_hooks.c:599` in allocator debug logging. +- `n_printf.c:35` in `NoteDebugf`. + +## Role In Callers + +In the active allocator slice, `NoteMalloc` and `NoteFree` call this predicate only inside `NOTE_C_SHOW_MALLOC && !NOTE_C_LOW_MEM` debug logging blocks before writing allocation/free messages. + +## Tests Observed + +None. No focused direct test was inspected for this helper. + +## Graph Links + +- Graph node id: `function:n_hooks.c:308:_noteIsDebugOutputActive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md b/source-research/artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md new file mode 100644 index 00000000..282ea029 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md @@ -0,0 +1,61 @@ +# `NoteSetFnTransaction` + +## Status + +Finalized. Source-inspected public transaction hook setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:313` +- Declaration/interface: `note.h:565` +- Public/exported names: `NoteSetFnTransaction` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnTransaction(txnStartFn startFn, txnStopFn stopFn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: stores transaction start/stop callback pointers + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: writes `hookTransactionStart` and `hookTransactionStop` +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access, assigns transaction start and stop hook globals from the supplied arguments, and unlocks. Null arguments clear the corresponding transaction hook; `_noteTransactionStart` defaults to success when unset, and `_noteTransactionStop` no-ops when unset. + +## Important Boundaries + +- Preconditions and assumptions: callback pointers are accepted as opaque values. +- Error/null/empty behavior: no return value or error path; null clears hooks. +- Ownership and lifetime: callback ownership stays with the caller/platform; note-c stores raw function pointers. +- Concurrency/global state: updates transaction hooks under `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: transaction hooks wrap portable request orchestration without owning platform transport behavior. +- Performance shape: one lock, two pointer assignments, one unlock. +- Security or parsing constraints: no validation that callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:565`, the definition in `n_hooks.c:313`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream adapter code that wants transaction lifecycle callbacks. + +## Tests Observed + +Focused tests in `test/src/NoteSetFnTransaction_test.cpp`, `test/src/NoteGetFnTransaction_test.cpp`, and transaction hook tests cover setting/getting and dispatch behavior. Gaps include false-return propagation from a registered start hook in the focused dispatcher coverage. + +## Graph Links + +- Graph node id: `function:n_hooks.c:313:NoteSetFnTransaction` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md b/source-research/artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md new file mode 100644 index 00000000..7763becd --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md @@ -0,0 +1,59 @@ +# `NoteSetFnMutex` + +## Status + +Finalized. Source-inspected public I2C and Notecard mutex hook setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:321` +- Declaration/interface: `note.h:584` +- Public/exported names: `NoteSetFnMutex` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnMutex(mutexFn lockI2Cfn, mutexFn unlockI2Cfn, mutexFn lockNotefn, mutexFn unlockNotefn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: stores caller-provided I2C and Notecard lock/unlock callback pointers + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes `hookLockI2C`, `hookUnlockI2C`, `hookLockNote`, and `hookUnlockNote` +- Artifact coverage: source-inspected artifact + +## Behavior + +Directly assigns all four mutex hook globals from the supplied arguments. Unlike most hook setters, this function does not call `_LockNote` or `_UnlockNote`. + +## Important Boundaries + +- Preconditions and assumptions: callback pointers are accepted as opaque values. +- Error/null/empty behavior: no return value or error path; null clears the corresponding hook. Runtime lock/unlock wrappers no-op when hooks are null. +- Ownership and lifetime: callback ownership stays with the caller/platform; note-c stores raw function pointers. +- Concurrency/global state: unsynchronized writes to global mutex hook pointers. +- Portability/platform constraints: this is the platform boundary for I2C and Notecard mutex callbacks. +- Performance shape: four pointer assignments. +- Security or parsing constraints: no validation that callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:584`, the definition in `n_hooks.c:321`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream adapter code that wants to install or clear both I2C and Notecard mutex hooks. + +## Tests Observed + +Focused tests in `test/src/NoteSetFnMutex_test.cpp` and `test/src/NoteGetFnMutex_test.cpp` cover setting/getting and clearing behavior. Gaps include partial null permutations and concurrency. + +## Graph Links + +- Graph node id: `function:n_hooks.c:321:NoteSetFnMutex` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md b/source-research/artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md new file mode 100644 index 00000000..8a25d192 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md @@ -0,0 +1,59 @@ +# `NoteSetFnI2CMutex` + +## Status + +Final. Behavior, public declaration, global state mutation, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:329` +- Declaration/interface: `note.h:605` +- Public/exported names: `NoteSetFnI2CMutex` +- Macro aliases/wrappers: unverified +- Signature/API shape: `void NoteSetFnI2CMutex(mutexFn lockI2Cfn, mutexFn unlockI2Cfn)` +- Visibility: public SDK hook-registration API +- Ownership/lifetime role: stores caller-provided I2C mutex hook function pointers in globals + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: writes `hookLockI2C` and `hookUnlockI2C` +- Artifact coverage: generated artifact exists + +## Behavior + +Installs or clears the I2C bus lock/unlock hooks by assigning `hookLockI2C = lockI2Cfn` and `hookUnlockI2C = unlockI2Cfn`. + +## Important Boundaries + +- Preconditions and assumptions: platform functions must remain valid while registered +- Error/null/empty behavior: `NULL` arguments are accepted and clear the corresponding hook +- Ownership and lifetime: stores function pointers only +- Concurrency/global state: mutates global hook pointers without locking +- Portability/platform constraints: keeps platform mutex behavior behind hooks +- Performance shape: constant-time pointer assignment +- Security or parsing constraints: no parsing; trusts hook implementations + +## Direct Call Sites + +No production library callers found outside definition/declaration. Focused tests call it in `test/src/NoteSetFnI2CMutex_test.cpp`; `NoteGetFnI2CMutex_test.cpp` also uses it to configure/get hooks. + +## Role In Callers + +Application/adapter registration API for I2C bus locking hooks consumed by `NoteLockI2C` and `NoteUnlockI2C`. + +## Tests Observed + +`test/src/NoteSetFnI2CMutex_test.cpp` verifies installed hooks are called once by `NoteLockI2C`/`NoteUnlockI2C`, and setting both hooks to `NULL` makes subsequent lock/unlock calls no-ops. + +## Graph Links + +- Graph node id: `function:n_hooks.c:329:NoteSetFnI2CMutex` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md b/source-research/artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md new file mode 100644 index 00000000..4244456f --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md @@ -0,0 +1,59 @@ +# `NoteSetFnNoteMutex` + +## Status + +Finalized. Source-inspected public Notecard mutex hook setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:335` +- Declaration/interface: `note.h:622` +- Public/exported names: `NoteSetFnNoteMutex` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnNoteMutex(mutexFn lockFn, mutexFn unlockFn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: stores caller-provided Notecard lock/unlock callback pointers + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes `hookLockNote` and `hookUnlockNote` +- Artifact coverage: source-inspected artifact + +## Behavior + +Directly assigns the Notecard mutex lock and unlock hook globals from the supplied arguments. This function does not call `_LockNote` or `_UnlockNote`. + +## Important Boundaries + +- Preconditions and assumptions: callback pointers are accepted as opaque values. +- Error/null/empty behavior: no return value or error path; null clears the corresponding hook. Runtime Notecard lock/unlock wrappers no-op when hooks are null. +- Ownership and lifetime: callback ownership stays with the caller/platform; note-c stores raw function pointers. +- Concurrency/global state: unsynchronized writes to global Notecard mutex hook pointers. +- Portability/platform constraints: this is the platform boundary for Notecard mutex callbacks. +- Performance shape: two pointer assignments. +- Security or parsing constraints: no validation that callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:622`, the definition in `n_hooks.c:335`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream adapter code that wants to install or clear the Notecard mutex hooks. + +## Tests Observed + +Focused tests in `test/src/NoteSetFnNoteMutex_test.cpp` and `test/src/NoteGetFnNoteMutex_test.cpp` cover setting/getting and clearing behavior. Gaps include one-sided null permutations and concurrency. + +## Graph Links + +- Graph node id: `function:n_hooks.c:335:NoteSetFnNoteMutex` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md b/source-research/artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md new file mode 100644 index 00000000..bc2da014 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md @@ -0,0 +1,68 @@ +# `NoteSetFnSerial` + +## Status + +Final. Behavior, public declaration, direct call sites, state mutation, locking, active-interface selection, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:341` +- Declaration/interface: `note.h:687` +- Public/exported names: `NoteSetFnSerial` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnSerial(serialResetFn resetFn, serialTransmitFn transmitFn, serialAvailableFn availFn, serialReceiveFn receiveFn)` +- Visibility: public SDK hook-registration API +- Ownership/lifetime role: stores caller-provided serial hook function pointers in process-global hook slots; caller-provided functions must remain valid for later serial transactions + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:226:_LockNote` (calls, verified; enters Notecard hook mutex if configured) +- `function:n_hooks.c:214:_noteSetActiveInterface` (calls, verified; selects serial dispatch table) +- `macro:n_lib.h:227:_UnlockNote` (calls, verified; leaves Notecard hook mutex if configured) +- External/system dependencies: none +- Data/type/global dependencies: writes `hookSerialReset`, `hookSerialTransmit`, `hookSerialAvailable`, and `hookSerialReceive` +- Artifact coverage: generated artifact exists + +## Behavior + +Registers an explicit serial transport implementation. The function locks Notecard access, overwrites all four serial hook globals with the caller-provided pointers, calls `_noteSetActiveInterface(NOTE_C_INTERFACE_SERIAL)`, and unlocks. + +This is an unconditional setter: passing `NULL` replaces any previously registered serial hook with `NULL`, and the active interface is still switched to serial. + +## Important Boundaries + +- Preconditions and assumptions: intended for platform/adapter initialization before serial transactions use the hooks +- Error/null/empty behavior: no return value and no validation; `NULL` arguments are stored as hook values +- Ownership and lifetime: stores function pointers only; it does not allocate, copy pointed-to code, or take ownership beyond retaining the pointer values +- Concurrency/global state: protected by `_LockNote()`/`_UnlockNote()` while mutating hook globals and active-interface dispatch +- Portability/platform constraints: keeps platform serial behavior behind caller-provided hooks +- Performance shape: constant-time pointer assignment and dispatch selection +- Security or parsing constraints: no parsing; correctness depends on trusted hook implementations + +## Direct Call Sites + +No production library callers found by `rg -n "\bNoteSetFnSerial\b" --glob '!source-research/**'`. References are the public declaration in `note.h:687`, the definition in `n_hooks.c:341`, and focused unit tests in `test/src/NoteSetFnSerial_test.cpp`. + +## Role In Callers + +Adapter/application-facing registration API. It moves future Notecard transactions onto the serial dispatch path by delegating to `_noteSetActiveInterface(NOTE_C_INTERFACE_SERIAL)`. + +## Tests Observed + +`test/src/NoteSetFnSerial_test.cpp` verifies that: + +- unset hook globals are set to the provided functions +- previously set hook globals are overwritten, including by `NULL` +- `_noteSetActiveInterface` receives `NOTE_C_INTERFACE_SERIAL` +- the Notecard lock/unlock functions are called once and balanced + +## Graph Links + +- Graph node id: `function:n_hooks.c:341:NoteSetFnSerial` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +None for this node. Downstream serial transaction/reset/chunk behavior is covered by the active-interface dispatch targets and serial transport helper artifacts. diff --git a/source-research/artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md b/source-research/artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md new file mode 100644 index 00000000..343a3776 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md @@ -0,0 +1,68 @@ +# `NoteSetFnSerialDefault` + +## Status + +Final. Behavior, public declaration, direct call sites, state mutation, locking, active-interface selection, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:356` +- Declaration/interface: `note.h:702` +- Public/exported names: `NoteSetFnSerialDefault` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnSerialDefault(serialResetFn resetFn, serialTransmitFn transmitFn, serialAvailableFn availFn, serialReceiveFn receiveFn)` +- Visibility: public SDK hook-registration API +- Ownership/lifetime role: fills empty serial hook slots with caller-provided defaults; caller-provided functions must remain valid for later serial transactions + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:226:_LockNote` (calls, verified; enters Notecard hook mutex if configured) +- `function:n_hooks.c:214:_noteSetActiveInterface` (conditionally calls, verified; selects serial dispatch table when no interface is active) +- `macro:n_lib.h:227:_UnlockNote` (calls, verified; leaves Notecard hook mutex if configured) +- External/system dependencies: none +- Data/type/global dependencies: reads/writes `hookSerialReset`, `hookSerialTransmit`, `hookSerialAvailable`, `hookSerialReceive`, and reads `hookActiveInterface` +- Artifact coverage: generated artifact exists + +## Behavior + +Registers default serial transport hooks without overwriting existing serial hook slots. The function locks Notecard access, assigns each serial hook only if its current global slot is `NULL`, and calls `_noteSetActiveInterface(NOTE_C_INTERFACE_SERIAL)` only when `hookActiveInterface == NOTE_C_INTERFACE_NONE`. + +This differs from `NoteSetFnSerial`: it is a fill-if-empty helper and preserves both existing hook pointers and an already-selected active interface. + +## Important Boundaries + +- Preconditions and assumptions: intended for adapter/platform defaults that should not override explicit application configuration +- Error/null/empty behavior: no return value and no validation; a `NULL` argument can be stored only when the corresponding hook slot is currently `NULL` +- Ownership and lifetime: stores function pointers only; it does not allocate or own hook implementations +- Concurrency/global state: protected by `_LockNote()`/`_UnlockNote()` while reading/writing hook globals and possibly changing active-interface dispatch +- Portability/platform constraints: keeps platform serial behavior behind caller-provided hooks +- Performance shape: constant-time conditional pointer assignment and optional dispatch selection +- Security or parsing constraints: no parsing; correctness depends on trusted hook implementations + +## Direct Call Sites + +No production library callers found by `rg -n "\bNoteSetFnSerialDefault\b" --glob '!source-research/**'`. References are the public declaration in `note.h:702`, the definition in `n_hooks.c:356`, and focused unit tests in `test/src/NoteSetFnSerialDefault_test.cpp`. + +## Role In Callers + +Adapter/application-facing default registration API. It installs serial defaults only where absent and activates serial dispatch only when no active interface has been selected. + +## Tests Observed + +`test/src/NoteSetFnSerialDefault_test.cpp` verifies that: + +- empty serial hook globals are filled with provided defaults +- previously set hook globals are not changed by different defaults +- `_noteSetActiveInterface(NOTE_C_INTERFACE_SERIAL)` is called only when `hookActiveInterface` is `NOTE_C_INTERFACE_NONE` +- the Notecard lock/unlock functions are called once and balanced + +## Graph Links + +- Graph node id: `function:n_hooks.c:356:NoteSetFnSerialDefault` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +None for this node. Downstream serial transaction/reset/chunk behavior is covered by the active-interface dispatch targets and serial transport helper artifacts. diff --git a/source-research/artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md b/source-research/artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md new file mode 100644 index 00000000..75febf60 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md @@ -0,0 +1,68 @@ +# `NoteSetFnI2C` + +## Status + +Final. Behavior, public declaration, direct call sites, state mutation, locking, active-interface selection, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:381` +- Declaration/interface: `note.h:731` +- Public/exported names: `NoteSetFnI2C` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnI2C(uint32_t notecardAddr, uint32_t maxTransmitSize, i2cResetFn resetFn, i2cTransmitFn transmitFn, i2cReceiveFn receiveFn)` +- Visibility: public SDK hook-registration API +- Ownership/lifetime role: stores caller-provided I2C address/MTU values and hook function pointers in process-global slots; caller-provided functions must remain valid for later I2C transactions + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:226:_LockNote` (calls, verified; enters Notecard hook mutex if configured) +- `function:n_hooks.c:214:_noteSetActiveInterface` (calls, verified; selects I2C dispatch table) +- `macro:n_lib.h:227:_UnlockNote` (calls, verified; leaves Notecard hook mutex if configured) +- External/system dependencies: none +- Data/type/global dependencies: writes `i2cAddress`, `i2cMax`, `hookI2CReset`, `hookI2CTransmit`, and `hookI2CReceive` +- Artifact coverage: generated artifact exists + +## Behavior + +Registers an explicit I2C transport implementation. The function locks Notecard access, overwrites `i2cAddress` and `i2cMax`, overwrites all three I2C hook globals with the caller-provided pointers, calls `_noteSetActiveInterface(NOTE_C_INTERFACE_I2C)`, and unlocks. + +This is an unconditional setter: passing zero address/MTU or `NULL` hooks replaces prior values, and the active interface is still switched to I2C. + +## Important Boundaries + +- Preconditions and assumptions: intended for platform/adapter initialization before I2C transactions use the hooks +- Error/null/empty behavior: no return value and no validation; zero address/MTU and `NULL` hook arguments are stored as current values +- Ownership and lifetime: stores function pointers only; it does not allocate, copy pointed-to code, or take ownership beyond retaining pointer values +- Concurrency/global state: protected by `_LockNote()`/`_UnlockNote()` while mutating I2C globals and active-interface dispatch +- Portability/platform constraints: keeps platform I2C behavior behind caller-provided hooks +- Performance shape: constant-time scalar/pointer assignment and dispatch selection +- Security or parsing constraints: no parsing; correctness depends on trusted hook implementations + +## Direct Call Sites + +No production library callers found by `rg -n "\bNoteSetFnI2C\b" --glob '!source-research/**'`. References are the public declaration in `note.h:731`, the definition in `n_hooks.c:381`, and focused unit tests in `test/src/NoteSetFnI2C_test.cpp`. + +## Role In Callers + +Adapter/application-facing registration API. It moves future Notecard transactions onto the I2C dispatch path by delegating to `_noteSetActiveInterface(NOTE_C_INTERFACE_I2C)`. + +## Tests Observed + +`test/src/NoteSetFnI2C_test.cpp` verifies that: + +- unset I2C state and hook globals are set to the provided values/functions +- previously set address, MTU, and hook globals are overwritten, including by zero/`NULL` +- `_noteSetActiveInterface` receives `NOTE_C_INTERFACE_I2C` +- the Notecard lock/unlock functions are called once and balanced + +## Graph Links + +- Graph node id: `function:n_hooks.c:381:NoteSetFnI2C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +None for this node. Downstream I2C transaction/reset/chunk behavior is covered by the active-interface dispatch targets and I2C transport helper artifacts. diff --git a/source-research/artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md b/source-research/artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md new file mode 100644 index 00000000..edc4fc68 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md @@ -0,0 +1,68 @@ +# `NoteSetFnI2CDefault` + +## Status + +Final. Behavior, public declaration, direct call sites, state mutation, locking, active-interface selection, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:399` +- Declaration/interface: `note.h:748` +- Public/exported names: `NoteSetFnI2CDefault` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetFnI2CDefault(uint32_t notecardAddr, uint32_t maxTransmitSize, i2cResetFn resetFn, i2cTransmitFn transmitFn, i2cReceiveFn receiveFn)` +- Visibility: public SDK hook-registration API +- Ownership/lifetime role: fills empty I2C address/MTU/hook slots with caller-provided defaults; caller-provided functions must remain valid for later I2C transactions + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:226:_LockNote` (calls, verified; enters Notecard hook mutex if configured) +- `function:n_hooks.c:214:_noteSetActiveInterface` (conditionally calls, verified; selects I2C dispatch table when no interface is active) +- `macro:n_lib.h:227:_UnlockNote` (calls, verified; leaves Notecard hook mutex if configured) +- External/system dependencies: none +- Data/type/global dependencies: reads/writes `i2cAddress`, `i2cMax`, `hookI2CReset`, `hookI2CTransmit`, `hookI2CReceive`, and reads `hookActiveInterface` +- Artifact coverage: generated artifact exists + +## Behavior + +Registers default I2C transport configuration without overwriting existing I2C state. The function locks Notecard access, assigns `i2cAddress` only when it is `0`, assigns `i2cMax` only when it is `0`, assigns each I2C hook only if its current global slot is `NULL`, and calls `_noteSetActiveInterface(NOTE_C_INTERFACE_I2C)` only when `hookActiveInterface == NOTE_C_INTERFACE_NONE`. + +This differs from `NoteSetFnI2C`: it is a fill-if-empty helper and preserves both existing I2C values/hook pointers and an already-selected active interface. + +## Important Boundaries + +- Preconditions and assumptions: intended for adapter/platform defaults that should not override explicit application configuration +- Error/null/empty behavior: no return value and no validation; zero address/MTU or `NULL` hook arguments can be stored only when the corresponding current slot is empty +- Ownership and lifetime: stores function pointers only; it does not allocate or own hook implementations +- Concurrency/global state: protected by `_LockNote()`/`_UnlockNote()` while reading/writing I2C globals and possibly changing active-interface dispatch +- Portability/platform constraints: keeps platform I2C behavior behind caller-provided hooks +- Performance shape: constant-time conditional scalar/pointer assignment and optional dispatch selection +- Security or parsing constraints: no parsing; correctness depends on trusted hook implementations + +## Direct Call Sites + +No production library callers found by `rg -n "\bNoteSetFnI2CDefault\b" --glob '!source-research/**'`. References are the public declaration in `note.h:748`, the definition in `n_hooks.c:399`, and focused unit tests in `test/src/NoteSetFnI2CDefault_test.cpp`. + +## Role In Callers + +Adapter/application-facing default registration API. It installs I2C defaults only where absent and activates I2C dispatch only when no active interface has been selected. + +## Tests Observed + +`test/src/NoteSetFnI2CDefault_test.cpp` verifies that: + +- empty I2C address/MTU/hook globals are filled with provided defaults +- previously set address, MTU, and hook globals are not changed by different defaults +- `_noteSetActiveInterface(NOTE_C_INTERFACE_I2C)` is called only when `hookActiveInterface` is `NOTE_C_INTERFACE_NONE` +- the Notecard lock/unlock functions are called once and balanced + +## Graph Links + +- Graph node id: `function:n_hooks.c:399:NoteSetFnI2CDefault` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +None for this node. Downstream I2C transaction/reset/chunk behavior is covered by the active-interface dispatch targets and I2C transport helper artifacts. diff --git a/source-research/artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md b/source-research/artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md new file mode 100644 index 00000000..a66ceb62 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md @@ -0,0 +1,59 @@ +# `NoteSetFnDisabled` + +## Status + +Finalized. Source-inspected public communication-disable setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:433` +- Declaration/interface: `note.h:789` +- Signature/API shape: `void NoteSetFnDisabled(void)` +- Visibility: public SDK hook API +- Public/exported names: `NoteSetFnDisabled` +- Macro aliases/wrappers: none +- Ownership/lifetime role: no ownership; lock-protected active-interface disable operation + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `function:n_hooks.c:214:_noteSetActiveInterface` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: Notecard lock hook state and active-interface dispatch globals through callees + +## Behavior + +Takes the Notecard lock, calls `_noteSetActiveInterface(NOTE_C_INTERFACE_NONE)`, and releases the lock. The dispatch selector clears active transport function pointers and records the active interface as none. + +## Important Boundaries + +- Preconditions and assumptions: none. +- Error/null/empty behavior: no return value and no error signal. +- Ownership and lifetime: no allocation. +- Concurrency/global state: lock-protects transition to disabled interface state. +- Performance shape: O(1) plus lock hook cost. +- Portability/platform constraints: disables communication without changing platform hook storage directly. + +## Direct Call Sites + +Exact source search found public declaration, implementation, and focused tests. No production library caller was found; this is a public API entry point. + +## Role In Callers + +Allows applications/adapters to disable the active communication interface so later dynamic-dispatch transactions/chunk operations see no selected interface. + +## Tests Observed + +`test/src/NoteSetFnDisabled_test.cpp` verifies `_noteSetActiveInterface(NOTE_C_INTERFACE_NONE)` and balanced lock/unlock calls. + +## Graph Links + +- Graph node id: `function:n_hooks.c:433:NoteSetFnDisabled` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L444__NoteSetLogLevel.md b/source-research/artifacts/functions/n_hooks_c__L444__NoteSetLogLevel.md new file mode 100644 index 00000000..03bc9d66 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L444__NoteSetLogLevel.md @@ -0,0 +1,59 @@ +# `NoteSetLogLevel` + +## Status + +Finalized. Source-inspected public runtime log-level setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:444` +- Declaration/interface: `note.h:1042` +- Public/exported names: `NoteSetLogLevel` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetLogLevel(int level)` +- Visibility: public note-c hook/logging API implemented in `n_hooks.c` +- Ownership/lifetime role: updates module-local runtime log-level state in debug-enabled builds + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes `noteLogLevel` unless `NOTE_NODEBUG` is defined +- Artifact coverage: source-inspected artifact + +## Behavior + +When `NOTE_NODEBUG` is not defined, assigns `noteLogLevel = level`. In `NOTE_NODEBUG` builds, the function casts `level` to void and otherwise does nothing. + +## Important Boundaries + +- Preconditions and assumptions: accepts an integer level and does not validate it against known `NOTE_C_LOG_LEVEL_*` constants. +- Error/null/empty behavior: no return value or error path. +- Ownership and lifetime: writes only module-local logging state. +- Concurrency/global state: no locking around `noteLogLevel`. +- Portability/platform constraints: behavior is compile-time dependent; `NOTE_NODEBUG` makes the setter a no-op. +- Performance shape: one scalar assignment in debug-enabled builds. +- Security or parsing constraints: no range validation. + +## Direct Call Sites + +Source/header exact search found the public declaration in `note.h:1042`, source comments in headers, the definition in `n_hooks.c:444`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream callers that want to adjust runtime filtering for SDK debug/log output in debug-enabled builds. + +## Tests Observed + +Focused tests in `test/src/NoteSetLogLevel_test.cpp` cover runtime setter behavior, and debug tests provide filtering evidence. Gaps include direct end-to-end assertions that `NoteSetLogLevel` changes `NoteDebugWithLevel` filtering behavior and invalid/range values. + +## Graph Links + +- Graph node id: `function:n_hooks.c:444:NoteSetLogLevel` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md b/source-research/artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md new file mode 100644 index 00000000..8f8d5319 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md @@ -0,0 +1,60 @@ +# `NoteDebugIntln` + +## Status + +Finalized. Source-inspected public debug integer line emitter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:453` +- Declaration/interface: `note.h:944` +- Public/exported names: `NoteDebugIntln`; internal macro alias `_DebugIntln(x, y)` expands to this function when `NOTE_NODEBUG` is not defined and to a no-op when it is defined +- Signature/API shape: `void NoteDebugIntln(const char *msg, int n)` +- Visibility: public note-c debug API implemented in `n_hooks.c` +- Ownership/lifetime role: emits caller-provided message text, formatted integer text, and newline through the configured debug output path + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:256:_Debug` finalized + - `function:n_cjson_helpers.c:284:JItoA` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `c_newline`; transitive debug hook and log-level state through `_Debug`/`NoteDebug` +- Artifact coverage: source-inspected artifact + +## Behavior + +If `msg` is non-null, emits it through `_Debug`. It then converts `n` into a local `char str[16]` buffer with `JItoA`, emits the converted number through `_Debug`, and emits `c_newline` through `_Debug`. In `NOTE_NODEBUG` builds the `_Debug` macro is a no-op, but the function body still performs the integer conversion when called directly. + +## Important Boundaries + +- Preconditions and assumptions: non-null `msg` must point to a valid C string for the debug hook path. +- Error/null/empty behavior: null `msg` skips only the message prefix; the integer and newline are still processed. There is no return value or error path. +- Ownership and lifetime: no ownership transfer; text pointers are consumed synchronously by debug output. +- Concurrency/global state: output depends on global `hookDebugOutput` and debug/log configuration reached through `_Debug`. +- Portability/platform constraints: `_DebugIntln` macro calls are compiled out under `NOTE_NODEBUG`; direct calls to `NoteDebugIntln` still compile. +- Performance shape: optional debug emit, integer-to-string conversion, two further debug emits. +- Security or parsing constraints: integer formatting uses a fixed 16-byte local buffer through finalized `JItoA`. + +## Direct Call Sites + +Source/header exact search found the public declaration in `note.h:944`, macro alias definition in `n_lib.h`, the definition in `n_hooks.c:453`, and focused tests. No production repository caller of `NoteDebugIntln` or `_DebugIntln` was found. + +## Role In Callers + +No production repository caller role. Public and macro-backed helper for downstream/debug code that wants to print a message, integer, and newline. + +## Tests Observed + +Focused assertions in `test/src/NoteDebug_test.cpp` cover null message, non-null message, and `NOTE_NODEBUG` behavior. Gaps include negative integers, multi-digit edge cases, minimum integer formatting, and direct no-hook behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:453:NoteDebugIntln` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_Debug` and `JItoA`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L464__NoteDebugln.md b/source-research/artifacts/functions/n_hooks_c__L464__NoteDebugln.md new file mode 100644 index 00000000..66d2328b --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L464__NoteDebugln.md @@ -0,0 +1,59 @@ +# `NoteDebugln` + +## Status + +Final. Behavior, public declaration, macro dependency, direct call sites, compile-time behavior, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:464` +- Declaration/interface: `note.h:936` +- Public/exported names: `NoteDebugln` +- Macro aliases/wrappers: internal `_Debugln(x)` macro expands to this function when `NOTE_NODEBUG` is not defined +- Signature/API shape: `void NoteDebugln(const char *msg)` +- Visibility: public SDK debug API +- Ownership/lifetime role: emits caller-provided string and newline through debug output hook; does not retain data + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:256:_Debug` (calls twice when debug is enabled, verified) +- External/system dependencies: configured debug output hook behind `_Debug`/`NoteDebug` +- Data/type/global dependencies: compile-time `NOTE_NODEBUG` +- Artifact coverage: generated artifact exists + +## Behavior + +When `NOTE_NODEBUG` is not defined, calls `_Debug(msg)` and then `_Debug(c_newline)`, producing the message followed by CRLF through the configured debug output hook. When `NOTE_NODEBUG` is defined, casts `msg` to void and emits nothing. + +## Important Boundaries + +- Preconditions and assumptions: output requires a configured debug hook and a non-`NOTE_NODEBUG` build +- Error/null/empty behavior: no explicit null guard; `NULL` handling is delegated to `_Debug`/`NoteDebug` +- Ownership and lifetime: does not allocate or retain `msg` +- Concurrency/global state: depends on global debug hook state used by `NoteDebug` +- Portability/platform constraints: no-op in `NOTE_NODEBUG` builds +- Performance shape: two debug calls when enabled; zero output in no-debug builds +- Security or parsing constraints: no parsing; may emit caller-provided text + +## Direct Call Sites + +Verified direct production references: public declaration in `note.h:936`, definition in `n_hooks.c:464`, and `_Debugln` macro expansion in `n_lib.h:257`. Focused direct test caller is `test/src/NoteDebug_test.cpp:72`. + +## Role In Callers + +Public debug-line helper and target of the internal `_Debugln` macro. + +## Tests Observed + +`test/src/NoteDebug_test.cpp` verifies `NoteDebugln("test")` appends `\r\n` when debug is enabled and emits nothing under `NOTE_NODEBUG`. + +## Graph Links + +- Graph node id: `function:n_hooks.c:464:NoteDebugln` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers `NoteDebugln(NULL)`; source delegates that behavior to `_Debug`/`NoteDebug`. diff --git a/source-research/artifacts/functions/n_hooks_c__L474__NoteDebug.md b/source-research/artifacts/functions/n_hooks_c__L474__NoteDebug.md new file mode 100644 index 00000000..23cde9c7 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L474__NoteDebug.md @@ -0,0 +1,55 @@ +# `NoteDebug` + +## Status + +Finalized. Source-inspected debug-output hook dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:474` +- Declaration/interface: public note-c debug API declaration +- Signature/API shape: `void NoteDebug(const char *msg)` +- Visibility: public note-c debug API +- Public/exported names: `NoteDebug` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:308:_noteIsDebugOutputActive` finalized +- External/system dependencies: none +- Data/type/global dependencies: `hookDebugOutput` + +## Behavior + +When `NOTE_NODEBUG` is not defined, calls `hookDebugOutput(msg)` only if debug output is active. Under `NOTE_NODEBUG`, suppresses output and marks the argument unused. + +## Important Boundaries + +- Preconditions and assumptions: active debug output implies a non-null hook via `_noteIsDebugOutputActive`. +- Error/null/empty behavior: inactive debug output is a no-op. +- Ownership and lifetime: no allocation; passes borrowed message pointer. +- Concurrency/global state: reads debug hook state. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: compiled out under `NOTE_NODEBUG`. + +## Direct Call Sites + +Exact source search found macro alias `_Debug`, debug helper wrappers, and logging paths as callers. + +## Role In Callers + +`NoteDebugWithLevel` reaches this function through `_Debug` after log-level filtering. + +## Tests Observed + +`NoteDebug_test.cpp` covers debug output behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:474:NoteDebug` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md b/source-research/artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md new file mode 100644 index 00000000..ac24d833 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md @@ -0,0 +1,55 @@ +# `NoteDebugWithLevel` + +## Status + +Finalized. Source-inspected log-level filtered debug output helper. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:485` +- Declaration/interface: `note.h:964` +- Signature/API shape: `void NoteDebugWithLevel(uint8_t level, const char *msg)` +- Visibility: public note-c debug API +- Public/exported names: `NoteDebugWithLevel` + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:256:_Debug` finalized +- External/system dependencies: none +- Data/type/global dependencies: `noteLogLevel` + +## Behavior + +When debugging is enabled, returns without output if `level > noteLogLevel`; otherwise emits `msg` through `_Debug`. Under `NOTE_NODEBUG`, suppresses output and marks arguments unused. + +## Important Boundaries + +- Preconditions and assumptions: message pointer is passed through to debug output when level permits. +- Error/null/empty behavior: levels above the runtime threshold are dropped. +- Ownership and lifetime: no allocation; passes borrowed message pointer. +- Concurrency/global state: reads global log level and debug hook state through `_Debug`. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: body is suppressed under `NOTE_NODEBUG`. + +## Direct Call Sites + +Exact source search found logging macros, `_errDoc`, and `NoteDebugWithLevelLn` as callers. + +## Role In Callers + +`NOTE_C_LOG_*` macros use this function to emit level prefixes and messages. + +## Tests Observed + +`NoteDebug_test.cpp` covers level filtering and output behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:485:NoteDebugWithLevel` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md b/source-research/artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md new file mode 100644 index 00000000..e4e422d2 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md @@ -0,0 +1,55 @@ +# `NoteDebugWithLevelLn` + +## Status + +Finalized. Source-inspected log-level filtered debug-line helper. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:499` +- Declaration/interface: `note.h:976` +- Signature/API shape: `void NoteDebugWithLevelLn(uint8_t level, const char *msg)` +- Visibility: public note-c debug API +- Public/exported names: `NoteDebugWithLevelLn` + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:259:_DebugWithLevel` finalized +- External/system dependencies: none +- Data/type/global dependencies: `noteLogLevel`, `c_newline` + +## Behavior + +When debugging is enabled, returns without output if `level > noteLogLevel`; otherwise emits `msg` and then `c_newline` through `_DebugWithLevel`. Under `NOTE_NODEBUG`, suppresses output and marks arguments unused. + +## Important Boundaries + +- Preconditions and assumptions: message pointer is passed through to debug output when level permits. +- Error/null/empty behavior: levels above threshold are dropped. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global log level and debug hook state through `_DebugWithLevel`. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: body is suppressed under `NOTE_NODEBUG`. + +## Direct Call Sites + +Exact source search found `NOTE_C_LOG_*` macros and `_errDoc` debug output as callers. + +## Role In Callers + +Logging macros use this function for line-terminated message output. + +## Tests Observed + +`NoteDebug_test.cpp` covers level filtering and line output behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:499:NoteDebugWithLevelLn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L520__NoteGetMs.md b/source-research/artifacts/functions/n_hooks_c__L520__NoteGetMs.md new file mode 100644 index 00000000..f3af2839 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L520__NoteGetMs.md @@ -0,0 +1,58 @@ +# `NoteGetMs` + +## Status + +Finalized. Source-inspected platform millisecond hook dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:520` +- Declaration/interface: `note.h:1063` +- Signature/API shape: `uint32_t NoteGetMs(void)` +- Visibility: public hook API +- Public/exported names: `NoteGetMs` +- Macro aliases/wrappers: `_GetMs` in `n_lib.h:243` +- Ownership/lifetime role: no ownership; returns a platform-provided counter value + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `hookGetMs` + +## Behavior + +Reads the global `hookGetMs` platform hook. If the hook is unset, returns `0`. If the hook is set, returns `hookGetMs()` unchanged. + +`hookGetMs` is installed through `NoteSetFnDefault` only when no hook is already present, or overwritten through `NoteSetFn`. + +## Important Boundaries + +- Preconditions and assumptions: the installed hook must provide a millisecond-scale `uint32_t` value with wraparound behavior acceptable to callers. +- Error/null/empty behavior: unset hook returns `0`; there is no error signal. +- Ownership and lifetime: no allocation or pointer ownership. +- Concurrency/global state: reads global hook pointer; setters update it under the Notecard lock. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: note-c does not provide a system clock fallback; platform timing remains behind the hook. + +## Direct Call Sites + +Exact source search found public declaration and many internal calls through the `_GetMs` macro alias. Direct textual `NoteGetMs` use appears in tests/fakes and in the `_GetMs` macro. Production timing consumers use `_GetMs` in request retry, ping input drain, serial/I2C transport loops, time helpers, `_timerExpiredSecs`, and debug-sync polling. + +## Role In Callers + +Provides the timing substrate for elapsed-time checks, retry deadlines, serial/I2C receive loops, reset drain loops, time-base maintenance, and suppression timers. Because unset hook returns zero, elapsed-time callers depend on platform initialization for meaningful timeout behavior. + +## Tests Observed + +`test/src/NoteGetMs_test.cpp` covers unset hook returning `0` and set hook returning the hook value. Transport, retry, time, and debug-sync tests fake `NoteGetMs` for elapsed-time behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:520:NoteGetMs` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L528__NoteDelayMs.md b/source-research/artifacts/functions/n_hooks_c__L528__NoteDelayMs.md new file mode 100644 index 00000000..ec29a5e6 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L528__NoteDelayMs.md @@ -0,0 +1,54 @@ +# `NoteDelayMs` + +## Status + +Finalized. Source-inspected delay hook dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:528` +- Declaration/interface: public note-c hook API declaration +- Signature/API shape: `void NoteDelayMs(uint32_t ms)` +- Visibility: public note-c hook API +- Public/exported names: `NoteDelayMs` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `hookDelayMs` + +## Behavior + +Calls `hookDelayMs(ms)` when a delay hook is registered; otherwise does nothing. + +## Important Boundaries + +- Preconditions and assumptions: delay value is forwarded unchanged. +- Error/null/empty behavior: null hook is a no-op. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global hook pointer. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: platform sleep/delay behavior remains behind hook. + +## Direct Call Sites + +Exact source search found macro alias `_DelayMs` and public helper callers. + +## Role In Callers + +`_noteTransactionShouldLock` uses this through `_DelayMs` between retry attempts. + +## Tests Observed + +`NoteDelayMs_test.cpp` covers set/unset hook behavior; transaction tests cover retry delay calls. + +## Graph Links + +- Graph node id: `function:n_hooks.c:528:NoteDelayMs` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L544__n_htoa32.md b/source-research/artifacts/functions/n_hooks_c__L544__n_htoa32.md new file mode 100644 index 00000000..6ad3a632 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L544__n_htoa32.md @@ -0,0 +1,58 @@ +# `_n_htoa32` + +## Status + +Finalized. Source-inspected 32-bit uppercase hex helper. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:544` +- Declaration/interface: `n_lib.h:158` +- Signature/API shape: `void _n_htoa32(uint32_t n, char *p)` +- Visibility: internal/private helper declared in `n_lib.h`; compiled only when `NOTE_C_LOW_MEM` is not defined +- Public/exported names: none in `note.h` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive shifts, masks, comparisons, and byte stores +- Data/type/global dependencies: writes caller-provided output buffer + +## Behavior + +Converts a 32-bit value to eight uppercase hexadecimal characters by repeatedly taking the high nibble, shifting left four bits, writing `'A'`-based or `'0'`-based characters, and appending a NUL terminator. + +## Important Boundaries + +- Preconditions and assumptions: caller must provide at least nine writable bytes. +- Error/null/empty behavior: no null or bounds checks. +- Ownership and lifetime: writes caller memory and allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: excluded in `NOTE_C_LOW_MEM` builds. +- Performance shape: fixed O(1). + +## Direct Call Sites + +Exact source search found: + +- `n_hooks.c:563` called by `_n_ptoa32`. +- `n_request.c:1046` called by `_crcAdd`. + +## Role In Callers + +In the active allocator slice, `_n_ptoa32` uses `_n_htoa32` to print pointer values when allocation debug logging is compiled. + +## Tests Observed + +None. No focused direct test was inspected for this helper. + +## Graph Links + +- Graph node id: `function:n_hooks.c:544:_n_htoa32` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L561__n_ptoa32.md b/source-research/artifacts/functions/n_hooks_c__L561__n_ptoa32.md new file mode 100644 index 00000000..0e780545 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L561__n_ptoa32.md @@ -0,0 +1,60 @@ +# `_n_ptoa32` + +## Status + +Finalized. Source-inspected pointer-to-hex debug helper. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:561` +- Declaration/interface: local static-equivalent `NOTE_C_STATIC` inside `#if NOTE_C_SHOW_MALLOC` +- Signature/API shape: `void _n_ptoa32(void *ptr, char *str)` +- Visibility: compiled only when `NOTE_C_SHOW_MALLOC` and not `NOTE_C_LOW_MEM` +- Public/exported names: none +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:544:_n_htoa32` finalized +- External/system dependencies: pointer cast to `uint32_t` +- Data/type/global dependencies: writes caller-provided output buffer + +## Behavior + +Casts a pointer to `uint32_t` and formats it as eight uppercase hexadecimal characters through `_n_htoa32`. + +## Important Boundaries + +- Preconditions and assumptions: compiled behind `NOTE_C_SHOW_MALLOC`; a `static_assert` immediately above requires `sizeof(void *) == sizeof(uint32_t)`. +- Error/null/empty behavior: no null or bounds checks; a null pointer formats as zero. +- Ownership and lifetime: writes caller memory and allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: debug-only and pointer-width constrained by compile-time assertion. +- Performance shape: fixed O(1). + +## Direct Call Sites + +Exact source search found: + +- `n_hooks.c:587` in `NoteMalloc` debug logging. +- `n_hooks.c:603` in `NoteFree` debug logging. + +## Role In Callers + +Allocator debug logging uses `_n_ptoa32` to display allocated/freed pointer values when `NOTE_C_SHOW_MALLOC && !NOTE_C_LOW_MEM`. + +## Tests Observed + +None. No focused direct test was inspected for this helper. + +## Graph Links + +- Graph node id: `function:n_hooks.c:561:_n_ptoa32` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_n_htoa32`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L569__NoteMalloc.md b/source-research/artifacts/functions/n_hooks_c__L569__NoteMalloc.md new file mode 100644 index 00000000..8f30795a --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L569__NoteMalloc.md @@ -0,0 +1,59 @@ +# `NoteMalloc` + +## Status + +Finalized. Source-inspected platform-hook allocation wrapper. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:569` +- Declaration/interface: `note.h:1051` +- Signature/API shape: `void *NoteMalloc(size_t size)` +- Visibility: public API declaration, implemented in `n_hooks.c` +- Public/exported names: `NoteMalloc` +- Macro aliases/wrappers: `_Malloc` in `n_lib.h:241` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:308:_noteIsDebugOutputActive` finalized + - `function:n_cjson_helpers.c:284:JItoA` finalized + - `function:n_hooks.c:561:_n_ptoa32` finalized +- External/system dependencies: platform hook `hookMalloc` +- Data/type/global dependencies: reads static `hookMalloc`; optionally reads `hookDebugOutput` through debug predicate + +## Behavior + +Returns `NULL` immediately if no allocation hook has been registered in `hookMalloc`. Otherwise calls `hookMalloc(size)` and returns that pointer. When `NOTE_C_SHOW_MALLOC && !NOTE_C_LOW_MEM`, and debug output is active, it writes a `"malloc "` debug line containing the requested size, either `" FAIL"` for a null allocation result, or the allocated pointer rendered through `_n_ptoa32`. + +## Important Boundaries + +- Preconditions and assumptions: allocation behavior is entirely supplied by the platform hook installed via hook setup APIs. +- Error/null/empty behavior: no hook or hook allocation failure returns `NULL`; no error string is produced. +- Ownership and lifetime: transfers allocated memory ownership to the caller according to the registered hook's contract. +- Concurrency/global state: reads hook globals without taking the Notecard lock. +- Portability/platform constraints: allocation hook keeps memory policy outside the portable SDK core; debug pointer printing is excluded in low-memory builds and constrained to 32-bit pointers by `_n_ptoa32`. +- Performance shape: one hook call plus optional debug formatting. + +## Direct Call Sites + +Exact source search found no production direct calls to `NoteMalloc` except the `_Malloc` alias and the implementation/declaration. `_Malloc` call-site fanout includes JSON allocation, request serialization buffers, serial/I2C transaction buffers, and payload helpers. + +## Role In Callers + +`_Malloc` aliases to `NoteMalloc` so internal source can allocate through the SDK's registered allocator hook without depending on libc allocation directly. + +## Tests Observed + +None. No focused direct `NoteMalloc` test was inspected. + +## Graph Links + +- Graph node id: `function:n_hooks.c:569:NoteMalloc` +- Structured graph: `inventory/dependency-graph.json` +- Verified alias edge from `macro:n_lib.h:241:_Malloc`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L595__NoteFree.md b/source-research/artifacts/functions/n_hooks_c__L595__NoteFree.md new file mode 100644 index 00000000..da5d1718 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L595__NoteFree.md @@ -0,0 +1,58 @@ +# `NoteFree` + +## Status + +Finalized. Source-inspected platform-hook free wrapper. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:595` +- Declaration/interface: `note.h:1057` +- Signature/API shape: `void NoteFree(void *ptr)` +- Visibility: public API declaration, implemented in `n_hooks.c` +- Public/exported names: `NoteFree` +- Macro aliases/wrappers: `_Free` in `n_lib.h:242` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:308:_noteIsDebugOutputActive` finalized + - `function:n_hooks.c:561:_n_ptoa32` finalized +- External/system dependencies: platform hook `hookFree` +- Data/type/global dependencies: reads static `hookFree`; optionally reads `hookDebugOutput` through debug predicate + +## Behavior + +If `hookFree` is non-NULL, optionally writes a `"free "` debug line with the pointer value when `NOTE_C_SHOW_MALLOC && !NOTE_C_LOW_MEM` and debug output is active, then calls `hookFree(ptr)`. If `hookFree` is NULL, returns without doing anything. + +## Important Boundaries + +- Preconditions and assumptions: free behavior is supplied by the registered platform hook. +- Error/null/empty behavior: missing free hook is a silent no-op. A null `ptr` is passed to `hookFree` if a hook exists. +- Ownership and lifetime: releases caller-provided allocation according to the registered hook's contract. +- Concurrency/global state: reads hook globals without locking. +- Portability/platform constraints: deallocation stays behind the SDK hook API; debug pointer printing is low-memory excluded and pointer-width constrained. +- Performance shape: one hook call plus optional debug formatting. + +## Direct Call Sites + +Exact source search found no production direct calls to `NoteFree` except the `_Free` alias and implementation/declaration. `_Free` fanout covers JSON cleanup, request buffers, transport buffers, payload buffers, and memory helpers. + +## Role In Callers + +`_Free` aliases to `NoteFree` so internal modules can deallocate through the registered platform hook. + +## Tests Observed + +None. No focused direct `NoteFree` test was inspected. + +## Graph Links + +- Graph node id: `function:n_hooks.c:595:NoteFree` +- Structured graph: `inventory/dependency-graph.json` +- Verified alias edge from `macro:n_lib.h:242:_Free`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L616__NoteLockI2C.md b/source-research/artifacts/functions/n_hooks_c__L616__NoteLockI2C.md new file mode 100644 index 00000000..473a256b --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L616__NoteLockI2C.md @@ -0,0 +1,59 @@ +# `NoteLockI2C` + +## Status + +Final. Behavior, public declaration, macro alias, hook dependency, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:616` +- Declaration/interface: `note.h:1073` +- Public/exported names: `NoteLockI2C` +- Macro aliases/wrappers: `_LockI2C` expands to `NoteLockI2C` at `n_lib.h:245` +- Signature/API shape: `void NoteLockI2C(void)` +- Visibility: public SDK function and internal macro target +- Ownership/lifetime role: invokes registered lock hook; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: platform lock hook supplied by application/adapter +- Data/type/global dependencies: reads `hookLockI2C` +- Artifact coverage: generated artifact exists + +## Behavior + +Calls `hookLockI2C()` when that global hook is non-`NULL`; otherwise it returns without action. + +## Important Boundaries + +- Preconditions and assumptions: registered hook should implement any required platform locking +- Error/null/empty behavior: unset hook is a no-op; no error channel +- Ownership and lifetime: no allocation or ownership transfer +- Concurrency/global state: reads a global function pointer without synchronization +- Portability/platform constraints: platform-specific behavior stays behind the hook +- Performance shape: constant-time null check plus hook call when set +- Security or parsing constraints: no parsing; trusts hook implementation + +## Direct Call Sites + +Direct internal macro callers use `_LockI2C` in `n_i2c.c` and `n_request.c`. Direct test/fake references include `NoteSetFnI2CMutex_test.cpp`, `NoteSetFnMutex_test.cpp`, `NotePing_test.cpp`, `_i2cNoteTransaction_test.cpp`, `_i2cNoteReset_test.cpp`, `_i2cNoteChunkedReceive_test.cpp`, and `_i2cNoteChunkedTransmit_test.cpp`. + +## Role In Callers + +I2C bus lock primitive for transaction/reset/chunk wrappers. + +## Tests Observed + +`test/src/NoteSetFnI2CMutex_test.cpp` verifies call-through when the hook is set and no-op behavior after clearing hooks. I2C transport wrapper tests verify lock/unlock balance through faked `NoteLockI2C`. + +## Graph Links + +- Graph node id: `function:n_hooks.c:616:NoteLockI2C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md b/source-research/artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md new file mode 100644 index 00000000..8c0b74cd --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md @@ -0,0 +1,59 @@ +# `NoteUnlockI2C` + +## Status + +Final. Behavior, public declaration, macro alias, hook dependency, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:628` +- Declaration/interface: `note.h:1077` +- Public/exported names: `NoteUnlockI2C` +- Macro aliases/wrappers: `_UnlockI2C` expands to `NoteUnlockI2C` at `n_lib.h:246` +- Signature/API shape: `void NoteUnlockI2C(void)` +- Visibility: public SDK function and internal macro target +- Ownership/lifetime role: invokes registered unlock hook; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: platform unlock hook supplied by application/adapter +- Data/type/global dependencies: reads `hookUnlockI2C` +- Artifact coverage: generated artifact exists + +## Behavior + +Calls `hookUnlockI2C()` when that global hook is non-`NULL`; otherwise it returns without action. + +## Important Boundaries + +- Preconditions and assumptions: registered hook should release any platform lock acquired by `NoteLockI2C` +- Error/null/empty behavior: unset hook is a no-op; no error channel +- Ownership and lifetime: no allocation or ownership transfer +- Concurrency/global state: reads a global function pointer without synchronization +- Portability/platform constraints: platform-specific behavior stays behind the hook +- Performance shape: constant-time null check plus hook call when set +- Security or parsing constraints: no parsing; trusts hook implementation + +## Direct Call Sites + +Direct internal macro callers use `_UnlockI2C` in `n_i2c.c` and `n_request.c`. Direct test/fake references include `NoteSetFnI2CMutex_test.cpp`, `NoteSetFnMutex_test.cpp`, `NotePing_test.cpp`, `_i2cNoteTransaction_test.cpp`, `_i2cNoteReset_test.cpp`, `_i2cNoteChunkedReceive_test.cpp`, and `_i2cNoteChunkedTransmit_test.cpp`. + +## Role In Callers + +I2C bus unlock primitive for transaction/reset/chunk wrappers. + +## Tests Observed + +`test/src/NoteSetFnI2CMutex_test.cpp` verifies call-through when the hook is set and no-op behavior after clearing hooks. I2C transport wrapper tests verify lock/unlock balance through faked `NoteUnlockI2C`. + +## Graph Links + +- Graph node id: `function:n_hooks.c:628:NoteUnlockI2C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L643__noteHeartbeat.md b/source-research/artifacts/functions/n_hooks_c__L643__noteHeartbeat.md new file mode 100644 index 00000000..5d0a9e3f --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L643__noteHeartbeat.md @@ -0,0 +1,54 @@ +# `_noteHeartbeat` + +## Status + +Finalized. Source-inspected optional heartbeat callback dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:643` +- Declaration/interface: compiled only under `NOTE_C_HEARTBEAT_CALLBACK` +- Signature/API shape: `bool _noteHeartbeat(const char *heartbeatJson)` +- Visibility: internal hook helper when heartbeat callback support is enabled +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `hookHeartbeat`, `hookHeartbeatContext` + +## Behavior + +If a heartbeat callback is registered, calls `hookHeartbeat(heartbeatJson, hookHeartbeatContext)` and returns that result. If no callback is registered, returns false. + +## Important Boundaries + +- Preconditions and assumptions: only compiled when `NOTE_C_HEARTBEAT_CALLBACK` is defined. +- Error/null/empty behavior: no callback means heartbeat is not abandoned. +- Ownership and lifetime: no allocation; passes borrowed heartbeat status/string. +- Concurrency/global state: reads global callback pointer and context. +- Performance shape: O(1) plus callback cost. +- Portability/platform constraints: excluded unless heartbeat callback feature is enabled. + +## Direct Call Sites + +Exact source search found `_noteTransactionShouldLock` as the transaction caller under `NOTE_C_HEARTBEAT_CALLBACK`. + +## Role In Callers + +The transaction retry loop uses a true return value to abandon the transaction, mark reset required, and return a heartbeat error. + +## Tests Observed + +`_noteHeartbeat_test.cpp` covers callback dispatch; `NoteTransaction_test.cpp` covers heartbeat integration. + +## Graph Links + +- Graph node id: `function:n_hooks.c:643:_noteHeartbeat` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L657__noteLockNote.md b/source-research/artifacts/functions/n_hooks_c__L657__noteLockNote.md new file mode 100644 index 00000000..07e4c10b --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L657__noteLockNote.md @@ -0,0 +1,75 @@ +# `_noteLockNote` + +## Status + +Finalized. Implementation, internal declaration, hook-pointer state, macro alias, production call sites, and focused negative direct-symbol search were inspected from source. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:657` +- Declaration/interface: `n_lib.h:136` +- Public/exported names: none; this is an internal hook-dispatch function. +- Macro aliases/wrappers: `_LockNote` expands to `_noteLockNote` at `n_lib.h:226`. +- Signature/API shape: `void _noteLockNote(void)` +- Visibility: project-internal through `n_lib.h`; used by production C files through `_LockNote`. +- Ownership/lifetime role: does not allocate, free, or transfer ownership; delegates synchronization to a registered platform mutex hook. + +## Dependency Status + +- Project-local dependencies: +- No project-local function callees. The function dispatches through the `hookLockNote` function pointer when it is non-NULL. +- External/system dependencies: none directly; runtime behavior depends on the platform-provided `mutexFn` registered through `NoteSetFnMutex` or `NoteSetFnNoteMutex`. +- Data/type/global dependencies: reads global `hookLockNote` declared at `n_hooks.c:63`; type is `mutexFn` from `note.h:230`. +- Artifact coverage: this artifact covers the dispatch function; `_LockNote` alias and setter/getter nodes remain separate graph nodes. + +## Behavior + +1. Reads the global `hookLockNote` pointer. +2. If `hookLockNote != NULL`, calls the registered platform mutex function with no arguments and no return value. +3. If no hook is registered, returns immediately with no locking and no error signal. + +## Important Boundaries + +- Preconditions and assumptions: callers assume any required Notecard-wide mutual exclusion has been registered by the embedding platform. +- Error/null/empty behavior: `NULL` hook means no-op; the function has no way to report lock failure. +- Ownership and lifetime: no ownership transfer; registered function pointer lifetime is owned by the embedding platform. +- Concurrency/global state: reads unsynchronized global `hookLockNote`; setter APIs write the same global. Locking is advisory and platform-provided. +- Portability/platform constraints: portable C function-pointer hook; behavior depends on platform adapter implementation. +- Performance shape: O(1), one branch and possible indirect function call. +- Security or parsing constraints: none directly. + +## Direct Call Sites + +Direct symbol search: + +- `rg -n "\b_noteLockNote\b" n_hooks.c n_lib.h note.h n_request.c n_helpers.c` found only the internal declaration (`n_lib.h:136`), macro alias (`n_lib.h:226`), and definition (`n_hooks.c:657`). + +Macro-alias production call sites through `_LockNote`: + +- Hook/global-state setters: `n_hooks.c:243`, `n_hooks.c:250`, `n_hooks.c:269`, `n_hooks.c:287`, `n_hooks.c:296`, `n_hooks.c:315`, `n_hooks.c:344`, `n_hooks.c:359`, `n_hooks.c:385`, `n_hooks.c:403`, `n_hooks.c:436`. +- Hook/global-state getters: `n_hooks.c:727`, `n_hooks.c:777`, `n_hooks.c:796`, `n_hooks.c:816`. +- Request/transaction paths: `n_request.c:295`, `n_request.c:527`, `n_request.c:767`, `n_request.c:892`. +- Binary helper paths: `n_helpers.c:380`, `n_helpers.c:639`. + +## Role In Callers + +- `_LockNote` exposes this dispatch function as the conventional internal spelling used by the rest of the SDK. +- Request paths use it to serialize Notecard access around JSON transactions, reset, ping, and binary transfer sequences. +- Hook setter/getter paths use it to protect mutation or reads of global hook state, except `NoteSetFnMutex`, `NoteSetFnI2CMutex`, `NoteSetFnNoteMutex`, and note-mutex getters, which directly write/read mutex hook pointers without taking the note lock they may be changing. + +## Tests Observed + +None. Tests were not needed to establish the source behavior of this hook dispatch node. + +## Graph Links + +- Graph node id: `function:n_hooks.c:657:_noteLockNote` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: none for direct project-local functions; indirect platform callback target is represented as hook-pointer behavior rather than a concrete repository callee. +- Caller artifact candidates: `artifacts/macros/n_lib_h__L226__LockNote.md`, request-path callers, hook setter/getter callers, and binary helper callers listed above. +- Upstream public behavior candidates: `function:n_request.c:220:NoteRequestResponse`, `function:n_request.c:766:NoteReset`, `function:n_hooks.c:241:NoteSetActiveInterface`, hook registration APIs in `n_hooks.c`, and binary helper APIs in `n_helpers.c`. + +## Evidence Gaps + +No focused tests were inspected. Source inspection found dynamic dispatch through `hookLockNote`; the exact runtime target is platform-provided and cannot be statically resolved inside this repository. diff --git a/source-research/artifacts/functions/n_hooks_c__L669__noteUnlockNote.md b/source-research/artifacts/functions/n_hooks_c__L669__noteUnlockNote.md new file mode 100644 index 00000000..cd4f9271 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L669__noteUnlockNote.md @@ -0,0 +1,54 @@ +# `_noteUnlockNote` + +## Status + +Finalized. Source-inspected Notecard unlock hook dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:669` +- Declaration/interface: internal hook target +- Signature/API shape: `void _noteUnlockNote(void)` +- Visibility: internal note-c hook boundary +- Public/exported names: `_noteUnlockNote` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `hookUnlockNote` + +## Behavior + +Calls `hookUnlockNote()` when a hook is registered; otherwise does nothing. + +## Important Boundaries + +- Preconditions and assumptions: no inputs. +- Error/null/empty behavior: null hook is a no-op. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global hook pointer. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: platform-specific behavior remains behind hook. + +## Direct Call Sites + +Exact source search found macro alias `_UnlockNote` as the primary internal caller surface. + +## Role In Callers + +`_noteTransactionShouldLock` uses this through `_UnlockNote` only when it acquired the Notecard lock. + +## Tests Observed + +`NoteTransactionHooks_test.cpp` and transaction tests exercise lock/unlock hook behavior. + +## Graph Links + +- Graph node id: `function:n_hooks.c:669:_noteUnlockNote` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L681__noteTransactionStart.md b/source-research/artifacts/functions/n_hooks_c__L681__noteTransactionStart.md new file mode 100644 index 00000000..724e7fcf --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L681__noteTransactionStart.md @@ -0,0 +1,54 @@ +# `_noteTransactionStart` + +## Status + +Finalized. Source-inspected transaction-start hook dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:681` +- Declaration/interface: internal hook target +- Signature/API shape: `bool _noteTransactionStart(uint32_t timeoutMs)` +- Visibility: internal note-c hook boundary +- Public/exported names: `_noteTransactionStart` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `hookTransactionStart` + +## Behavior + +Calls `hookTransactionStart(timeoutMs)` when registered and returns its result. With no hook, returns true. + +## Important Boundaries + +- Preconditions and assumptions: timeout is forwarded unchanged. +- Error/null/empty behavior: null hook permits the transaction. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global hook pointer. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: platform readiness behavior remains behind hook. + +## Direct Call Sites + +Exact source search found macro alias `_TransactionStart` as the primary internal caller surface. + +## Role In Callers + +`_noteTransactionShouldLock` aborts early when this hook returns false. + +## Tests Observed + +`NoteTransactionHooks_test.cpp` and `NoteTransaction_test.cpp` cover start-hook behavior and start failure. + +## Graph Links + +- Graph node id: `function:n_hooks.c:681:_noteTransactionStart` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L694__noteTransactionStop.md b/source-research/artifacts/functions/n_hooks_c__L694__noteTransactionStop.md new file mode 100644 index 00000000..551d813f --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L694__noteTransactionStop.md @@ -0,0 +1,54 @@ +# `_noteTransactionStop` + +## Status + +Finalized. Source-inspected transaction-stop hook dispatcher. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:694` +- Declaration/interface: internal hook target +- Signature/API shape: `void _noteTransactionStop(void)` +- Visibility: internal note-c hook boundary +- Public/exported names: `_noteTransactionStop` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `hookTransactionStop` + +## Behavior + +Calls `hookTransactionStop()` when registered; otherwise does nothing. + +## Important Boundaries + +- Preconditions and assumptions: no inputs. +- Error/null/empty behavior: null hook is a no-op. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global hook pointer. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: platform low-power/end-of-transaction behavior remains behind hook. + +## Direct Call Sites + +Exact source search found macro alias `_TransactionStop` as the primary internal caller surface. + +## Role In Callers + +Transaction paths call this after a successful `_TransactionStart` during normal completion and error exits. + +## Tests Observed + +`NoteTransactionHooks_test.cpp`, `NoteTransaction_test.cpp`, and raw JSON transaction tests cover stop-hook pairing. + +## Graph Links + +- Graph node id: `function:n_hooks.c:694:_noteTransactionStop` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md b/source-research/artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md new file mode 100644 index 00000000..262d5383 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md @@ -0,0 +1,59 @@ +# `NoteGetFnDebugOutput` + +## Status + +Finalized. Source-inspected public debug-output hook getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:701` +- Declaration/interface: `note.h:539` +- Public/exported names: `NoteGetFnDebugOutput` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnDebugOutput(debugOutputFn *fn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies the current debug output hook pointer into caller-provided storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `hookDebugOutput` +- Artifact coverage: source-inspected artifact + +## Behavior + +If `fn` is non-null, writes the current `hookDebugOutput` pointer to `*fn`. A null output pointer is ignored. The getter does not lock. + +## Important Boundaries + +- Preconditions and assumptions: non-null `fn` must point to writable storage for a `debugOutputFn`. +- Error/null/empty behavior: null output pointer is accepted and skipped; no return value or error path. +- Ownership and lifetime: copied callback remains owned by the caller/platform that installed it. +- Concurrency/global state: unsynchronized read of global `hookDebugOutput`. +- Portability/platform constraints: debug output behavior also depends on compile-time debug settings and log-level paths. +- Performance shape: one null check and optional pointer copy. +- Security or parsing constraints: no validation that the copied callback remains valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:539`, the definition in `n_hooks.c:701`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need the currently configured debug output callback. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnDebugOutput_test.cpp` cover null output pointer and round-trip after `NoteSetFnDebugOutput`. Gap: default/cleared null state is not directly asserted by this getter test. + +## Graph Links + +- Graph node id: `function:n_hooks.c:701:NoteGetFnDebugOutput` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md b/source-research/artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md new file mode 100644 index 00000000..d0963131 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md @@ -0,0 +1,59 @@ +# `NoteGetFnHeartbeat` + +## Status + +Finalized. Source-inspected conditional public heartbeat hook getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:714` +- Declaration/interface: `note.h:554` +- Public/exported names: `NoteGetFnHeartbeat` when `NOTE_C_HEARTBEAT_CALLBACK` is enabled +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnHeartbeat(heartbeatFn *fn, void **context)` +- Visibility: conditional public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies the current heartbeat callback and context values into caller-provided storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `hookHeartbeat` and `hookHeartbeatContext` +- Artifact coverage: source-inspected artifact + +## Behavior + +When compiled with `NOTE_C_HEARTBEAT_CALLBACK`, writes `hookHeartbeat` to `*fn` if `fn` is non-null and writes `hookHeartbeatContext` to `*context` if `context` is non-null. Output slots are handled independently. The getter does not lock. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointers must point to writable storage for their matching types. +- Error/null/empty behavior: either output pointer may be null and is skipped; no return value or error path. +- Ownership and lifetime: copied callback/context remain owned by the caller/platform that installed them. +- Concurrency/global state: unsynchronized reads of heartbeat globals. +- Portability/platform constraints: symbol exists only in `NOTE_C_HEARTBEAT_CALLBACK` builds. +- Performance shape: up to two null checks and pointer copies. +- Security or parsing constraints: no validation that copied callback/context remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the conditional public declaration in `note.h:554`, the conditional definition in `n_hooks.c:714`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need heartbeat callback state in heartbeat-enabled builds. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnHeartbeat_test.cpp` cover null output arguments, single-output arguments, full round-trip, and all-null stored state. `test/src/_noteHeartbeat_test.cpp` covers dispatch wrapper behavior. Gap: non-null context with null heartbeat callback is not directly asserted. + +## Graph Links + +- Graph node id: `function:n_hooks.c:714:NoteGetFnHeartbeat` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md b/source-research/artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md new file mode 100644 index 00000000..f0be2106 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md @@ -0,0 +1,61 @@ +# `NoteGetFnTransaction` + +## Status + +Finalized. Source-inspected public transaction hook getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:725` +- Declaration/interface: `note.h:575` +- Public/exported names: `NoteGetFnTransaction` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnTransaction(txnStartFn *startFn, txnStopFn *stopFn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies current transaction start/stop hook pointers into caller-provided storage + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `hookTransactionStart` and `hookTransactionStop` +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access, writes `hookTransactionStart` to `*startFn` if requested, writes `hookTransactionStop` to `*stopFn` if requested, and unlocks. Null output pointers are skipped independently. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointers must point to writable storage for their matching function-pointer types. +- Error/null/empty behavior: either output pointer may be null and is skipped; all-null outputs still lock and unlock. +- Ownership and lifetime: copied callbacks remain owned by the caller/platform that installed them. +- Concurrency/global state: serializes reads of transaction hook globals with `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: transaction hooks wrap portable request orchestration and do not own transport behavior. +- Performance shape: one lock, up to two pointer copies, one unlock. +- Security or parsing constraints: no validation that copied callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:575`, the definition in `n_hooks.c:725`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need transaction lifecycle hook state. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnTransaction_test.cpp` cover null outputs, both outputs, single outputs, and lock/unlock counts. Transaction hook tests cover dispatch wrapper behavior. Gap: default null hook state after clearing is not directly asserted by this getter test. + +## Graph Links + +- Graph node id: `function:n_hooks.c:725:NoteGetFnTransaction` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md b/source-research/artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md new file mode 100644 index 00000000..f53422c5 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md @@ -0,0 +1,59 @@ +# `NoteGetFnMutex` + +## Status + +Finalized. Source-inspected public I2C and Notecard mutex hook getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:737` +- Declaration/interface: `note.h:597` +- Public/exported names: `NoteGetFnMutex` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnMutex(mutexFn *lockI2Cfn, mutexFn *unlockI2Cfn, mutexFn *lockNotefn, mutexFn *unlockNotefn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies current I2C and Notecard mutex hook pointers into caller-provided storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `hookLockI2C`, `hookUnlockI2C`, `hookLockNote`, and `hookUnlockNote` +- Artifact coverage: source-inspected artifact + +## Behavior + +Conditionally writes each requested output pointer with the matching current mutex hook global. Null output pointers are skipped independently. The getter does not lock. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointers must point to writable storage for the matching function-pointer type. +- Error/null/empty behavior: any output pointer may be null and is skipped; no return value or error path. +- Ownership and lifetime: copied callbacks remain owned by the caller/platform that installed them. +- Concurrency/global state: unsynchronized reads of global mutex hook pointers. +- Portability/platform constraints: this is the introspection boundary for platform mutex hooks. +- Performance shape: up to four null checks and pointer copies. +- Security or parsing constraints: no validation that copied callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:597`, the definition in `n_hooks.c:737`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need both I2C and Notecard mutex callback state. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnMutex_test.cpp` cover all outputs, all null outputs, and each single output. Setter/dispatch tests cover clearing behavior. Gap: getter-after-clear/default null state is not directly asserted by this getter test. + +## Graph Links + +- Graph node id: `function:n_hooks.c:737:NoteGetFnMutex` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L754__NoteGetFnI2CMutex.md b/source-research/artifacts/functions/n_hooks_c__L754__NoteGetFnI2CMutex.md new file mode 100644 index 00000000..e8a1d91e --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L754__NoteGetFnI2CMutex.md @@ -0,0 +1,59 @@ +# `NoteGetFnI2CMutex` + +## Status + +Finalized. Source-inspected public I2C mutex hook getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:754` +- Declaration/interface: `note.h:615` +- Public/exported names: `NoteGetFnI2CMutex` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnI2CMutex(mutexFn *lockI2Cfn, mutexFn *unlockI2Cfn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies current I2C mutex hook pointers into caller-provided storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `hookLockI2C` and `hookUnlockI2C` +- Artifact coverage: source-inspected artifact + +## Behavior + +Writes `hookLockI2C` to `*lockI2Cfn` if requested and writes `hookUnlockI2C` to `*unlockI2Cfn` if requested. Null output pointers are skipped independently. The getter does not lock. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointers must point to writable storage for `mutexFn` values. +- Error/null/empty behavior: either output pointer may be null and is skipped; no return value or error path. +- Ownership and lifetime: copied callbacks remain owned by the caller/platform that installed them. +- Concurrency/global state: unsynchronized reads of global I2C mutex hook pointers. +- Portability/platform constraints: this is the introspection boundary for platform I2C mutex hooks. +- Performance shape: up to two null checks and pointer copies. +- Security or parsing constraints: no validation that copied callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:615`, the definition in `n_hooks.c:754`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need I2C lock/unlock callback state. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnI2CMutex_test.cpp` cover both outputs, all null outputs, and single-output cases. Setter/dispatch tests cover clearing behavior. Gap: getter-after-clear/default null state is not directly asserted by this getter test. + +## Graph Links + +- Graph node id: `function:n_hooks.c:754:NoteGetFnI2CMutex` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L764__NoteGetFnNoteMutex.md b/source-research/artifacts/functions/n_hooks_c__L764__NoteGetFnNoteMutex.md new file mode 100644 index 00000000..ecd5ff58 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L764__NoteGetFnNoteMutex.md @@ -0,0 +1,59 @@ +# `NoteGetFnNoteMutex` + +## Status + +Finalized. Source-inspected public Notecard mutex hook getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:764` +- Declaration/interface: `note.h:632` +- Public/exported names: `NoteGetFnNoteMutex` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnNoteMutex(mutexFn *lockFn, mutexFn *unlockFn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies current Notecard mutex hook pointers into caller-provided storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `hookLockNote` and `hookUnlockNote` +- Artifact coverage: source-inspected artifact + +## Behavior + +Writes `hookLockNote` to `*lockFn` if requested and writes `hookUnlockNote` to `*unlockFn` if requested. Null output pointers are skipped independently. The getter does not lock. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointers must point to writable storage for `mutexFn` values. +- Error/null/empty behavior: either output pointer may be null and is skipped; no return value or error path. +- Ownership and lifetime: copied callbacks remain owned by the caller/platform that installed them. +- Concurrency/global state: unsynchronized reads of global Notecard mutex hook pointers. +- Portability/platform constraints: this is the introspection boundary for platform Notecard mutex hooks. +- Performance shape: up to two null checks and pointer copies. +- Security or parsing constraints: no validation that copied callbacks remain valid after return. + +## Direct Call Sites + +Source/header exact search found only the public declaration in `note.h:632`, the definition in `n_hooks.c:764`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need Notecard lock/unlock callback state. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnNoteMutex_test.cpp` cover both outputs, all null outputs, and single-output cases. Setter/dispatch tests cover clearing behavior. Gap: getter-after-clear/default null state is not directly asserted by this getter test. + +## Graph Links + +- Graph node id: `function:n_hooks.c:764:NoteGetFnNoteMutex` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L774__NoteGetFn.md b/source-research/artifacts/functions/n_hooks_c__L774__NoteGetFn.md new file mode 100644 index 00000000..ac75ea5b --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L774__NoteGetFn.md @@ -0,0 +1,61 @@ +# `NoteGetFn` + +## Status + +Finalized. Source-inspected public hook accessor for memory and timing callbacks. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:774` +- Declaration/interface: `note.h:672` +- Public/exported names: `NoteGetFn` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFn(mallocFn *mallocHook, freeFn *freeHook, delayMsFn *delayMsHook, getMsFn *getMsHook)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies current hook function-pointer values into caller-provided output slots + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads static hook globals `hookMalloc`, `hookFree`, `hookDelayMs`, and `hookGetMs` +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access with `_LockNote`, conditionally writes each requested output pointer with the corresponding current hook global, then unlocks with `_UnlockNote`. Null output pointers are ignored individually. The function has no return value and performs no allocation or validation beyond null checks on the output slots. + +## Important Boundaries + +- Preconditions and assumptions: any non-null output pointer must point to writable storage for the matching function-pointer type. +- Error/null/empty behavior: any output slot may be null; null slots are skipped without error. If all slots are null, the function still locks and unlocks. +- Ownership and lifetime: the copied function pointers remain owned/configured by the SDK hook layer; no callback ownership changes. +- Concurrency/global state: serializes reads of the four hook globals using the Notecard mutex hook path. +- Portability/platform constraints: depends on platform-supplied mutex hooks only through `_LockNote` and `_UnlockNote`. +- Performance shape: one lock, up to four pointer copies, one unlock. +- Security or parsing constraints: no parsing; no validation that stored hook pointers remain valid after return. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:672`, the definition in `n_hooks.c:774`, and focused tests in `test/src/NoteGetFn_test.cpp`. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need to inspect currently configured allocation and timing callbacks. + +## Tests Observed + +Focused tests in `test/src/NoteGetFn_test.cpp` directly set the hook globals and verify that all-null outputs do not crash, each individual output pointer receives the configured hook, all outputs can be returned together, and `_LockNote`/`_UnlockNote` call counts remain balanced. Gaps include concurrent mutation by another thread and behavior when mutex hooks themselves fail, which cannot be represented by the void hook signatures. + +## Graph Links + +- Graph node id: `function:n_hooks.c:774:NoteGetFn` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md b/source-research/artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md new file mode 100644 index 00000000..7f17d80f --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md @@ -0,0 +1,61 @@ +# `NoteGetFnSerial` + +## Status + +Finalized. Source-inspected public serial hook getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:793` +- Declaration/interface: `note.h:715` +- Public/exported names: `NoteGetFnSerial` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnSerial(serialResetFn *resetFn, serialTransmitFn *transmitFn, serialAvailableFn *availFn, serialReceiveFn *receiveFn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies current serial hook pointers into caller-provided storage + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `hookSerialReset`, `hookSerialTransmit`, `hookSerialAvailable`, and `hookSerialReceive` +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access, conditionally writes each requested output pointer with the corresponding current serial hook, and unlocks. Null output pointers are skipped independently. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointers must point to writable storage for matching function-pointer types. +- Error/null/empty behavior: any output pointer may be null; all-null calls still lock and unlock. +- Ownership and lifetime: copied callbacks remain owned by the caller/platform that installed them. +- Concurrency/global state: serializes reads of serial hook globals with `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: this is the introspection boundary for platform serial hooks. +- Performance shape: one lock, up to four pointer copies, one unlock. +- Security or parsing constraints: no validation that copied callbacks remain valid after return. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:715`, the definition in `n_hooks.c:793`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need current serial callback state. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnSerial_test.cpp` cover all-null, all outputs, each single output, and lock/unlock counts. Gap: no concurrent mutation coverage. + +## Graph Links + +- Graph node id: `function:n_hooks.c:793:NoteGetFnSerial` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md b/source-research/artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md new file mode 100644 index 00000000..5b38c54a --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md @@ -0,0 +1,61 @@ +# `NoteGetFnI2C` + +## Status + +Finalized. Source-inspected public I2C hook/address/MTU getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:812` +- Declaration/interface: `note.h:763` +- Public/exported names: `NoteGetFnI2C` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetFnI2C(uint32_t *notecardAddr, uint32_t *maxTransmitSize, i2cResetFn *resetFn, i2cTransmitFn *transmitFn, i2cReceiveFn *receiveFn)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies current raw I2C address/MTU values and hook pointers into caller-provided storage + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `i2cAddress`, `i2cMax`, `hookI2CReset`, `hookI2CTransmit`, and `hookI2CReceive` +- Artifact coverage: source-inspected artifact + +## Behavior + +Locks Notecard access, conditionally copies raw `i2cAddress`, raw `i2cMax`, and current I2C hook pointers into non-null output slots, then unlocks. It does not apply default address or MTU clamping. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointers must point to writable storage for matching value/function-pointer types. +- Error/null/empty behavior: any output pointer may be null; all-null calls still lock and unlock. +- Ownership and lifetime: copied callbacks remain owned by the caller/platform that installed them. +- Concurrency/global state: serializes reads with `_LockNote`/`_UnlockNote`. +- Portability/platform constraints: this is the introspection boundary for platform I2C hook state. +- Performance shape: one lock, up to five copies, one unlock. +- Security or parsing constraints: no validation that copied callbacks remain valid after return. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:763`, the definition in `n_hooks.c:812`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public hook-introspection API for downstream callers that need current I2C raw configuration and callbacks. + +## Tests Observed + +Focused tests in `test/src/NoteGetFnI2C_test.cpp` cover all-null, all outputs, each single output, and lock/unlock counts. Gap: tests cover raw stored values, not defaulted/clamped values from `NoteI2CAddress` or `NoteI2CMax`. + +## Graph Links + +- Graph node id: `function:n_hooks.c:812:NoteGetFnI2C` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockNote` and `_UnlockNote`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L835__NoteGetI2CAddress.md b/source-research/artifacts/functions/n_hooks_c__L835__NoteGetI2CAddress.md new file mode 100644 index 00000000..8e68d090 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L835__NoteGetI2CAddress.md @@ -0,0 +1,59 @@ +# `NoteGetI2CAddress` + +## Status + +Finalized. Source-inspected public raw I2C address getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:835` +- Declaration/interface: `note.h:810` +- Public/exported names: `NoteGetI2CAddress` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetI2CAddress(uint32_t *i2cAddr)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies the raw stored I2C address into caller-provided storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `i2cAddress` +- Artifact coverage: source-inspected artifact + +## Behavior + +If `i2cAddr` is non-null, writes the raw stored `i2cAddress` value to it. It does not lock and does not apply the default address logic used by `NoteI2CAddress`. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointer must point to writable `uint32_t` storage. +- Error/null/empty behavior: null output pointer is a no-op; no return value or error path. +- Ownership and lifetime: no ownership transfer. +- Concurrency/global state: unsynchronized read of `i2cAddress`. +- Portability/platform constraints: reports raw stored value, not effective I2C address. +- Performance shape: one null check and optional scalar copy. +- Security or parsing constraints: no validation. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:810`, the definition in `n_hooks.c:835`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public getter for downstream code that wants the raw configured I2C address. + +## Tests Observed + +Focused tests in `test/src/NoteGetI2CAddress_test.cpp` cover raw zero, raw set value, and null output pointer. Gap: no locking/concurrency coverage. + +## Graph Links + +- Graph node id: `function:n_hooks.c:835:NoteGetI2CAddress` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L842__NoteGetI2CMtu.md b/source-research/artifacts/functions/n_hooks_c__L842__NoteGetI2CMtu.md new file mode 100644 index 00000000..5a24b8d6 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L842__NoteGetI2CMtu.md @@ -0,0 +1,59 @@ +# `NoteGetI2CMtu` + +## Status + +Finalized. Source-inspected public raw I2C MTU getter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:842` +- Declaration/interface: `note.h:819` +- Public/exported names: `NoteGetI2CMtu` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteGetI2CMtu(uint32_t *i2cMtu)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: copies the raw stored I2C MTU into caller-provided storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads `i2cMax` +- Artifact coverage: source-inspected artifact + +## Behavior + +If `i2cMtu` is non-null, writes the raw stored `i2cMax` value to it. It does not lock and does not apply the default/clamp logic used by `NoteI2CMax`. + +## Important Boundaries + +- Preconditions and assumptions: non-null output pointer must point to writable `uint32_t` storage. +- Error/null/empty behavior: null output pointer is a no-op; no return value or error path. +- Ownership and lifetime: no ownership transfer. +- Concurrency/global state: unsynchronized read of `i2cMax`. +- Portability/platform constraints: reports raw stored MTU, not effective clamped MTU. +- Performance shape: one null check and optional scalar copy. +- Security or parsing constraints: no validation. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:819`, the definition in `n_hooks.c:842`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public getter for downstream code that wants the raw configured I2C MTU. + +## Tests Observed + +Focused tests in `test/src/NoteGetI2CMtu_test.cpp` cover raw zero, raw oversized, valid value, and null output pointer. Gap: no locking/concurrency coverage. + +## Graph Links + +- Graph node id: `function:n_hooks.c:842:NoteGetI2CMtu` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L855__noteSerialReset.md b/source-research/artifacts/functions/n_hooks_c__L855__noteSerialReset.md new file mode 100644 index 00000000..7f8b20f7 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L855__noteSerialReset.md @@ -0,0 +1,69 @@ +# `_noteSerialReset` + +## Status + +Finalized. Source-inspected serial reset hook wrapper, hook/global boundaries, macro alias caller, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:855` +- Declaration/interface: `n_lib.h:141` +- Public/exported names: none; internal hook wrapper +- Macro aliases/wrappers: `_SerialReset` expands to `_noteSerialReset` at `n_lib.h:230` +- Signature/API shape: `bool _noteSerialReset(void)` +- Visibility: internal declaration in `n_lib.h`, implementation in `n_hooks.c` +- Ownership/lifetime role: no allocation or ownership transfer; dispatches an optional platform reset hook + +## Dependency Status + +- Project-local dependencies: + - No project-local callees +- External/system dependencies: optional caller-supplied `serialResetFn` hook +- Data/type/global dependencies: reads `hookActiveInterface` and `hookSerialReset` +- Artifact coverage: source, declaration, macro alias, hook state, direct caller search, and focused tests inspected + +## Behavior + +If `hookActiveInterface == NOTE_C_INTERFACE_SERIAL` and `hookSerialReset` is non-null, calls `hookSerialReset()` and returns its bool result. Otherwise returns true without calling a platform reset hook. + +## Important Boundaries + +- Preconditions and assumptions: serial reset hook installation and active-interface selection are managed by the hook configuration APIs. +- Error/null/empty behavior: inactive serial interface or null reset hook is treated as successful reset. +- Ownership and lifetime: no allocation and no ownership transfer. +- Concurrency/global state: reads global active-interface and hook-pointer state; caller/higher-level setters provide synchronization. +- Portability/platform constraints: platform-specific reset behavior remains behind `serialResetFn`. +- Performance shape: O(1) plus optional hook cost. +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact source search found: + +- `n_lib.h:141` internal declaration. +- `n_lib.h:230` `_SerialReset` macro alias. +- `n_hooks.c:855` implementation. + +Focused tests fake `_noteSerialReset` in `_serialNoteReset_test.cpp`; hook setup/getter tests inspect the underlying `hookSerialReset` global. + +## Role In Callers + +`_SerialReset` is the project-internal readability alias used by the serial bus reset/resynchronization implementation. When reached through that alias, inactive or unconfigured serial reset hooks are considered success by this wrapper. + +## Tests Observed + +`test/src/_noteSerialReset_test.cpp` directly covers inactive interface with null/non-null reset hook returning true, active serial with null reset hook returning true, and active serial with non-null reset hook returning the hook value. `_serialNoteReset_test.cpp` fakes this wrapper to cover the higher-level serial reset caller's failure and retry behavior. + +## Test Coverage Notes + +Focused tests do not exercise concurrent hook mutation during a reset call or external platform reset implementations. + +## Graph Links + +- Graph node id: `function:n_hooks.c:855:_noteSerialReset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md b/source-research/artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md new file mode 100644 index 00000000..13b8392b --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md @@ -0,0 +1,59 @@ +# `_noteSerialTransmit` + +## Status + +Final. Behavior, internal declaration, hook dispatch, no-op behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:871` +- Declaration/interface: `n_lib.h:142` +- Public/exported names: internal `_noteSerialTransmit`; public hook setters are `NoteSetFnSerial` and `NoteSetFnSerialDefault` +- Macro aliases/wrappers: `_SerialTransmit` expands to `_noteSerialTransmit` at `n_lib.h:231` +- Signature/API shape: `void _noteSerialTransmit(const uint8_t *text, size_t len, bool flush)` +- Visibility: internal serial transmit dispatch helper +- Ownership/lifetime role: forwards caller-owned buffer to platform hook; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: platform serial transmit hook +- Data/type/global dependencies: reads `hookActiveInterface` and `hookSerialTransmit` +- Artifact coverage: generated artifact exists + +## Behavior + +If `hookActiveInterface == NOTE_C_INTERFACE_SERIAL` and `hookSerialTransmit != NULL`, forwards the buffer, length, and flush flag to the registered transmit hook. Otherwise it does nothing. The implementation intentionally casts away `const` on `text` because `serialTransmitFn` takes `uint8_t *` for API compatibility. + +## Important Boundaries + +- Preconditions and assumptions: serial interface and transmit hook must be configured for output to occur +- Error/null/empty behavior: inactive interface or missing hook is a silent no-op; no error channel +- Ownership and lifetime: does not allocate or retain `text` +- Concurrency/global state: reads global active-interface and hook state without local locking +- Portability/platform constraints: platform transmit behavior stays behind hook +- Performance shape: constant-time gate plus platform hook call +- Security or parsing constraints: no parsing; hook must honor buffer/length contract + +## Direct Call Sites + +Direct internal macro callers use `_SerialTransmit` in `n_serial.c:58`, `n_serial.c:176`, and `n_serial.c:321`. Focused direct tests are in `test/src/_noteSerialTransmit_test.cpp`. + +## Role In Callers + +Serial transmit dispatch primitive for transaction newline flush, reset sync, and chunked transmit paths. + +## Tests Observed + +`test/src/_noteSerialTransmit_test.cpp` verifies inactive interface or missing hook do nothing, and active serial plus a hook forwards buffer, size, and flush parameters. + +## Graph Links + +- Graph node id: `function:n_hooks.c:871:_noteSerialTransmit` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers hook mutation of the const source buffer; source shows the cast is intentional for API compatibility. diff --git a/source-research/artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md b/source-research/artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md new file mode 100644 index 00000000..5828e4b5 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md @@ -0,0 +1,59 @@ +# `_noteSerialAvailable` + +## Status + +Final. Behavior, internal declaration, hook dispatch, default behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:887` +- Declaration/interface: `n_lib.h:143` +- Public/exported names: internal `_noteSerialAvailable`; public hook setters are `NoteSetFnSerial` and `NoteSetFnSerialDefault` +- Macro aliases/wrappers: `_SerialAvailable` expands to `_noteSerialAvailable` at `n_lib.h:232` +- Signature/API shape: `bool _noteSerialAvailable(void)` +- Visibility: internal serial availability dispatch helper +- Ownership/lifetime role: queries platform hook; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: platform serial available hook +- Data/type/global dependencies: reads `hookActiveInterface` and `hookSerialAvailable` +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `hookSerialAvailable()` only when the active interface is serial and the availability hook is set. Otherwise returns `false`. + +## Important Boundaries + +- Preconditions and assumptions: serial interface and availability hook must be configured for true availability reports +- Error/null/empty behavior: inactive interface or missing hook returns `false` +- Ownership and lifetime: no allocation or ownership +- Concurrency/global state: reads global active-interface and hook state without local locking +- Portability/platform constraints: platform availability behavior stays behind hook +- Performance shape: constant-time gate plus platform hook call +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Direct internal macro callers use `_SerialAvailable` in `n_serial.c:70`, `n_serial.c:185`, `n_serial.c:243`, and `n_request.c:802`. Focused direct tests are in `test/src/_noteSerialAvailable_test.cpp`. + +## Role In Callers + +Serial availability primitive for response wait loops, reset drain, chunked receive, and ping-drain. + +## Tests Observed + +`test/src/_noteSerialAvailable_test.cpp` verifies inactive interface or missing hook returns `false`, and active serial plus a hook returns the hook result. + +## Graph Links + +- Graph node id: `function:n_hooks.c:887:_noteSerialAvailable` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L902__noteSerialReceive.md b/source-research/artifacts/functions/n_hooks_c__L902__noteSerialReceive.md new file mode 100644 index 00000000..74a46182 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L902__noteSerialReceive.md @@ -0,0 +1,59 @@ +# `_noteSerialReceive` + +## Status + +Final. Behavior, internal declaration, hook dispatch, default behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:902` +- Declaration/interface: `n_lib.h:144` +- Public/exported names: internal `_noteSerialReceive`; public hook setters are `NoteSetFnSerial` and `NoteSetFnSerialDefault` +- Macro aliases/wrappers: `_SerialReceive` expands to `_noteSerialReceive` at `n_lib.h:233` +- Signature/API shape: `char _noteSerialReceive(void)` +- Visibility: internal serial receive dispatch helper +- Ownership/lifetime role: returns one character from platform hook; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: platform serial receive hook +- Data/type/global dependencies: reads `hookActiveInterface` and `hookSerialReceive` +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `hookSerialReceive()` only when the active interface is serial and the receive hook is set. Otherwise returns `'\0'`. + +## Important Boundaries + +- Preconditions and assumptions: callers generally check `_SerialAvailable()` before receiving +- Error/null/empty behavior: inactive interface or missing hook returns NUL character +- Ownership and lifetime: no allocation or ownership +- Concurrency/global state: reads global active-interface and hook state without local locking +- Portability/platform constraints: platform receive behavior stays behind hook +- Performance shape: constant-time gate plus platform hook call +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Direct internal macro callers use `_SerialReceive` in `n_serial.c:190`, `n_serial.c:263`, and `n_request.c:803`. Focused direct tests are in `test/src/_noteSerialReceive_test.cpp`. + +## Role In Callers + +Serial one-byte receive primitive for reset drain, chunked receive, and ping-drain paths. + +## Tests Observed + +`test/src/_noteSerialReceive_test.cpp` verifies inactive interface or missing hook returns `'\0'`, and active serial plus a hook returns the hook result. + +## Graph Links + +- Graph node id: `function:n_hooks.c:902:_noteSerialReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L916__noteI2CReset.md b/source-research/artifacts/functions/n_hooks_c__L916__noteI2CReset.md new file mode 100644 index 00000000..f2bdb4a3 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L916__noteI2CReset.md @@ -0,0 +1,64 @@ +# `_noteI2CReset` + +## Status + +Finalized. Source-inspected I2C reset hook dispatcher, macro wrapper, hook state, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:916` +- Declaration/interface: `n_lib.h:145` +- Public/exported names: none; internal hook dispatcher +- Macro aliases/wrappers: `_I2CReset` expands to `_noteI2CReset` at `n_lib.h:234` +- Signature/API shape: `bool _noteI2CReset(uint16_t DevAddress)` +- Visibility: internal transport hook boundary +- Ownership/lifetime role: no ownership; forwards address to configured platform hook + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: platform `i2cResetFn` hook when configured +- Data/type/global dependencies: reads `hookActiveInterface` and `hookI2CReset` +- Artifact coverage: implementation, declaration, macro wrapper, hook state setup/accessors, direct macro call sites, and focused tests inspected + +## Behavior + +If the active interface is I2C and `hookI2CReset` is non-null, calls `hookI2CReset(DevAddress)` and returns that bool. Otherwise returns `true` as a no-op success. + +## Important Boundaries + +- Preconditions and assumptions: address is already selected by callers; no validation is performed at this boundary. +- Error/null/empty behavior: inactive interface or missing reset hook is treated as successful reset. Only the platform hook can report failure. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: reads global active-interface and hook pointers without locking; transport wrappers that need mutual exclusion lock outside this helper. +- Portability/platform constraints: platform reset behavior is entirely behind the configured hook. +- Performance shape: O(1) plus hook cost. +- Security or parsing constraints: no parsing. `DevAddress` is `uint16_t`; I2C callers pass the `uint32_t` `NoteI2CAddress()` value through the `_I2CAddress` macro into this narrower parameter. + +## Direct Call Sites + +Exact source search found: + +- `n_lib.h:234` macro wrapper `_I2CReset`. +- Direct production uses of that wrapper in `n_i2c.c:205`, `n_i2c.c:298`, and `n_i2c.c:494`. + +Tests and fakes call `_noteI2CReset` directly, but production source uses the macro wrapper. + +## Role In Callers + +This is the platform-reset dispatch target behind all internal I2C reset operations. `_i2cNoteReset` treats a false reset as fatal on initial reset and on retry reset; `_i2cChunkedTransmit` invokes reset best-effort after transmit-hook errors and ignores the reset result while returning the original transmit error. + +## Tests Observed + +Focused `test/src/_noteI2CReset_test.cpp` covers inactive interface, null hook, active I2C hook dispatch, address forwarding, and return propagation. Hook setter/getter tests cover storage and retrieval of `hookI2CReset`; reset/transmit caller tests fake `_noteI2CReset` through the `_I2CReset` macro boundary. + +## Graph Links + +- Graph node id: `function:n_hooks.c:916:_noteI2CReset` +- Structured graph: `inventory/dependency-graph.json` +- Macro alias node: `macro:n_lib.h:234:_I2CReset` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md b/source-research/artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md new file mode 100644 index 00000000..1cbb65cd --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md @@ -0,0 +1,66 @@ +# `_noteI2CTransmit` + +## Status + +Finalized. Source-inspected I2C transmit hook dispatcher, macro wrapper, hook state, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:934` +- Declaration/interface: `n_lib.h:146` +- Public/exported names: none; internal hook dispatcher +- Macro aliases/wrappers: `_I2CTransmit` expands to `_noteI2CTransmit` at `n_lib.h:235` +- Signature/API shape: `const char *_noteI2CTransmit(uint16_t DevAddress, const uint8_t *pBuffer, uint16_t Size)` +- Visibility: internal transport hook boundary +- Ownership/lifetime role: forwards caller buffer to configured platform hook; does not allocate or own data + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: platform `i2cTransmitFn` hook when configured +- Data/type/global dependencies: reads `hookActiveInterface` and `hookI2CTransmit` +- Artifact coverage: implementation, declaration, macro wrapper, hook state setup/accessors, direct macro call sites, and focused tests inspected + +## Behavior + +If the active interface is I2C and `hookI2CTransmit` is non-null, forwards the address, buffer, and size to the platform hook and returns its error string. Otherwise returns the literal `"i2c not active"`. + +The dispatcher intentionally casts the `const uint8_t *` buffer to `uint8_t *` because the public hook typedef is still mutable for API compatibility. + +## Important Boundaries + +- Preconditions and assumptions: active I2C interface and transmit hook must be configured for a real transmit; the hook must honor `Size`. +- Error/null/empty behavior: inactive interface or missing hook returns `"i2c not active"`; platform hook controls all other error strings. +- Ownership and lifetime: no allocation or ownership transfer; passes the caller buffer pointer through to the hook. +- Concurrency/global state: reads global active-interface and hook pointers without locking; transport wrappers that need mutual exclusion lock outside this helper. +- Portability/platform constraints: platform transmit behavior is entirely behind the configured hook. +- Performance shape: O(1) plus hook cost. +- Security or parsing constraints: no parsing; constness is cast away to satisfy `i2cTransmitFn`. + +## Direct Call Sites + +Exact source search found: + +- `n_lib.h:235` macro wrapper `_I2CTransmit`. +- Direct production uses of that wrapper in `n_i2c.c:223` and `n_i2c.c:492`. + +Tests and fakes call `_noteI2CTransmit` directly, but production source uses the macro wrapper. + +## Role In Callers + +This is the platform transmit dispatch target behind I2C reset resync and chunked transmit paths. Callers interpret any non-null return as a transmit error. + +## Tests Observed + +Focused `test/src/_noteI2CTransmit_test.cpp` covers inactive interface, null hook, active I2C hook dispatch, parameter forwarding, and hook return propagation. Hook setter/getter tests cover storage and retrieval of `hookI2CTransmit`; reset/chunk caller tests fake `_noteI2CTransmit` through the `_I2CTransmit` macro boundary. + +## Graph Links + +- Graph node id: `function:n_hooks.c:934:_noteI2CTransmit` +- Structured graph: `inventory/dependency-graph.json` +- Macro alias node: `macro:n_lib.h:235:_I2CTransmit` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L955__noteI2CReceive.md b/source-research/artifacts/functions/n_hooks_c__L955__noteI2CReceive.md new file mode 100644 index 00000000..c03b6148 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L955__noteI2CReceive.md @@ -0,0 +1,59 @@ +# `_noteI2CReceive` + +## Status + +Final. Behavior, internal declaration, hook dispatch, error/null behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:955` +- Declaration/interface: `n_lib.h:147` +- Public/exported names: internal `_noteI2CReceive`; public hook setters are `NoteSetFnI2C` and `NoteSetFnI2CDefault` +- Macro aliases/wrappers: `_I2CReceive` expands to `_noteI2CReceive` at `n_lib.h:236` +- Signature/API shape: `const char *_noteI2CReceive(uint16_t DevAddress, uint8_t *pBuffer, uint16_t Size, uint32_t *available)` +- Visibility: internal I2C receive dispatch helper +- Ownership/lifetime role: forwards caller-owned buffer and availability pointer to platform hook; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: platform I2C receive hook +- Data/type/global dependencies: reads `hookActiveInterface` and `hookI2CReceive` +- Artifact coverage: generated artifact exists + +## Behavior + +If `hookActiveInterface == NOTE_C_INTERFACE_I2C` and `hookI2CReceive != NULL`, forwards all arguments to `hookI2CReceive` and returns that hook's result. Otherwise returns the static error string `"i2c not active"`. + +## Important Boundaries + +- Preconditions and assumptions: active interface and receive hook must be configured before I2C transport receive paths use this helper +- Error/null/empty behavior: inactive interface or missing hook returns `"i2c not active"`; active path performs no local null checks on `pBuffer` or `available` +- Ownership and lifetime: does not allocate or retain pointers +- Concurrency/global state: reads global active-interface and hook state without local locking +- Portability/platform constraints: platform receive behavior stays behind hook +- Performance shape: constant-time gate plus platform hook call +- Security or parsing constraints: no parsing; trusts hook to honor buffer size and availability pointer + +## Direct Call Sites + +Direct internal macro callers use `_I2CReceive` in `n_i2c.c:55`, `n_i2c.c:253`, `n_i2c.c:382`, `n_request.c:823`, and `n_request.c:831`. Focused direct tests are in `test/src/_noteI2CReceive_test.cpp`. + +## Role In Callers + +I2C receive dispatch primitive for query, reset/drain, chunk receive, and ping-drain paths. + +## Tests Observed + +`test/src/_noteI2CReceive_test.cpp` verifies inactive interface and missing receive hook both return `"i2c not active"`, and active I2C plus a receive hook forwards address, buffer, size, and available pointer while returning the hook result. + +## Graph Links + +- Graph node id: `function:n_hooks.c:955:_noteI2CReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No focused test covers active-path null pointer misuse; source shows parameters are passed directly to the hook. diff --git a/source-research/artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md b/source-research/artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md new file mode 100644 index 00000000..2cf747d7 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md @@ -0,0 +1,59 @@ +# `NoteI2CAddress` + +## Status + +Final. Behavior, public declaration, macro alias, global dependency, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:969` +- Declaration/interface: `note.h:1088` +- Public/exported names: `NoteI2CAddress` +- Macro aliases/wrappers: `_I2CAddress` expands to `NoteI2CAddress` at `n_lib.h:247` +- Signature/API shape: `uint32_t NoteI2CAddress(void)` +- Visibility: public SDK accessor and internal macro target +- Ownership/lifetime role: reads current I2C address state; no ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: reads `i2cAddress`; uses `NOTE_I2C_ADDR_DEFAULT` +- Artifact coverage: generated artifact exists + +## Behavior + +Returns `NOTE_I2C_ADDR_DEFAULT` when `i2cAddress == 0`; otherwise returns the stored `i2cAddress`. + +## Important Boundaries + +- Preconditions and assumptions: `i2cAddress` is maintained by I2C setter APIs +- Error/null/empty behavior: zero address is normalized to the default address, not returned as zero +- Ownership and lifetime: no allocation or ownership +- Concurrency/global state: reads global address state without locking +- Portability/platform constraints: default address is compile-time SDK constant +- Performance shape: constant-time branch +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Direct internal macro callers use `_I2CAddress` in `n_i2c.c` and `n_request.c`. Focused direct tests are in `test/src/NoteI2CAddress_test.cpp`; reset tests also compare I2C hook arguments to `NoteI2CAddress()`. + +## Role In Callers + +Accessor used by I2C transaction/reset/chunk paths to pass the effective address to platform hooks. + +## Tests Observed + +`test/src/NoteI2CAddress_test.cpp` verifies zero returns `NOTE_I2C_ADDR_DEFAULT` and nonzero state is returned unchanged. + +## Graph Links + +- Graph node id: `function:n_hooks.c:969:NoteI2CAddress` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L977__NoteSetI2CAddress.md b/source-research/artifacts/functions/n_hooks_c__L977__NoteSetI2CAddress.md new file mode 100644 index 00000000..c669a443 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L977__NoteSetI2CAddress.md @@ -0,0 +1,59 @@ +# `NoteSetI2CAddress` + +## Status + +Finalized. Source-inspected public raw I2C address setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:977` +- Declaration/interface: `note.h:795` +- Public/exported names: `NoteSetI2CAddress` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetI2CAddress(uint32_t i2cAddr)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: stores raw I2C address configuration + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes `i2cAddress` +- Artifact coverage: source-inspected artifact + +## Behavior + +Assigns `i2cAddress = i2cAddr`. Zero is stored as a raw value; the separate `NoteI2CAddress` effective getter maps zero to the default address. + +## Important Boundaries + +- Preconditions and assumptions: scalar input only. +- Error/null/empty behavior: no return value or error path. +- Ownership and lifetime: no ownership transfer. +- Concurrency/global state: unsynchronized write to `i2cAddress`. +- Portability/platform constraints: stores raw value; effective defaulting is elsewhere. +- Performance shape: one scalar assignment. +- Security or parsing constraints: no validation of address range. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:795`, the definition in `n_hooks.c:977`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public setter for downstream code that wants to override the stored I2C address. + +## Tests Observed + +Focused tests in `test/src/NoteSetI2CAddress_test.cpp` cover nonzero and zero raw writes. Gap: no round trip through effective `NoteI2CAddress` in that test. + +## Graph Links + +- Graph node id: `function:n_hooks.c:977:NoteSetI2CAddress` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L982__NoteSetI2CMtu.md b/source-research/artifacts/functions/n_hooks_c__L982__NoteSetI2CMtu.md new file mode 100644 index 00000000..646b2316 --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L982__NoteSetI2CMtu.md @@ -0,0 +1,59 @@ +# `NoteSetI2CMtu` + +## Status + +Finalized. Source-inspected public raw I2C MTU setter. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:982` +- Declaration/interface: `note.h:804` +- Public/exported names: `NoteSetI2CMtu` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetI2CMtu(uint32_t i2cMtu)` +- Visibility: public note-c hook API implemented in `n_hooks.c` +- Ownership/lifetime role: stores raw I2C MTU configuration + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes `i2cMax` +- Artifact coverage: source-inspected artifact + +## Behavior + +Assigns `i2cMax = i2cMtu`. Zero and oversized values are stored as raw values; the separate `NoteI2CMax` effective getter applies defaulting and clamping. + +## Important Boundaries + +- Preconditions and assumptions: scalar input only. +- Error/null/empty behavior: no return value or error path. +- Ownership and lifetime: no ownership transfer. +- Concurrency/global state: unsynchronized write to `i2cMax`. +- Portability/platform constraints: stores raw value; effective defaulting/clamping is elsewhere. +- Performance shape: one scalar assignment. +- Security or parsing constraints: no validation of MTU range. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:804`, the definition in `n_hooks.c:982`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public setter for downstream code that wants to override the stored I2C MTU. + +## Tests Observed + +Focused tests in `test/src/NoteSetI2CMtu_test.cpp` cover valid, zero, and oversized raw writes. Gap: no round trip through effective `NoteI2CMax` in that test. + +## Graph Links + +- Graph node id: `function:n_hooks.c:982:NoteSetI2CMtu` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_hooks_c__L994__NoteI2CMax.md b/source-research/artifacts/functions/n_hooks_c__L994__NoteI2CMax.md new file mode 100644 index 00000000..5d6b8cdd --- /dev/null +++ b/source-research/artifacts/functions/n_hooks_c__L994__NoteI2CMax.md @@ -0,0 +1,66 @@ +# `NoteI2CMax` + +## Status + +Finalized. Source-inspected public I2C MTU accessor. + +## Identity + +- Kind: function +- Definition: `n_hooks.c:994` +- Declaration/interface: `note.h:1105` +- Signature/API shape: `uint32_t NoteI2CMax(void)` +- Visibility: public SDK hook/helper API +- Public/exported names: `NoteI2CMax` +- Macro aliases/wrappers: `_I2CMax` in `n_lib.h:248` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads and may write file-local `i2cMax` (`n_hooks.c:152`); uses `NOTE_I2C_MTU_DEFAULT` and `NOTE_I2C_MTU_MAX` +- Artifact coverage: source, public declaration, macro alias, state writers/readers, direct callers, and focused tests inspected + +## Behavior + +Returns `NOTE_I2C_MTU_DEFAULT` when `i2cMax == 0`. If `i2cMax > NOTE_I2C_MTU_MAX`, mutates `i2cMax` down to `NOTE_I2C_MTU_MAX` and returns the clamped value. Otherwise returns the stored `i2cMax`. + +## Important Boundaries + +- Preconditions and assumptions: `i2cMax` is maintained by I2C hook setup and MTU setter APIs. +- Error/null/empty behavior: unset or explicitly zero MTU resolves to the default. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads and may mutate `i2cMax` without taking the note lock. +- Portability/platform constraints: default/max values are compile-time-configurable I2C MTU macros in `note.h`. +- Performance shape: O(1). +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact production source calls through the `_I2CMax` macro alias in `n_i2c.c`: + +- `n_i2c.c:252` caps reset receive chunk length. +- `n_i2c.c:375` caps chunked receive request length. +- `n_i2c.c:400` caps follow-up chunked receive request length. +- `n_i2c.c:487` caps chunked transmit length. + +State writers/readers include `NoteSetFnI2C`, `NoteSetFnI2CDefault`, `NoteSetI2CMtu`, `NoteGetFnI2C`, and `NoteGetI2CMtu`. + +## Role In Callers + +Defines the transport segment size limit used by I2C reset, receive, and transmit paths. + +## Tests Observed + +- `test/src/NoteI2CMax_test.cpp:23-58` covers default return, clamp-to-max, and returning an explicit value. +- `test/src/_i2cNoteReset_test.cpp:381-409` checks reset receive sizing is capped by `NoteI2CMax()`. + +## Graph Links + +- Graph node id: `function:n_hooks.c:994:NoteI2CMax` +- Structured graph: `inventory/dependency-graph.json` +- Verified alias: `_I2CMax` + +## Evidence Gaps + +No unresolved source gaps for this node. Thread-safety of unlocked `i2cMax` mutation is not covered by focused tests. diff --git a/source-research/artifacts/functions/n_i2c_c__L195__i2cNoteReset.md b/source-research/artifacts/functions/n_i2c_c__L195__i2cNoteReset.md new file mode 100644 index 00000000..f9d9d81c --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L195__i2cNoteReset.md @@ -0,0 +1,83 @@ +# `_i2cNoteReset` + +## Status + +Finalized. Source-inspected I2C reset/resync adapter endpoint, dependency macros, dispatch role, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:195` +- Declaration/interface: `n_lib.h:125` +- Public/exported names: none; internal adapter target selected by `_noteSetActiveInterface` +- Macro aliases/wrappers: selected as `notecardReset` for `NOTE_C_INTERFACE_I2C` +- Signature/API shape: `bool _i2cNoteReset(void)` +- Visibility: internal SDK transport function declared in `n_lib.h` +- Ownership/lifetime role: no allocation; drains reset bytes into stack buffers + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:245:_LockI2C` finalized +- `macro:note.h:76:NOTE_C_LOG_DEBUG` finalized +- `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized +- `macro:n_lib.h:244:_DelayMs` finalized +- `macro:n_lib.h:234:_I2CReset` finalized +- `macro:n_lib.h:247:_I2CAddress` finalized +- `macro:note.h:990:NOTE_C_LOG_ERROR` finalized +- `macro:note.h:75:ERRSTR` finalized +- `macro:note.h:78:ERRSTR` finalized +- `macro:n_lib.h:246:_UnlockI2C` finalized +- `function:n_i2c.c:30:_delayIO` finalized +- `macro:n_lib.h:235:_I2CTransmit` finalized in this slice +- `macro:n_lib.h:243:_GetMs` finalized +- `macro:n_lib.h:248:_I2CMax` finalized +- `macro:n_lib.h:236:_I2CReceive` finalized +- `macro:note.h:998:NOTE_C_LOG_WARN` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: I2C hook/address/MTU/timing/logging state through dependencies +- Artifact coverage: implementation, declaration, dispatch assignment, hard-reset dispatcher role, dependency artifacts, and focused tests inspected + +## Behavior + +Locks I2C, logs reset start, delays `CARD_REQUEST_I2C_SEGMENT_DELAY_MS`, then calls `_I2CReset(_I2CAddress())`. If the initial reset fails, it logs, unlocks, and returns false immediately. On success it calls `_delayIO()` and enters a bounded reset-sync retry loop. + +Each retry sends a stack `'\n'` byte through `_I2CTransmit(_I2CAddress(), lf, 1)`. Transmit errors are logged, followed by `CARD_REQUEST_I2C_NACK_WAIT_MS`, and the loop retries. Successful transmit is followed by a segment delay and a drain window lasting `CARD_RESET_DRAIN_MS`, using `_I2CReceive` first with zero length to query available bytes, then with chunk lengths capped by stack buffer size and `_I2CMax()`. During the drain it records whether any bytes were seen and whether any byte was not `'\r'` or `'\n'`; non-control bytes reset the drain timer. + +If the drain saw only carriage returns/newlines, the reset succeeds and exits the retry loop. If it saw other data, the function logs a warning and retries. If it saw nothing, it logs no response, calls `_I2CReset(_I2CAddress())` again, delays on success, and retries; a reset failure breaks the loop. The function unlocks before returning the final `notecardReady` state. + +## Important Boundaries + +- Preconditions and assumptions: active I2C hooks should be configured; `_I2CReset`, `_I2CTransmit`, and `_I2CReceive` define platform success/failure. +- Error/null/empty behavior: initial reset failure returns false immediately; transmit/receive errors keep retrying until retry exhaustion; no drained response triggers an extra reset attempt; non-control drained bytes cause retry; only clean `\r`/`\n` drain marks success. +- Ownership and lifetime: uses stack buffers only; no allocation or ownership transfer. +- Concurrency/global state: holds the I2C lock across the whole reset/resync sequence and unlocks on all observed return paths. +- Portability/platform constraints: reset, transmit, receive, address, MTU, timing, and locking are hook-backed. +- Performance shape: bounded by `CARD_RESET_SYNC_RETRIES`, each with a `CARD_RESET_DRAIN_MS` drain loop plus configured delays. +- Security or parsing constraints: reset success accepts only control-line bytes from the drain; arbitrary data is treated as unsynchronized noise and retried. + +## Direct Call Sites + +Exact source search found production dispatch assignment: + +- `n_hooks.c:226` `_noteSetActiveInterface` assigns `notecardReset = _i2cNoteReset` for `NOTE_C_INTERFACE_I2C`. + +The selected reset function pointer is called by `n_hooks.c:1020` `_noteHardReset`; `_Reset` aliases `_noteHardReset`, and higher-level request/ping reset paths reach I2C reset through that active-interface dispatcher. + +## Role In Callers + +This is the I2C active-interface hard-reset endpoint. It converts the generic reset dispatch into a bus-level reset plus Notecard newline resynchronization sequence. + +## Tests Observed + +Focused `test/src/_i2cNoteReset_test.cpp` covers initial delay, locking/unlocking, reset address forwarding and failure, post-reset delay, newline transmit address/byte/length, transmit failure retry and NACK delay, receive query/drain behavior, chunk-size caps, drain duration, protocol-error retry, no-response retry reset, retry-reset failure, clean CR/LF success, and lock balance. `_noteSetActiveInterface_test.cpp` verifies I2C dispatch pointer installation, and `_noteHardReset_test.cpp` covers the generic reset dispatcher. + +## Graph Links + +- Graph node id: `function:n_i2c.c:195:_i2cNoteReset` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to lock/unlock, reset/transmit/receive/address/MTU/time/delay/logging helpers and macros. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_i2c_c__L30__delayIO.md b/source-research/artifacts/functions/n_i2c_c__L30__delayIO.md new file mode 100644 index 00000000..7701e1a3 --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L30__delayIO.md @@ -0,0 +1,63 @@ +# `_delayIO` + +## Status + +Finalized. Source-inspected I2C pacing helper. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:30` +- Declaration/interface: file-local forward at `n_i2c.c:19`; test-only exposure in `test/include/test_static.h:21` +- Signature/API shape: `void _delayIO(void)` +- Visibility: internal to `n_i2c.c` unless statics are exposed for tests +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:244:_DelayMs` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads global `cardTurboIO` declared in `n_lib.h:170` and defined in `n_helpers.c:61` +- Artifact coverage: source, direct callers, and focused tests inspected + +## Behavior + +If `cardTurboIO` is false, calls `_DelayMs(6)`. If `cardTurboIO` is true, returns without delay. + +## Important Boundaries + +- Preconditions and assumptions: none beyond initialized global hook state for `_DelayMs`. +- Error/null/empty behavior: no return value or error channel; delay hook absence is handled by `NoteDelayMs`. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads global `cardTurboIO` without locking. +- Portability/platform constraints: actual delay remains behind the SDK delay hook. +- Performance shape: O(1) plus optional platform delay. +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact production callers: + +- `n_i2c.c:111` `_i2cNoteTransaction` delays after transmit before querying response length. +- `n_i2c.c:211` `_i2cNoteReset` delays after reset. +- `n_i2c.c:302` `_i2cNoteReset` delays between reset retry attempts. +- `n_i2c.c:490` `_i2cChunkedTransmit` delays before chunk transmit. + +## Role In Callers + +Provides conservative I2C pacing for transport operations unless turbo I/O mode disables that pacing. + +## Tests Observed + +`test/src/_i2cNoteReset_test.cpp` fakes `_delayIO` and checks reset paths that invoke it. No dedicated direct `_delayIO` behavior test was found. + +## Graph Links + +- Graph node id: `function:n_i2c.c:30:_delayIO` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_DelayMs` + +## Evidence Gaps + +No unresolved source gaps for this node. Direct focused tests for `cardTurboIO` true/false behavior were not found. diff --git a/source-research/artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md b/source-research/artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md new file mode 100644 index 00000000..3ca9b672 --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md @@ -0,0 +1,66 @@ +# `_i2cNoteChunkedReceive` + +## Status + +Finalized. Source-inspected I2C chunked receive dispatch wrapper, lock macros, direct dispatch role, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:338` +- Declaration/interface: `n_lib.h:130` +- Public/exported names: none; internal adapter target selected by `_noteSetActiveInterface` +- Macro aliases/wrappers: selected as `notecardChunkedReceive` for `NOTE_C_INTERFACE_I2C` +- Signature/API shape: `const char *_i2cNoteChunkedReceive(uint8_t *buffer, uint32_t *size, bool delay, uint32_t timeoutMs, uint32_t *available)` +- Visibility: internal SDK transport function declared in `n_lib.h` +- Ownership/lifetime role: lock-protected forwarding wrapper; caller owns buffer and in/out counters + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:245:_LockI2C` finalized +- `function:n_i2c.c:365:_i2cChunkedReceive` finalized in this slice +- `macro:n_lib.h:246:_UnlockI2C` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: I2C lock/unlock hook state through `_LockI2C` and `_UnlockI2C` +- Artifact coverage: source, declaration, dispatch assignment, callee artifacts, and focused tests inspected + +## Behavior + +Acquires the I2C lock with `_LockI2C()`, forwards `buffer`, `size`, `delay`, `timeoutMs`, and `available` unchanged to `_i2cChunkedReceive`, releases the lock with `_UnlockI2C()`, and returns the callee error string unchanged. + +## Important Boundaries + +- Preconditions and assumptions: inherits `_i2cChunkedReceive` pointer and buffer requirements; no local validation is performed. +- Error/null/empty behavior: all success/error behavior, `*size`, and `*available` mutations come from `_i2cChunkedReceive`. +- Ownership and lifetime: no allocation or ownership transfer; caller owns buffer and counters. +- Concurrency/global state: provides the I2C critical section around the private receive loop. Unlock runs after the callee returns. +- Portability/platform constraints: lock/unlock and receive behavior remain behind hooks and adapter internals. +- Performance shape: O(1) wrapper plus `_i2cChunkedReceive` receive loop cost. +- Security or parsing constraints: no parsing; inherits newline and buffer-boundary behavior from `_i2cChunkedReceive`. + +## Direct Call Sites + +Exact source search found production dispatch assignment: + +- `n_hooks.c:228` `_noteSetActiveInterface` assigns `notecardChunkedReceive = _i2cNoteChunkedReceive` for `NOTE_C_INTERFACE_I2C`. + +The selected function pointer is called by `n_hooks.c:1074` `_noteChunkedReceive`, which is exposed internally through the finalized `_ChunkedReceive` macro. + +## Role In Callers + +This is the lock-protected I2C adapter endpoint for internal chunked receive dispatch. It lets higher-level binary receive code use `_ChunkedReceive` without knowing whether the active transport is I2C or serial. + +## Tests Observed + +Focused `test/src/_i2cNoteChunkedReceive_test.cpp` fakes `_i2cChunkedReceive`, `NoteLockI2C`, and `NoteUnlockI2C`; it verifies exact argument forwarding, unchanged return/result propagation, and balanced lock/unlock calls. + +## Graph Links + +- Graph node id: `function:n_i2c.c:338:_i2cNoteChunkedReceive` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockI2C`, `_i2cChunkedReceive`, and `_UnlockI2C`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md b/source-research/artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md new file mode 100644 index 00000000..6dce7354 --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md @@ -0,0 +1,75 @@ +# `_i2cChunkedReceive` + +## Status + +Finalized. Source-inspected private I2C chunked receive loop, direct callers, dependency macros, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:365` +- Declaration/interface: `n_lib.h:128` +- Public/exported names: none; internal transport helper +- Macro aliases/wrappers: wrapped by `_i2cNoteChunkedReceive` for lock-protected I2C dispatch +- Signature/API shape: `const char *_i2cChunkedReceive(uint8_t *buffer, uint32_t *size, bool delay, uint32_t timeoutMs, uint32_t *available)` +- Visibility: internal SDK transport function declared in `n_lib.h` +- Ownership/lifetime role: writes into caller-owned buffer and mutates caller-owned `size`/`available` counters + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:243:_GetMs` finalized +- `macro:n_lib.h:248:_I2CMax` finalized +- `macro:n_lib.h:236:_I2CReceive` finalized +- `macro:n_lib.h:247:_I2CAddress` finalized +- `macro:note.h:990:NOTE_C_LOG_ERROR` finalized +- `macro:note.h:998:NOTE_C_LOG_WARN` finalized +- `macro:note.h:75:ERRSTR` finalized +- `macro:note.h:78:ERRSTR` finalized +- `macro:n_lib.h:244:_DelayMs` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: I2C hook state through `_I2CReceive`, effective I2C address through `_I2CAddress`, MTU setting through `_I2CMax`, time/delay hooks through `_GetMs` and `_DelayMs` +- Artifact coverage: source, declarations, direct callers, dependency macro artifacts, and focused tests inspected + +## Behavior + +Receives an I2C reply into a caller buffer by repeatedly calling `_I2CReceive(_I2CAddress(), buffer + received, requested, available)`. The first `requested` value is `min(*available, 0xffff, _I2CMax())`; when the caller starts with `*available == 0`, the first hook call is a zero-byte priming query that asks the Notecard how much data is available. + +After each successful hook call, the function adds the requested byte count to `received`, resets the timeout window to `CARD_INTRA_TRANSACTION_TIMEOUT_SEC * 1000` after any nonzero read, recomputes the next request from the returned `*available`, and detects end-of-packet when the most recent received byte is `'\n'`. A newline is not sufficient by itself when the hook still reports pending bytes: the loop logs a warning and continues draining until `*available == 0`, or until the caller buffer would overflow. + +The loop exits successfully when a complete newline-terminated packet has been read and no bytes remain, or when the next read would exceed the caller buffer. On success and on hook/timeout failure, `*size` is set to the number of bytes actually copied into `buffer`. + +## Important Boundaries + +- Preconditions and assumptions: `buffer`, `size`, and `available` must be valid; there are no null guards. The I2C receive hook is expected to honor the requested byte count and update `*available`. +- Error/null/empty behavior: hook error logs and returns the hook error with partial byte count in `*size`; timeout while waiting for newline returns `ERRSTR("timeout: transaction incomplete {io}", c_iotimeout)` and logs partial-reply detail only if bytes were received. `timeoutMs == 0` disables the timeout check. +- Ownership and lifetime: caller owns the buffer and in/out counters; this function does not allocate or free memory. +- Concurrency/global state: does not lock I2C itself; callers that need a critical section must wrap it, as `_i2cNoteChunkedReceive` and `_i2cNoteTransaction` do. Reads timing, delay, address, MTU, and receive hook state through finalized macros. +- Portability/platform constraints: platform I2C behavior remains behind `_I2CReceive`, `_I2CAddress`, `_I2CMax`, `_GetMs`, and `_DelayMs`. +- Performance shape: O(number of chunks plus idle polls), with each chunk capped by `0xffff` and the configured I2C maximum. Idle polling sleeps 50 ms only when `delay` is true. +- Security or parsing constraints: newline is the only packet terminator check; buffer-full exit is a non-error overflow handoff that leaves remaining byte count in `*available` for the caller to handle. + +## Direct Call Sites + +Exact source search found direct production callers: + +- `n_i2c.c:140` `_i2cNoteTransaction` receives response JSON into an allocated buffer and grows that buffer while `available` remains nonzero. +- `n_i2c.c:341` `_i2cNoteChunkedReceive` lock-protects and forwards the chunked receive operation for I2C dispatch. + +## Role In Callers + +This is the private I2C receive engine shared by JSON transactions and binary chunked receive dispatch. Transaction code relies on the buffer-full success boundary to grow the response buffer and continue draining. The dispatch wrapper relies on this function to preserve the adapter-level chunked receive contract. + +## Tests Observed + +Focused `test/src/_i2cChunkedReceive_test.cpp` covers zero-length caller buffers, receive hook errors, too-small buffers, sufficient buffers with `available` initially zero or nonzero, newline with additional pending data, no-data timeout behavior, partial packet timeout behavior, and whether the `delay` flag controls calls to `NoteDelayMs`. + +## Graph Links + +- Graph node id: `function:n_i2c.c:365:_i2cChunkedReceive` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_GetMs`, `_I2CMax`, `_I2CReceive`, `_I2CAddress`, `NOTE_C_LOG_ERROR`, `NOTE_C_LOG_WARN`, both `ERRSTR` variants, and `_DelayMs`. + +## Evidence Gaps + +No unresolved source gaps for this node. `_i2cNoteTransaction` remains a separate preliminary caller artifact because its transmit, query-length, allocation, and response-growth behavior belong to a broader I2C transaction slice. diff --git a/source-research/artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md b/source-research/artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md new file mode 100644 index 00000000..6ac67c00 --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md @@ -0,0 +1,66 @@ +# `_i2cNoteChunkedTransmit` + +## Status + +Finalized. Source-inspected I2C chunked transmit dispatch wrapper, lock macros, dispatch role, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:456` +- Declaration/interface: `n_lib.h:131` +- Public/exported names: none; internal adapter target selected by `_noteSetActiveInterface` +- Macro aliases/wrappers: selected as `notecardChunkedTransmit` for `NOTE_C_INTERFACE_I2C` +- Signature/API shape: `const char *_i2cNoteChunkedTransmit(const uint8_t *buffer, uint32_t size, bool delay)` +- Visibility: internal SDK transport function declared in `n_lib.h` +- Ownership/lifetime role: lock-protected forwarding wrapper; caller owns transmit buffer + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:245:_LockI2C` finalized +- `function:n_i2c.c:475:_i2cChunkedTransmit` finalized in this slice +- `macro:n_lib.h:246:_UnlockI2C` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: I2C lock/unlock hook state through `_LockI2C` and `_UnlockI2C` +- Artifact coverage: source, declaration, dispatch assignment, callee artifacts, and focused tests inspected + +## Behavior + +Acquires the I2C lock with `_LockI2C()`, forwards `buffer`, `size`, and `delay` unchanged to `_i2cChunkedTransmit`, releases the lock with `_UnlockI2C()`, and returns the callee error string unchanged. + +## Important Boundaries + +- Preconditions and assumptions: inherits `_i2cChunkedTransmit` buffer requirements; no local validation is performed. +- Error/null/empty behavior: all success/error behavior comes from `_i2cChunkedTransmit`. +- Ownership and lifetime: no allocation or ownership transfer; caller owns the buffer. +- Concurrency/global state: provides the I2C critical section around the private transmit loop. Unlock runs after the callee returns. +- Portability/platform constraints: lock/unlock and transmit behavior remain behind hooks and adapter internals. +- Performance shape: O(1) wrapper plus `_i2cChunkedTransmit` loop cost. +- Security or parsing constraints: no parsing; inherits chunk sizing and error-reset behavior from `_i2cChunkedTransmit`. + +## Direct Call Sites + +Exact source search found production dispatch assignment: + +- `n_hooks.c:229` `_noteSetActiveInterface` assigns `notecardChunkedTransmit = _i2cNoteChunkedTransmit` for `NOTE_C_INTERFACE_I2C`. + +The selected function pointer is called by `n_hooks.c:1092` `_noteChunkedTransmit`, which is exposed internally through the `_ChunkedTransmit` macro. + +## Role In Callers + +This is the lock-protected I2C adapter endpoint for internal chunked transmit dispatch. Higher-level binary transmit code reaches it indirectly when I2C is the active interface. + +## Tests Observed + +Focused `test/src/_i2cNoteChunkedTransmit_test.cpp` fakes `_i2cChunkedTransmit`, `NoteLockI2C`, and `NoteUnlockI2C`; it verifies exact argument forwarding, unchanged return propagation, and balanced lock/unlock calls. `_noteSetActiveInterface_test.cpp` verifies I2C dispatch pointer installation. + +## Graph Links + +- Graph node id: `function:n_i2c.c:456:_i2cNoteChunkedTransmit` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_LockI2C`, `_i2cChunkedTransmit`, and `_UnlockI2C`. + +## Evidence Gaps + +No unresolved source gaps for this node. `_noteChunkedTransmit` and `_ChunkedTransmit` remain separate preliminary dispatcher artifacts. diff --git a/source-research/artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md b/source-research/artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md new file mode 100644 index 00000000..e286d712 --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md @@ -0,0 +1,71 @@ +# `_i2cChunkedTransmit` + +## Status + +Finalized. Source-inspected private I2C chunked transmit loop, dependency macros, direct callers, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:475` +- Declaration/interface: `n_lib.h:129` +- Public/exported names: none; internal transport helper +- Macro aliases/wrappers: wrapped by `_i2cNoteChunkedTransmit` for lock-protected I2C dispatch +- Signature/API shape: `const char *_i2cChunkedTransmit(const uint8_t *buffer, uint32_t size, bool delay)` +- Visibility: internal SDK transport function declared in `n_lib.h` +- Ownership/lifetime role: reads caller-owned buffer; no allocation or ownership transfer + +## Dependency Status + +- Project-local dependencies: +- `macro:n_lib.h:248:_I2CMax` finalized +- `function:n_i2c.c:30:_delayIO` finalized +- `macro:n_lib.h:235:_I2CTransmit` finalized in this slice +- `macro:n_lib.h:247:_I2CAddress` finalized +- `macro:n_lib.h:234:_I2CReset` finalized +- `macro:note.h:990:NOTE_C_LOG_ERROR` finalized +- `macro:n_lib.h:244:_DelayMs` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: I2C hook/address/MTU state through macros; pacing state through `_delayIO` and `_DelayMs` +- Artifact coverage: source, declaration, direct callers, dependency artifacts, and focused tests inspected + +## Behavior + +Sends the caller buffer in I2C chunks until `size == 0`. Each chunk length is capped first to `0xffff` for the `_I2CTransmit` `uint16_t` size parameter, then to `_I2CMax()`. With `delay == true`, it calls `_delayIO()` before each chunk, `_DelayMs(CARD_REQUEST_I2C_CHUNK_DELAY_MS)` after each chunk, and after more than `CARD_REQUEST_I2C_SEGMENT_MAX_LEN` bytes in a segment it resets the segment counter and delays `CARD_REQUEST_I2C_SEGMENT_DELAY_MS`. + +On `_I2CTransmit` error, it calls `_I2CReset(_I2CAddress())` best-effort, logs the original error, and returns that original transmit error. A zero-size input returns `NULL` without transmitting or resetting. + +## Important Boundaries + +- Preconditions and assumptions: `buffer` must be valid for `size` bytes when `size > 0`; no null guard is present. +- Error/null/empty behavior: zero size is a no-op success; transmit hook error propagates after best-effort reset and logging. Reset failure is ignored in this path. +- Ownership and lifetime: no allocation; passes pointers into the caller buffer to `_I2CTransmit`. +- Concurrency/global state: does not lock I2C itself; `_i2cNoteTransaction` and `_i2cNoteChunkedTransmit` call it under lock. +- Portability/platform constraints: transmit, reset, address, MTU, and delay behavior remain behind SDK hooks/macros. +- Performance shape: O(number of chunks), with chunk size capped by both `0xffff` and `_I2CMax()`, plus optional pacing delays. +- Security or parsing constraints: no parsing; depends on the platform hook honoring chunk length and not mutating the caller buffer despite legacy non-const hook type. + +## Direct Call Sites + +Exact production callers: + +- `n_i2c.c:96` `_i2cNoteTransaction` sends nonzero JSON requests under the transaction I2C lock with `delay=true`. +- `n_i2c.c:459` `_i2cNoteChunkedTransmit` lock-protects and forwards chunked transmit operations for I2C dispatch. + +## Role In Callers + +This is the private I2C transmit engine shared by JSON transactions and binary chunked transmit dispatch. It is responsible for MTU/chunk/segment pacing and transmit-error reset recovery. + +## Tests Observed + +Focused `test/src/_i2cChunkedTransmit_test.cpp` covers zero-size no-op, transmit error triggering reset, single-chunk transmit, multi-chunk transmit, and success over a segment-sized buffer. The test contains an intended data equality `memcmp` check that is not asserted, so exact emitted byte sequence is not actually verified by that check. + +## Graph Links + +- Graph node id: `function:n_i2c.c:475:_i2cChunkedTransmit` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `_I2CMax`, `_delayIO`, `_I2CTransmit`, `_I2CAddress`, `_I2CReset`, `NOTE_C_LOG_ERROR`, and `_DelayMs`. + +## Evidence Gaps + +No unresolved source gaps for this node. Focused tests do not assert exact byte-for-byte transmit payload equality despite an attempted `memcmp`. diff --git a/source-research/artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md b/source-research/artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md new file mode 100644 index 00000000..a2d37858 --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md @@ -0,0 +1,73 @@ +# `_i2cNoteQueryLength` + +## Status + +Finalized. Source-inspected I2C priming length-query loop, direct caller, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:48` +- Declaration/interface: forward declaration at `n_i2c.c:20`; exposed to tests through `test/include/test_static.h:23` +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: `NOTE_C_STATIC const char * _i2cNoteQueryLength(uint32_t *available, uint32_t timeoutMs)` +- Visibility: internal I2C transport helper +- Ownership/lifetime role: writes available-byte count through caller-owned pointer + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized + - `macro:n_lib.h:244:_DelayMs` finalized + - `macro:n_lib.h:236:_I2CReceive` finalized + - `macro:n_lib.h:247:_I2CAddress` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized +- External/system dependencies: none +- Data/type/global dependencies: active I2C receive/address hooks behind macros; timeout string constant `c_iotimeout` +- Artifact coverage: source, forward declaration, direct caller, protocol shape, and focused tests inspected + +## Behavior + +Creates a local one-byte `dummy_buffer` initialized to zero, then loops while `*available` is zero. The loop captures `startMs = _GetMs()` once before the first receive attempt and delays 50 ms after each unsuccessful iteration through the `for` increment expression. + +Each iteration performs a priming receive: `_I2CReceive(_I2CAddress(), &dummy_buffer, 0, available)`. The receive size is zero, so this call asks the I2C receive hook to report the number of available bytes without copying payload bytes. If `_I2CReceive` returns an error string, the function logs it and returns that same pointer. If `timeoutMs` is nonzero and `_GetMs() - startMs >= timeoutMs`, it logs and returns `ERRSTR("timeout: no response from Notecard {io}", c_iotimeout)`. When `*available` becomes nonzero, the loop exits and the function returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: `available` must be non-null. The active I2C receive hook must honor a zero-length receive as a query for available bytes. +- Error/null/empty behavior: receive errors are propagated unchanged. A zero `timeoutMs` disables the timeout branch; if availability never changes, the loop can run indefinitely. +- Ownership and lifetime: no allocation; mutates caller-owned `*available`. +- Concurrency/global state: uses global I2C hook/address state and platform time/delay hooks through macros. +- Portability/platform constraints: default I2C address comes from `NoteI2CAddress` when no explicit address is configured. Time behavior depends on `_GetMs`; delay cadence depends on `_DelayMs`. +- Performance shape: polling loop with one zero-byte I2C receive per iteration and 50 ms delay between unsuccessful attempts. +- Security or parsing constraints: no payload parsing; this only discovers the available byte count before a later read. + +## Direct Call Sites + +Exact production caller found by source search: + +- `n_i2c.c:117` `_i2cNoteTransaction` initializes `available = 0`, calls `_i2cNoteQueryLength(&available, timeoutMs)`, logs `"failed to query Notecard"` on error, unlocks I2C, and returns the query error. + +## Role In Callers + +`_i2cNoteTransaction` uses this as the first response-read phase after a request transmit and `_delayIO`. A successful return guarantees `available` is nonzero by the loop condition, which lets the caller size its JSON response buffer before chunked receive. + +## Tests Observed + +`test/src/_i2cNoteQueryLength_test.cpp` covers receive hook error propagation, timeout when bytes never become available, immediate availability, and delayed availability after two zero-available receive attempts. `_i2cNoteTransaction_test.cpp` fakes this helper to verify caller behavior for query errors and notes that a successful return with zero available is impossible by the loop condition. + +## Test Coverage Notes + +Focused tests do not assert exact `_I2CReceive` arguments, `timeoutMs == 0`, the 50 ms delay call count, initial `*available != 0` skip behavior, or behavior of a concrete platform I2C hook implementation. + +## Graph Links + +- Graph node id: `function:n_i2c.c:48:_i2cNoteQueryLength` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md b/source-research/artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md new file mode 100644 index 00000000..57912963 --- /dev/null +++ b/source-research/artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md @@ -0,0 +1,75 @@ +# `_i2cNoteTransaction` + +## Status + +Finalized. Source-inspected I2C JSON transaction adapter. + +## Identity + +- Kind: function +- Definition: `n_i2c.c:87` +- Declaration/interface: `n_lib.h:124` +- Public/exported names: `_i2cNoteTransaction` inside the note-c internal transport surface +- Macro aliases/wrappers: no macro alias found; selected dynamically through `notecardTransaction` +- Signature/API shape: `const char *_i2cNoteTransaction(const char *request, size_t reqLen, char **response, uint32_t timeoutMs)` +- Visibility: internal adapter entry point with prototype in `n_lib.h` +- Ownership/lifetime role: sends an optional request over I2C and optionally returns a heap-allocated response buffer through `*response` + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:245:_LockI2C` finalized + - `function:n_i2c.c:475:_i2cChunkedTransmit` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:n_lib.h:246:_UnlockI2C` finalized + - `function:n_i2c.c:30:_delayIO` finalized + - `function:n_i2c.c:48:_i2cNoteQueryLength` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_i2c.c:365:_i2cChunkedReceive` finalized + - `macro:n_lib.h:242:_Free` finalized + - `macro:note.h:76:NOTE_C_LOG_DEBUG` finalized + - `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: reads `ALLOC_CHUNK` and transaction timeout constants; delay behavior is affected by `cardTurboIO` inside `_delayIO`; hook-backed macros reach I2C lock, address, transmit/receive, malloc/free, time/delay, and logging hooks +- Artifact coverage: source-inspected artifact with verified direct call edges + +## Behavior + +Locks the I2C bus for the whole transaction. If `reqLen > 0`, transmits the request through `_i2cChunkedTransmit`; transmit errors are logged, the bus is unlocked, and the error is returned. If `response == NULL`, unlocks and returns success after any request transmit. + +When a response is requested, performs the I2C pre-read delay, asks `_i2cNoteQueryLength` how many bytes are available, allocates an `ALLOC_CHUNK`-rounded buffer plus one null byte, and receives response chunks with `_i2cChunkedReceive` until `available` becomes zero. If later chunks are pending, it grows the buffer in `ALLOC_CHUNK` multiples, copies existing bytes, frees the old buffer, and continues. The response is null-terminated, assigned to `*response`, and must be freed by the caller using the configured free hook. + +## Important Boundaries + +- Preconditions and assumptions: nonzero `reqLen` requires `request` to address at least `reqLen` bytes acceptable to the I2C chunk transmitter; non-null `response` must point to writable `char *` storage. +- Error/null/empty behavior: zero-length requests skip transmit; null `response` skips all receive work; query, allocation, transmit, and receive failures return an error string and leave `*response` unchanged. +- Ownership and lifetime: successful response capture transfers the allocated response buffer to the caller; allocation/growth failure paths free any temporary buffer they own. +- Concurrency/global state: serializes the entire transaction with `_LockI2C`/`_UnlockI2C`. +- Portability/platform constraints: all bus-specific operations remain behind hook-backed I2C macros and chunk helpers. +- Performance shape: one request transmit, one response-length query, then one or more chunk receives; heap growth rounds pending data up to `ALLOC_CHUNK` to reduce fragmentation. +- Security or parsing constraints: returns raw null-terminated response bytes and does not parse or validate JSON. + +## Direct Call Sites + +Exact source search found the prototype in `n_lib.h:124`, the definition in `n_i2c.c:87`, assignment to `notecardTransaction` by `_noteSetActiveInterface` in `n_hooks.c:227`, and focused tests. No direct production call was found. + +## Role In Callers + +`_noteSetActiveInterface` installs this adapter into the active transaction function pointer for `NOTE_C_INTERFACE_I2C`; `_noteJSONTransaction` dispatches to it through `notecardTransaction`. Public request flows therefore reach this function indirectly after I2C has been selected. + +## Tests Observed + +Focused tests in `test/src/_i2cNoteTransaction_test.cpp` cover transmit errors, null response, query errors, initial allocation failure, receive errors, single and multiple chunks, growth allocation failure, zero-length and null requests, unchanged request bytes, and lock/unlock count balance. `_noteSetActiveInterface_test.cpp` covers registration of this function as the I2C transaction target. Gaps: real I2C hooks are not exercised, and tests do not cover every possible hook-side timing behavior. + +## Graph Links + +- Graph node id: `function:n_i2c.c:87:_i2cNoteTransaction` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing call edges to lock/unlock, delay/query, allocation/free, chunk transmit/receive, and logging/error helpers. +- Verified incoming dynamic edges from `_noteSetActiveInterface` (`assigns_function_pointer`) and `_noteJSONTransaction` (`dispatches_via_pointer`). + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L143__NoteMD5Final.md b/source-research/artifacts/functions/n_md5_c__L143__NoteMD5Final.md new file mode 100644 index 00000000..bac5d3ae --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L143__NoteMD5Final.md @@ -0,0 +1,66 @@ +# `NoteMD5Final` + +## Status + +Finalized. Source-inspected MD5 finalization routine. + +## Identity + +- Kind: function +- Definition: `n_md5.c:143` +- Declaration/interface: `note.h:1551` +- Signature/API shape: `void NoteMD5Final(unsigned char *digest, NoteMD5Context *ctx)` +- Visibility: public header declaration, implemented in `n_md5.c` +- Public/exported names: `NoteMD5Final` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_md5.c:201:NoteMD5Transform` finalized + - `function:n_md5.c:48:putu32` finalized +- External/system dependencies: `memset` +- Data/type/global dependencies: mutates caller-provided `digest` and `ctx`; no global state +- Artifact coverage: implementation, declaration, callees, callers, and direct searches inspected + +## Behavior + +Finalizes an MD5 context by computing the current byte count modulo 64, appending `0x80`, zero-padding to the MD5 length field position, and transforming one or two final blocks as needed. It writes the low and high bit counts into `ctx->in + 56` and `ctx->in + 60`, transforms the final block, serializes the four state words into the 16-byte caller digest with `putu32`, and clears the context with `memset(ctx, 0, sizeof(NoteMD5Context))`. + +## Important Boundaries + +- Preconditions and assumptions: caller must pass a writable 16-byte digest buffer and a valid initialized `NoteMD5Context`; no null or bounds checks. +- Error/null/empty behavior: none; invalid pointers are undefined C behavior. +- Ownership and lifetime: writes caller-provided digest, mutates and then clears caller-provided context, allocates nothing. +- Concurrency/global state: no global state; all state is in caller-provided context. +- Portability/platform constraints: uses `putu32` for little-endian serialization. +- Performance shape: O(1), with one or two fixed block transforms. +- Security/parsing constraints: context is cleared after digest output, reducing residual state lifetime. + +## Direct Call Sites + +Exact source search `rg -n "\bNoteMD5Final\b" n_md5.c note.h` found: + +- `note.h:1551` declaration. +- `n_md5.c:15` source comment describing normal use. +- `n_md5.c:143` definition. +- `n_md5.c:297` called by `NoteMD5Hash`. + +## Role In Callers + +`NoteMD5Hash` uses `NoteMD5Final` after `NoteMD5Init` and `NoteMD5Update` to produce a 16-byte digest in the caller-provided output buffer. + +## Tests Observed + +None. No direct focused production-symbol test was inspected for this finalization routine. + +## Graph Links + +- Graph node id: `function:n_md5.c:143:NoteMD5Final` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteMD5Transform` and `putu32`. +- Verified incoming edge from `NoteMD5Hash`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L201__NoteMD5Transform.md b/source-research/artifacts/functions/n_md5_c__L201__NoteMD5Transform.md new file mode 100644 index 00000000..f4314429 --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L201__NoteMD5Transform.md @@ -0,0 +1,68 @@ +# `NoteMD5Transform` + +## Status + +Finalized. Source-inspected MD5 64-byte block transform. + +## Identity + +- Kind: function +- Definition: `n_md5.c:201` +- Declaration/interface: `note.h:1558` +- Signature/API shape: `void NoteMD5Transform(unsigned long buf[4], const unsigned char inraw[64])` +- Visibility: public header declaration, implemented in `n_md5.c` +- Public/exported names: `NoteMD5Transform` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_md5.c:42:getu32` finalized + - `macro:n_md5.c:193:MD5STEP` finalized + - `macro:n_md5.c:187:F1`, `macro:n_md5.c:188:F2`, `macro:n_md5.c:189:F3`, `macro:n_md5.c:190:F4` finalized through source-inspected MD5STEP argument use +- External/system dependencies: primitive integer arithmetic, shifts, bitwise operations +- Data/type/global dependencies: mutates caller-provided `buf[4]`; reads caller-provided 64-byte `inraw` +- Artifact coverage: implementation, declaration, callees, callers, and graph gaps inspected + +## Behavior + +Converts the 64-byte input block into sixteen little-endian words with `getu32`, copies the four current state words into local `a`, `b`, `c`, and `d`, then applies 64 `MD5STEP` operations grouped into four 16-step rounds using `F1`, `F2`, `F3`, and `F4`. After the rounds, it adds the local state back into `buf[0..3]`. + +## Important Boundaries + +- Preconditions and assumptions: caller must provide a writable four-word state buffer and a readable 64-byte input block; no null or bounds checks. +- Error/null/empty behavior: none; invalid pointers are undefined C behavior. +- Ownership and lifetime: borrows `inraw`, mutates `buf`, and allocates nothing. +- Concurrency/global state: no static mutable or global state. +- Portability/platform constraints: input byte order is normalized through `getu32`; `MD5STEP` masks working words to 32 bits to tolerate wider `unsigned long`. +- Performance shape: fixed O(1) transform per 64-byte block. + +## Direct Call Sites + +Exact source search `rg -n "\bNoteMD5Transform\b" n_md5.c note.h` found: + +- `note.h:1558` declaration. +- `n_md5.c:120` called by `NoteMD5Update` for a completed buffered block. +- `n_md5.c:129` called by `NoteMD5Update` for each full 64-byte input block. +- `n_md5.c:163` called by `NoteMD5Final` when padding spans two blocks. +- `n_md5.c:176` called by `NoteMD5Final` for the final padded block. +- `n_md5.c:201` definition. + +## Role In Callers + +`NoteMD5Update` uses this transform to absorb one or more complete 64-byte message blocks. `NoteMD5Final` uses it to process the padded final block(s) and then serializes the final digest. + +## Tests Observed + +None. This transform is covered only through higher-level MD5 use in the current source-research slice. + +## Graph Links + +- Graph node id: `function:n_md5.c:201:NoteMD5Transform` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edges from `NoteMD5Update` and `NoteMD5Final`. +- Verified outgoing edges to `getu32`, `MD5STEP`, and source-repaired macro-use edges to `F1`-`F4`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L292__NoteMD5Hash.md b/source-research/artifacts/functions/n_md5_c__L292__NoteMD5Hash.md new file mode 100644 index 00000000..13b9bd1a --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L292__NoteMD5Hash.md @@ -0,0 +1,67 @@ +# `NoteMD5Hash` + +## Status + +Finalized. Source-inspected one-shot MD5 digest wrapper. + +## Identity + +- Kind: function +- Definition: `n_md5.c:292` +- Declaration/interface: `note.h:1566` +- Signature/API shape: `void NoteMD5Hash(unsigned char* data, unsigned long len, unsigned char *retHash)` +- Visibility: public header declaration, implemented in `n_md5.c` +- Public/exported names: `NoteMD5Hash` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_md5.c:78:NoteMD5Init` finalized + - `function:n_md5.c:95:NoteMD5Update` finalized + - `function:n_md5.c:143:NoteMD5Final` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: stack `NoteMD5Context`; writes caller-provided digest buffer +- Artifact coverage: implementation, declaration, callee chain, caller search, and graph node inspected + +## Behavior + +Allocates a `NoteMD5Context` on the stack, initializes it, updates it once with the full caller-provided input buffer and length, then finalizes into the caller-provided 16-byte digest buffer. + +## Important Boundaries + +- Preconditions and assumptions: caller must pass a writable digest buffer and, when `len > 0`, a readable data buffer; no null or bounds checks. +- Error/null/empty behavior: no explicit error path. +- Ownership and lifetime: borrows input data, writes caller digest, uses only stack context, allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: inherits the portable byte-order and 32-bit-masked behavior of the lower MD5 routines. +- Performance shape: O(len). + +## Direct Call Sites + +Exact source search `rg -n "\bNoteMD5Hash\b|\bNoteMD5HashString\b|\bNoteMD5HashToString\b" -g '!source-research/**' -g '!docs/**'` found: + +- `note.h:1566` declaration. +- `n_md5.c:292` definition. +- `n_md5.c:304` called by `NoteMD5HashString`. + +No production source outside `n_md5.c` calls `NoteMD5Hash` directly in this tree. + +## Role In Callers + +`NoteMD5HashString` uses `NoteMD5Hash` to produce a 16-byte binary digest before converting each byte to hex. + +## Tests Observed + +None. No focused direct `NoteMD5Hash` production-symbol test was inspected. + +## Graph Links + +- Graph node id: `function:n_md5.c:292:NoteMD5Hash` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteMD5Init`, `NoteMD5Update`, and `NoteMD5Final`. +- Verified incoming edge from `NoteMD5HashString`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L301__NoteMD5HashString.md b/source-research/artifacts/functions/n_md5_c__L301__NoteMD5HashString.md new file mode 100644 index 00000000..fbd0e30c --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L301__NoteMD5HashString.md @@ -0,0 +1,70 @@ +# `NoteMD5HashString` + +## Status + +Finalized. Source-inspected MD5 hex-string wrapper used by binary-store helpers. + +## Identity + +- Kind: function +- Definition: `n_md5.c:301` +- Declaration/interface: `note.h:1575` +- Signature/API shape: `void NoteMD5HashString(unsigned char *data, unsigned long len, char *strbuf, unsigned long buflen)` +- Visibility: public header declaration, implemented in `n_md5.c` +- Public/exported names: `NoteMD5HashString` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_md5.c:292:NoteMD5Hash` finalized + - `function:n_md5.c:57:n_htoa8` finalized + - `function:n_str.c:31:strlcpy` finalized as repository fallback/platform boundary +- External/system dependencies: none directly +- Data/type/global dependencies: stack `hash[16]` and `hashstr[48]`; writes caller-provided string buffer +- Artifact coverage: implementation, declaration, callee chain, direct callers, focused binary-store test evidence, and graph node inspected + +## Behavior + +Computes the binary MD5 digest for `data`/`len` with `NoteMD5Hash`, then converts each of the 16 digest bytes into two lowercase hex characters using `n_htoa8(&hashstr[i * 2])`. The conversion helper writes an intermediate NUL after each byte pair, but the next loop iteration overwrites that NUL with the next hex byte pair. The final pair leaves a NUL at index 32, and the explicit assignment at index 33 adds an extra NUL. The wrapper copies the generated hex string to `strbuf` with `strlcpy(strbuf, hashstr, buflen)`. + +## Important Boundaries + +- Preconditions and assumptions: caller must pass a writable output string buffer; when `len > 0`, `data` must be readable; lower MD5/hash helpers do not null-check inputs. +- Error/null/empty behavior: no error return. If `buflen` is too small, `strlcpy` truncates while preserving NUL termination when `buflen > 0`. +- Ownership and lifetime: borrows input data, writes caller output buffer, uses only stack scratch buffers, allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: uses repository `strlcpy` fallback only on platforms that need it; otherwise platform `strlcpy` supplies the copy operation. +- Performance shape: O(len) for hashing plus fixed 16-byte hex conversion. + +## Direct Call Sites + +Exact source search `rg -n "\bNoteMD5Hash\b|\bNoteMD5HashString\b|\bNoteMD5HashToString\b" -g '!source-research/**' -g '!docs/**'` found: + +- `note.h:1575` declaration. +- `n_md5.c:301` definition. +- `n_helpers.c:469` called by `NoteBinaryStoreReceive` to compare the decoded payload with the Notecard `"status"` hash. +- `n_helpers.c:615` called by `NoteBinaryStoreTransmit` to send a hash status with `"card.binary.put"`. + +## Role In Callers + +`NoteBinaryStoreReceive` uses the string to validate received binary payload integrity against the response `"status"` field. `NoteBinaryStoreTransmit` uses it as the `"status"` field when initializing a binary put transaction. + +## Tests Observed + +Focused binary-store tests were inspected: + +- `test/src/NoteBinaryStoreReceive_test.cpp:66`-`test/src/NoteBinaryStoreReceive_test.cpp:69` uses `NoteMD5HashString` to build the fake `"status"` response. +- `test/src/NoteBinaryStoreReceive_test.cpp:177`-`test/src/NoteBinaryStoreReceive_test.cpp:190` asserts an error when the computed MD5 hash does not match `"status"`. +- `test/src/NoteBinaryStoreReceive_test.cpp:214`-`test/src/NoteBinaryStoreReceive_test.cpp:222` asserts success when the computed MD5 matches. + +## Graph Links + +- Graph node id: `function:n_md5.c:301:NoteMD5HashString` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `NoteMD5Hash`, `n_htoa8`, and `strlcpy`. +- Verified incoming edges from `NoteBinaryStoreReceive` and `NoteBinaryStoreTransmit`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md b/source-research/artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md new file mode 100644 index 00000000..d24d5820 --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md @@ -0,0 +1,61 @@ +# `NoteMD5HashToString` + +## Status + +Finalized. Source-inspected public MD5 digest-to-hex helper. + +## Identity + +- Kind: function +- Definition: `n_md5.c:314` +- Declaration/interface: `note.h:1583` +- Public/exported names: `NoteMD5HashToString` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteMD5HashToString(unsigned char *hash, char *strbuf, unsigned long buflen)` +- Visibility: public note-c helper implemented in `n_md5.c` +- Ownership/lifetime role: reads caller-provided 16-byte digest and writes a caller-provided string buffer + +## Dependency Status + +- Project-local dependencies: + - `function:n_md5.c:57:n_htoa8` finalized + - `function:n_str.c:31:strlcpy` finalized +- External/system dependencies: platform `strlcpy` may be used when available; repository provides fallback when needed +- Data/type/global dependencies: constants `NOTE_MD5_HASH_SIZE` and `NOTE_MD5_HASH_STRING_SIZE` +- Artifact coverage: source-inspected artifact + +## Behavior + +Initializes a stack `hashstr` buffer, loops over exactly `NOTE_MD5_HASH_SIZE` digest bytes, converts each byte to two lowercase hex characters with `n_htoa8`, then copies the generated hex string into `strbuf` using `strlcpy(strbuf, hashstr, buflen)`. + +## Important Boundaries + +- Preconditions and assumptions: `hash` must point to at least 16 readable bytes; `strbuf` must be valid for `buflen` bytes. +- Error/null/empty behavior: no null checks and no error return. `strlcpy` truncation is silent because the return value is ignored. +- Ownership and lifetime: caller owns both input digest and output buffer. +- Concurrency/global state: no global state. +- Portability/platform constraints: fallback/system `strlcpy` selection is build-dependent. +- Performance shape: fixed 16-byte conversion plus bounded string copy. +- Security or parsing constraints: callers need at least `NOTE_MD5_HASH_STRING_SIZE` bytes for a full hex string plus terminator. + +## Direct Call Sites + +Production-only exact search found only the public declaration in `note.h:1583` and the definition in `n_md5.c:314`. HITL support calls it from `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h`. No production repository caller, wrapper, or fake was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream callers that already have a binary MD5 digest and need its hex string representation. + +## Tests Observed + +No focused unit test for this helper was found. HITL support uses it for expected MD5 string comparison/emission, but not as standalone conversion coverage. Gaps include truncation, null handling, and direct expected-string conversion tests. + +## Graph Links + +- Graph node id: `function:n_md5.c:314:NoteMD5HashToString` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `n_htoa8` and `strlcpy`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L42__getu32.md b/source-research/artifacts/functions/n_md5_c__L42__getu32.md new file mode 100644 index 00000000..5cd5d02a --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L42__getu32.md @@ -0,0 +1,61 @@ +# `getu32` + +## Status + +Finalized. Source-inspected leaf helper for MD5 little-endian word loading. + +## Identity + +- Kind: function +- Definition: `n_md5.c:42` +- Prototype: `static unsigned long getu32 (const unsigned char *addr);` at `n_md5.c:34` +- Visibility: file-local static helper +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: `static unsigned long getu32(const unsigned char *addr)` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive byte indexing, shifts, and bitwise OR +- Data/type/global dependencies: none +- Artifact coverage: source implementation, prototype, graph node, and direct caller search inspected + +## Behavior + +Reads four bytes from `addr[0..3]` and returns a little-endian 32-bit word widened to `unsigned long`. The code builds the word by shifting `addr[3]`, OR-ing in `addr[2]`, `addr[1]`, and `addr[0]`, so it is independent of host byte order and does not require `unsigned long` to be exactly 32 bits. + +## Important Boundaries + +- Preconditions and assumptions: caller must provide at least four readable bytes; there is no null or bounds check. +- Error/null/empty behavior: none; invalid pointers are undefined C behavior. +- Ownership and lifetime: borrows the input pointer and allocates nothing. +- Concurrency/global state: no static mutable or global state. +- Portability/platform constraints: explicitly byte-oriented little-endian decode. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search `rg -n "\bgetu32\b" n_md5.c note.h` found: + +- `n_md5.c:34` static prototype. +- `n_md5.c:42` definition. +- `n_md5.c:208` called by `NoteMD5Transform` while unpacking 16 input words. + +## Role In Callers + +`NoteMD5Transform` uses `getu32(inraw + 4 * i)` to convert each 4-byte chunk of a 64-byte MD5 block into the working `in[16]` array before running the MD5 rounds. + +## Tests Observed + +None. This static helper has no direct focused production-symbol test inspected. + +## Graph Links + +- Graph node id: `function:n_md5.c:42:getu32` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edge: `function:n_md5.c:201:NoteMD5Transform` -> `function:n_md5.c:42:getu32` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L48__putu32.md b/source-research/artifacts/functions/n_md5_c__L48__putu32.md new file mode 100644 index 00000000..32a5f0d9 --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L48__putu32.md @@ -0,0 +1,62 @@ +# `putu32` + +## Status + +Finalized. Source-inspected leaf helper for MD5 little-endian word storage. + +## Identity + +- Kind: function +- Definition: `n_md5.c:48` +- Prototype: `static void putu32 (unsigned long data, unsigned char *addr);` at `n_md5.c:33` +- Visibility: file-local static helper +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: `static void putu32(unsigned long data, unsigned char *addr)` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive byte stores and right shifts +- Data/type/global dependencies: none +- Artifact coverage: source implementation, prototype, graph node, and direct caller search inspected + +## Behavior + +Stores the low 32 bits of `data` to `addr[0..3]` in little-endian byte order. Each byte is assigned by truncating `data`, `data >> 8`, `data >> 16`, and `data >> 24` to `unsigned char`. + +## Important Boundaries + +- Preconditions and assumptions: caller must provide at least four writable bytes; there is no null or bounds check. +- Error/null/empty behavior: none; invalid pointers are undefined C behavior. +- Ownership and lifetime: mutates caller-provided output memory and allocates nothing. +- Concurrency/global state: no static mutable or global state. +- Portability/platform constraints: explicitly byte-oriented little-endian encode. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search `rg -n "\bputu32\b" n_md5.c note.h` found: + +- `n_md5.c:33` static prototype. +- `n_md5.c:48` definition. +- `n_md5.c:173`, `n_md5.c:174` write the bit counts into the MD5 final block. +- `n_md5.c:177`-`n_md5.c:180` write the four state words into the caller-provided digest. + +## Role In Callers + +`NoteMD5Final` uses `putu32` for both padding metadata and final digest serialization. + +## Tests Observed + +None. This static helper has no direct focused production-symbol test inspected. + +## Graph Links + +- Graph node id: `function:n_md5.c:48:putu32` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edge: `function:n_md5.c:143:NoteMD5Final` -> `function:n_md5.c:48:putu32` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L57__n_htoa8.md b/source-research/artifacts/functions/n_md5_c__L57__n_htoa8.md new file mode 100644 index 00000000..2220b2fa --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L57__n_htoa8.md @@ -0,0 +1,62 @@ +# `n_htoa8` + +## Status + +Finalized. Source-inspected byte-to-hex helper. + +## Identity + +- Kind: function +- Definition: `n_md5.c:57` +- Forward declaration: `n_md5.c:32` +- Signature/API shape: `void n_htoa8(unsigned char n, unsigned char *p)` +- Visibility: implementation-local helper in `n_md5.c`; not declared in `note.h` +- Public/exported names: none intended, despite non-static definition +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive shifts, masks, comparisons, and byte stores +- Data/type/global dependencies: writes caller-provided output pointer; no global state +- Artifact coverage: implementation, forward declaration, callers, and graph node inspected + +## Behavior + +Converts one byte to two lowercase hexadecimal characters. It extracts the high nibble with `(n >> 4) & 0xf`, writes either `'a' + nibble - 10` or `'0' + nibble`, repeats the same conversion for the low nibble, then writes a trailing NUL byte. + +## Important Boundaries + +- Preconditions and assumptions: caller must provide at least three writable bytes at `p`; no null or bounds checks. +- Error/null/empty behavior: none; invalid pointers are undefined C behavior. +- Ownership and lifetime: mutates caller-provided buffer and allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: ASCII digit/letter assumptions match the SDK's C string usage. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search `rg -n "\bn_htoa8\b" n_md5.c` found: + +- `n_md5.c:32` forward declaration. +- `n_md5.c:57` definition. +- `n_md5.c:307` called by `NoteMD5HashString`. +- `n_md5.c:318` called by `NoteMD5HashToString`. + +## Role In Callers + +`NoteMD5HashString` and `NoteMD5HashToString` call this helper once for each of the 16 MD5 digest bytes, writing two hex characters per byte. + +## Tests Observed + +None. This helper has no direct focused production-symbol test inspected. + +## Graph Links + +- Graph node id: `function:n_md5.c:57:n_htoa8` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edges from `NoteMD5HashString` and `NoteMD5HashToString`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L78__NoteMD5Init.md b/source-research/artifacts/functions/n_md5_c__L78__NoteMD5Init.md new file mode 100644 index 00000000..1ef5292e --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L78__NoteMD5Init.md @@ -0,0 +1,62 @@ +# `NoteMD5Init` + +## Status + +Finalized. Source-inspected MD5 context initializer. + +## Identity + +- Kind: function +- Definition: `n_md5.c:78` +- Declaration/interface: `note.h:1536` +- Signature/API shape: `void NoteMD5Init(NoteMD5Context *ctx)` +- Visibility: public header declaration, implemented in `n_md5.c` +- Public/exported names: `NoteMD5Init` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `memset` +- Data/type/global dependencies: mutates caller-provided `NoteMD5Context`; no global state +- Artifact coverage: implementation, declaration, caller search, and graph node inspected + +## Behavior + +Zeros the entire caller-provided `NoteMD5Context`, then initializes the four MD5 state words to the standard constants `0x67452301`, `0xefcdab89`, `0x98badcfe`, and `0x10325476`, and initializes both bit counters to zero. + +## Important Boundaries + +- Preconditions and assumptions: caller must pass a writable `NoteMD5Context *`; no null check. +- Error/null/empty behavior: none; invalid pointer is undefined C behavior. +- Ownership and lifetime: initializes caller-owned context and allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: uses unsigned long state words per this implementation's portability strategy. +- Performance shape: O(1). + +## Direct Call Sites + +Exact source search `rg -n "\bNoteMD5Init\b" n_md5.c note.h` found: + +- `note.h:1536` declaration. +- `n_md5.c:15` source comment describing normal use. +- `n_md5.c:78` definition. +- `n_md5.c:295` called by `NoteMD5Hash`. + +## Role In Callers + +`NoteMD5Hash` calls `NoteMD5Init` on a stack `NoteMD5Context` before updating it with input data and finalizing the digest. + +## Tests Observed + +None. No direct focused production-symbol test was inspected for this initializer. + +## Graph Links + +- Graph node id: `function:n_md5.c:78:NoteMD5Init` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edge from `NoteMD5Hash`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_md5_c__L95__NoteMD5Update.md b/source-research/artifacts/functions/n_md5_c__L95__NoteMD5Update.md new file mode 100644 index 00000000..bca8312e --- /dev/null +++ b/source-research/artifacts/functions/n_md5_c__L95__NoteMD5Update.md @@ -0,0 +1,65 @@ +# `NoteMD5Update` + +## Status + +Finalized. Source-inspected MD5 streaming update routine. + +## Identity + +- Kind: function +- Definition: `n_md5.c:95` +- Declaration/interface: `note.h:1544` +- Signature/API shape: `void NoteMD5Update(NoteMD5Context *ctx, unsigned char const *buf, unsigned long len)` +- Visibility: public header declaration, implemented in `n_md5.c` +- Public/exported names: `NoteMD5Update` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_md5.c:201:NoteMD5Transform` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: mutates caller-provided `NoteMD5Context`; reads caller-provided input buffer; no global state +- Artifact coverage: implementation, declaration, callee, caller search, and graph node inspected + +## Behavior + +Adds `len * 8` bits to the context bit counters, carrying from `bits[0]` to `bits[1]` and adding high bits from `len >> 29`. If a partial block already exists in `ctx->in`, it fills that block and transforms it when complete. It then transforms every full 64-byte block from the input, and finally copies any trailing bytes into `ctx->in` for a later update or finalization. + +## Important Boundaries + +- Preconditions and assumptions: caller must pass a valid initialized context and, when `len > 0`, a readable buffer of at least `len` bytes; no null or bounds checks. +- Error/null/empty behavior: no explicit error path; `len == 0` falls through to a zero-length trailing `memcpy`. +- Ownership and lifetime: borrows input, mutates caller-owned context, allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: maintains 64-bit bit count across two 32-bit words and delegates byte-order handling to `NoteMD5Transform`. +- Performance shape: O(len) with fixed 64-byte block processing. + +## Direct Call Sites + +Exact source search `rg -n "\bNoteMD5Update\b" n_md5.c note.h` found: + +- `note.h:1544` declaration. +- `n_md5.c:15` source comment describing normal use. +- `n_md5.c:95` definition. +- `n_md5.c:198` source comment describing transform relationship. +- `n_md5.c:296` called by `NoteMD5Hash`. + +## Role In Callers + +`NoteMD5Hash` calls `NoteMD5Update` once with the full input buffer after initializing a stack context and before finalizing into the output digest. + +## Tests Observed + +None. No direct focused production-symbol test was inspected for this update routine. + +## Graph Links + +- Graph node id: `function:n_md5.c:95:NoteMD5Update` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NoteMD5Transform`. +- Verified incoming edge from `NoteMD5Hash`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_printf_c__L35__NoteDebugf.md b/source-research/artifacts/functions/n_printf_c__L35__NoteDebugf.md new file mode 100644 index 00000000..a0fdaabd --- /dev/null +++ b/source-research/artifacts/functions/n_printf_c__L35__NoteDebugf.md @@ -0,0 +1,60 @@ +# `NoteDebugf` + +## Status + +Finalized. Source-inspected public formatted debug-output helper. + +## Identity + +- Kind: function +- Definition: `n_printf.c:35` +- Declaration/interface: `note.h:951` +- Public/exported names: `NoteDebugf` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteDebugf(const char *format, ...)` +- Visibility: public note-c debug API implemented in `n_printf.c` +- Ownership/lifetime role: formats caller-provided arguments into a stack buffer and passes it to the configured debug hook + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:308:_noteIsDebugOutputActive` finalized +- External/system dependencies: libc `va_start`, `vsnprintf`, and `va_end`; dynamic dispatch through `hookDebugOutput` +- Data/type/global dependencies: reads global `hookDebugOutput`; compiled out under `NOTE_NODEBUG` +- Artifact coverage: source-inspected artifact + +## Behavior + +When `NOTE_NODEBUG` is not defined, checks whether debug output is active. If so, formats the variadic arguments into a local `char line[256]` with `vsnprintf` and calls `hookDebugOutput(line)`. When no debug hook is active, it returns without formatting. In `NOTE_NODEBUG` builds it casts `format` to void and does nothing. + +## Important Boundaries + +- Preconditions and assumptions: `format` must be valid for `vsnprintf` when a debug hook is active, and variadic arguments must match it. +- Error/null/empty behavior: no return value or error path. Hook return value is ignored. Null/invalid `format` is not guarded when formatting occurs. +- Ownership and lifetime: formatted output is stack-backed and valid only during the hook call. +- Concurrency/global state: reads/calls `hookDebugOutput` without locking; another thread can mutate the hook concurrently. +- Portability/platform constraints: `NOTE_NODEBUG` makes this API a no-op; otherwise it depends on libc `vsnprintf`. +- Performance shape: fixed 256-byte stack buffer and one formatting pass only when debug output is active. +- Security or parsing constraints: output is silently truncated to 255 characters plus terminator. + +## Direct Call Sites + +Production-only exact search found only the public declaration in `note.h:951` and the definition in `n_printf.c:35`. HITL support calls it from `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h`. No production repository caller, wrapper, or alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream/debug code that wants printf-style debug output through the configured hook. + +## Tests Observed + +Focused tests in `test/src/NoteDebugf_test.cpp` cover hook set, formatted output, hook unset, and `NOTE_NODEBUG` behavior. Gaps include truncation, null format, hook mutation races, and hook failure return handling. + +## Graph Links + +- Graph node id: `function:n_printf.c:35:NoteDebugf` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `_noteIsDebugOutputActive`; dynamic call to `hookDebugOutput` is source-inspected. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_printf_c__L60__NotePrintf.md b/source-research/artifacts/functions/n_printf_c__L60__NotePrintf.md new file mode 100644 index 00000000..57a541d8 --- /dev/null +++ b/source-research/artifacts/functions/n_printf_c__L60__NotePrintf.md @@ -0,0 +1,60 @@ +# `NotePrintf` + +## Status + +Finalized. Source-inspected public printf-style print wrapper. + +## Identity + +- Kind: function +- Definition: `n_printf.c:60` +- Declaration/interface: `note.h:1134` +- Signature/API shape: `bool NotePrintf(const char *format, ...)` +- Visibility: public SDK API declared in `note.h`; definition is excluded when `NOTE_LOMEM` is defined +- Public/exported names: `NotePrintf` +- Macro aliases/wrappers: none +- Ownership/lifetime role: formats into a stack buffer and routes through `NotePrint` + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:847:NotePrint` finalized in this slice +- External/system dependencies: `va_start`, `va_end`, `vsnprintf` +- Data/type/global dependencies: 256-byte stack buffer +- Artifact coverage: generated artifact exists + +## Behavior + +When `NOTE_LOMEM` is not defined, formats variadic arguments into a local `char line[256]` with `vsnprintf`, then returns `NotePrint(line)`. + +## Important Boundaries + +- Preconditions and assumptions: `format` must be a valid printf-style format string for the supplied arguments. +- Error/null/empty behavior: does not inspect `vsnprintf` return value; truncation or formatting errors still pass the stack buffer to `NotePrint`. +- Ownership and lifetime: no heap allocation; formatted text is stack-local and consumed synchronously by `NotePrint`. +- Concurrency/global state: inherits debug hook and request/transport behavior from `NotePrint`. +- Portability/platform constraints: unavailable at the implementation level under `NOTE_LOMEM`; uses standard `vsnprintf`. +- Performance shape: bounded 256-byte formatting plus one `NotePrint` call. +- Security or parsing constraints: printf-format correctness is caller responsibility. + +## Direct Call Sites + +No in-repository production call sites were found beyond the definition and public declaration in `note.h:1134`. + +## Role In Callers + +This is the public formatted-output wrapper over `NotePrint`. + +## Tests Observed + +Focused `test/src/NotePrintf_test.cpp` fakes `NotePrint` and verifies printf-style formatting for `"Hello %s!"`. + +## Graph Links + +- Graph node id: `function:n_printf.c:60:NotePrintf` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edge to `NotePrint`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L1019__crc32.md b/source-research/artifacts/functions/n_request_c__L1019__crc32.md new file mode 100644 index 00000000..f9f3469f --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L1019__crc32.md @@ -0,0 +1,54 @@ +# `_crc32` + +## Status + +Finalized. Source-inspected half-byte CRC32 helper. + +## Identity + +- Kind: function +- Definition: `n_request.c:1019` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `int32_t _crc32(const void *data, size_t length)` +- Visibility: internal to `n_request.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: static 16-entry CRC lookup table `lut` + +## Behavior + +Initializes CRC to all ones, then processes each input byte in two half-byte lookup steps using `lut`, and returns the bitwise inverse of the final CRC. + +## Important Boundaries + +- Preconditions and assumptions: `data` must be non-null when `length > 0`. +- Error/null/empty behavior: no error channel; zero length returns the CRC of an empty buffer. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads immutable lookup table only. +- Performance shape: O(length) with two table lookups per byte. +- Portability/platform constraints: uses fixed-width unsigned arithmetic. + +## Direct Call Sites + +Exact source search found `_crcAdd` and `_crcError` as production callers. + +## Role In Callers + +`_crcAdd` computes the CRC inserted into outgoing request JSON. `_crcError` recomputes the CRC after stripping the response CRC field. + +## Tests Observed + +`_crcAdd_test.cpp` and `_crcError_test.cpp` exercise this helper indirectly through request CRC insertion and response CRC validation. + +## Graph Links + +- Graph node id: `function:n_request.c:1019:_crc32` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L1047__crcAdd.md b/source-research/artifacts/functions/n_request_c__L1047__crcAdd.md new file mode 100644 index 00000000..bd525594 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L1047__crcAdd.md @@ -0,0 +1,58 @@ +# `_crcAdd` + +## Status + +Finalized. Source-inspected outgoing request CRC inserter. + +## Identity + +- Kind: function +- Definition: `n_request.c:1047` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `char *_crcAdd(char *json, uint16_t seqno)` +- Visibility: internal to `n_request.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_hooks.c:544:_n_htoa32` finalized + - `function:n_cjson.c:728:_n_htoa16` finalized + - `function:n_request.c:1019:_crc32` finalized +- External/system dependencies: `strlen`, `memchr`, `memcpy` +- Data/type/global dependencies: `CRC_FIELD_LENGTH` + +## Behavior + +Rejects JSON shorter than `{}` or not ending in `}`. Allocates a new buffer of input length plus CRC field length, copies the input without its final brace, inserts either a space for objects with no colon or a comma otherwise, appends `"crc":"SSSS:CCCCCCCC"}` using uppercase hex sequence and CRC32 of the original input bytes including the original closing brace, NUL-terminates, and returns the new buffer. Allocation failure returns NULL. + +## Important Boundaries + +- Preconditions and assumptions: `json` must be non-null and NUL-terminated. +- Error/null/empty behavior: invalid tail/length or allocation failure returns NULL. +- Ownership and lifetime: caller owns the returned buffer and retains ownership of the input. +- Concurrency/global state: allocator behavior follows note-c hooks. +- Performance shape: linear in JSON length for length, field detection, copy, and CRC. +- Portability/platform constraints: compiled only when CRC code is included outside low-memory builds. + +## Direct Call Sites + +Exact source search found `_noteTransactionShouldLock` as the production caller in the request-only CRC branch. + +## Role In Callers + +CRC add failure is nonfatal; the transaction proceeds without response CRC enforcement for that request. + +## Tests Observed + +`_crcAdd_test.cpp` covers allocation failure, empty string, invalid tail, empty-object formatting, and normal request formatting. `NoteTransaction_test.cpp` covers CRC-add orchestration. + +## Graph Links + +- Graph node id: `function:n_request.c:1047:_crcAdd` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L1113__crcError.md b/source-research/artifacts/functions/n_request_c__L1113__crcError.md new file mode 100644 index 00000000..c631c930 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L1113__crcError.md @@ -0,0 +1,56 @@ +# `_crcError` + +## Status + +Finalized. Source-inspected response CRC validator and stripper. + +## Identity + +- Kind: function +- Definition: `n_request.c:1113` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `bool _crcError(char *json, uint16_t shouldBeSeqno)` +- Visibility: internal to `n_request.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:975:_n_atoh` finalized + - `function:n_request.c:1019:_crc32` finalized +- External/system dependencies: `strlen`, `strstr`, `memcmp` +- Data/type/global dependencies: `notecardFirmwareSupportsCrc`, CRC field constants + +## Behavior + +Trims trailing bytes `<= ' '`, rejects invalid object shape as no CRC error, bypasses CRC checks when the raw JSON contains the exact error-field marker, and treats missing CRC as an error only after CRC support has previously been observed. When a tail CRC field is present, sets CRC support true, parses sequence and CRC, mutates the buffer by replacing the CRC field with `}` and NUL, recomputes CRC32 over the stripped JSON, and returns true on sequence or CRC mismatch. + +## Important Boundaries + +- Preconditions and assumptions: `json` must be non-null and mutable. +- Error/null/empty behavior: malformed JSON shape and explicit error responses return false. +- Ownership and lifetime: mutates caller-owned response buffer in place to remove the CRC field. +- Concurrency/global state: reads/writes `notecardFirmwareSupportsCrc`. +- Performance shape: linear in response length plus CRC over stripped JSON. +- Portability/platform constraints: compiled only when CRC code is included outside low-memory builds. + +## Direct Call Sites + +Exact source search found `_noteTransactionShouldLock` as the production caller when `_crcAdd` succeeded. + +## Role In Callers + +A true result makes the transaction free the response, record a CRC I/O error, delay, and retry. + +## Tests Observed + +`_crcError_test.cpp` covers support negotiation, malformed JSON, exact error bypass, CRC mismatch, sequence mismatch, matching CRC, absent CRC after support, and trailing CRLF. `NoteTransaction_test.cpp` covers transaction CRC retry paths. + +## Graph Links + +- Graph node id: `function:n_request.c:1113:_crcError` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md b/source-research/artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md new file mode 100644 index 00000000..ab09bbb9 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md @@ -0,0 +1,58 @@ +# `_noteTransaction_calculateTimeoutMs` + +## Status + +Finalized. Source-inspected transaction timeout calculator. + +## Identity + +- Kind: function +- Definition: `n_request.c:117` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `uint32_t _noteTransaction_calculateTimeoutMs(J *req, bool isReq)` +- Visibility: internal to `n_request.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson_helpers.c:194:JContainsString` finalized + - `function:n_cjson_helpers.c:19:JIsPresent` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized after log-macro pass +- External/system dependencies: none +- Data/type/global dependencies: `CARD_INTER_TRANSACTION_TIMEOUT_SEC` + +## Behavior + +Starts from `(CARD_INTER_TRANSACTION_TIMEOUT_SEC - 1) * 1000`, examines either the `req` or `cmd` field depending on `isReq`, and only honors request-provided timeout fields for APIs containing `note.add` or `web.`. `milliseconds` takes precedence; otherwise `seconds` is multiplied by 1000. The function always adds 1000 ms before returning, making the default effectively `CARD_INTER_TRANSACTION_TIMEOUT_SEC * 1000`. + +## Important Boundaries + +- Preconditions and assumptions: null or malformed request fields follow the JSON helper defaults. +- Error/null/empty behavior: absent/irrelevant timeout fields return default timeout. +- Ownership and lifetime: no allocation. +- Concurrency/global state: log output depends on configured debug hook/log level. +- Performance shape: object lookups and substring checks only. +- Portability/platform constraints: arithmetic uses `uint32_t`. + +## Direct Call Sites + +Exact source search found `_noteTransactionShouldLock` as the production caller. + +## Role In Callers + +The transaction loop uses this timeout for `_Transaction` calls. + +## Tests Observed + +`_noteTransaction_calculateTimeoutMs_test.cpp` covers `hub.set`, `note.add`, `web.post`, request/command selection, seconds, milliseconds, both fields, and defaults. + +## Graph Links + +- Graph node id: `function:n_request.c:117:_noteTransaction_calculateTimeoutMs` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md b/source-research/artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md new file mode 100644 index 00000000..9e5c0859 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md @@ -0,0 +1,62 @@ +# `NoteSuspendTransactionDebug` + +## Status + +Final. Behavior, public declaration, wrapper role, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_request.c:153` +- Declaration/interface: `note.h:408` +- Public/exported names: `NoteSuspendTransactionDebug` (`NOTE_C_DEPRECATED`) +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSuspendTransactionDebug(void)` +- Visibility: deprecated public SDK API +- Ownership/lifetime role: no ownership; public wrapper around transaction-debug suppression counter + +## Dependency Status + +- Project-local dependencies: +- `function:n_request.c:88:_noteSuspendTransactionDebug` (calls, verified) +- External/system dependencies: none +- Data/type/global dependencies: indirectly increments file-local `suppressShowTransactions` +- Artifact coverage: generated artifact exists + +## Behavior + +Deprecated public wrapper that calls `_noteSuspendTransactionDebug()` exactly once. It suppresses transaction/error trace output by incrementing the shared suppression counter. + +## Important Boundaries + +- Preconditions and assumptions: callers should later call `NoteResumeTransactionDebug()` to balance suppression +- Error/null/empty behavior: no arguments, no return value, and no validation +- Ownership and lifetime: no allocations or ownership transfer +- Concurrency/global state: mutates shared suppression state through the internal helper without taking a lock +- Portability/platform constraints: none +- Performance shape: constant-time wrapper call +- Security or parsing constraints: no parsing; affects diagnostic output visibility only + +## Direct Call Sites + +No production library callers found outside the definition and public declaration. Focused/unit-test callers: + +- `test/src/NoteSuspendTransactionDebug_test.cpp:31` +- `test/src/NoteTransaction_test.cpp:237` + +## Role In Callers + +Application-facing compatibility wrapper for suppressing transaction debug output. + +## Tests Observed + +`test/src/NoteSuspendTransactionDebug_test.cpp` fakes `_noteSuspendTransactionDebug()` and verifies this public API calls it once. + +## Graph Links + +- Graph node id: `function:n_request.c:153:NoteSuspendTransactionDebug` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No direct test covers unbalanced public suspend/resume nesting; behavior follows the finalized internal helper. diff --git a/source-research/artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md b/source-research/artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md new file mode 100644 index 00000000..7f70d94c --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md @@ -0,0 +1,62 @@ +# `NoteResumeTransactionDebug` + +## Status + +Final. Behavior, public declaration, wrapper role, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_request.c:161` +- Declaration/interface: `note.h:409` +- Public/exported names: `NoteResumeTransactionDebug` (`NOTE_C_DEPRECATED`) +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteResumeTransactionDebug(void)` +- Visibility: deprecated public SDK API +- Ownership/lifetime role: no ownership; public wrapper around transaction-debug suppression counter + +## Dependency Status + +- Project-local dependencies: +- `function:n_request.c:80:_noteResumeTransactionDebug` (calls, verified) +- External/system dependencies: none +- Data/type/global dependencies: indirectly decrements file-local `suppressShowTransactions` +- Artifact coverage: generated artifact exists + +## Behavior + +Deprecated public wrapper that calls `_noteResumeTransactionDebug()` exactly once. It resumes transaction/error trace output by decrementing the shared suppression counter. + +## Important Boundaries + +- Preconditions and assumptions: intended to balance a previous `NoteSuspendTransactionDebug()` call +- Error/null/empty behavior: no arguments, no return value, and no validation +- Ownership and lifetime: no allocations or ownership transfer +- Concurrency/global state: mutates shared suppression state through the internal helper without taking a lock +- Portability/platform constraints: none +- Performance shape: constant-time wrapper call +- Security or parsing constraints: no parsing; affects diagnostic output visibility only + +## Direct Call Sites + +No production library callers found outside the definition and public declaration. Focused/unit-test callers: + +- `test/src/NoteResumeTransactionDebug_test.cpp:31` +- `test/src/NoteTransaction_test.cpp:241` + +## Role In Callers + +Application-facing compatibility wrapper for resuming transaction debug output after public suppression. + +## Tests Observed + +`test/src/NoteResumeTransactionDebug_test.cpp` fakes `_noteResumeTransactionDebug()` and verifies this public API calls it once. + +## Graph Links + +- Graph node id: `function:n_request.c:161:NoteResumeTransactionDebug` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No direct test covers unbalanced public suspend/resume nesting; behavior follows the finalized internal helper. diff --git a/source-research/artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md b/source-research/artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md new file mode 100644 index 00000000..53255b04 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md @@ -0,0 +1,59 @@ +# `NoteSetRequestTimeout` + +## Status + +Finalized. Source-inspected public request-timeout override setter. + +## Identity + +- Kind: function +- Definition: `n_request.c:166` +- Declaration/interface: `note.h:470` +- Public/exported names: `NoteSetRequestTimeout` +- Macro aliases/wrappers: none found +- Signature/API shape: `uint32_t NoteSetRequestTimeout(uint32_t overrideSecs)` +- Visibility: public note-c request API implemented in `n_request.c` +- Ownership/lifetime role: updates process-global transaction timeout override state + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads effective `CARD_INTER_TRANSACTION_TIMEOUT_SEC`; writes `cardTransactionTimeoutOverrideSecs` +- Artifact coverage: source-inspected artifact + +## Behavior + +Computes the previous effective request timeout through `CARD_INTER_TRANSACTION_TIMEOUT_SEC`, stores `overrideSecs` in `cardTransactionTimeoutOverrideSecs`, and returns the previous effective value. Passing zero stores zero, which makes the macro fall back to the 30-second default. + +## Important Boundaries + +- Preconditions and assumptions: scalar input only. +- Error/null/empty behavior: no error return; zero is a valid value that restores default macro behavior. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: unsynchronized read/write of `cardTransactionTimeoutOverrideSecs`. +- Portability/platform constraints: keeps timeout policy in portable core state rather than platform adapters. +- Performance shape: one macro read, one scalar write, one return. +- Security or parsing constraints: no validation or range check; large values are stored as-is and downstream conversions own overflow implications. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:470`, the definition in `n_request.c:166`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public API for downstream code to override the effective request timeout used by transaction paths that reference `CARD_INTER_TRANSACTION_TIMEOUT_SEC`. + +## Tests Observed + +Focused tests in `test/src/NoteSetRequestTimeout_test.cpp` cover default-to-custom, custom-to-custom, restoring zero/default behavior, `UINT32_MAX`, and one-second values. Gaps: no concurrency coverage and no downstream timeout multiplication overflow assertion. + +## Graph Links + +- Graph node id: `function:n_request.c:166:NoteSetRequestTimeout` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L173__NoteNewRequest.md b/source-research/artifacts/functions/n_request_c__L173__NoteNewRequest.md new file mode 100644 index 00000000..4e2d3e7e --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L173__NoteNewRequest.md @@ -0,0 +1,57 @@ +# `NoteNewRequest` + +## Status + +Finalized. Source-inspected public request JSON constructor. + +## Identity + +- Kind: function +- Definition: `n_request.c:173` +- Declaration/interface: `note.h:336` +- Signature/API shape: `J *NoteNewRequest(const char *request)` +- Visibility: public SDK function declared in `note.h` +- Public/exported names: `NoteNewRequest` +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2450:JCreateObject` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads global string constant `c_req` declared in `n_lib.h` and defined as `"req"` in `n_const.c` + +## Behavior + +Creates a JSON object with `JCreateObject`. If object allocation succeeds, adds a string field named by `c_req` (`"req"`) with value `request` via `JAddStringToObject`. Returns the request object pointer whether or not field attachment succeeds; returns `NULL` only when `JCreateObject` returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: normal callers pass a non-null Notecard request name; null request values cause `JAddStringToObject` to return `NULL` while `NoteNewRequest` still returns the empty object. +- Error/null/empty behavior: allocation failure returns `NULL`; field-add failure is not separately reported or cleaned up. +- Ownership and lifetime: caller owns the returned request object and must eventually delete it with `JDelete` or pass it to a request API that takes ownership. +- Concurrency/global state: no mutable global state. +- Performance shape: O(length of request string). + +## Direct Call Sites + +Exact source search found broad production fanout in high-level helper APIs (`n_helpers.c`), request orchestration helpers/tests in `n_request.c`, and integration/HITL code. In the active receive path, `NoteBinaryStoreReceive` calls `NoteNewRequest("card.binary.get")` before adding offset/length fields and sending the request through `_noteTransactionShouldLock`. + +## Role In Callers + +`NoteBinaryStoreReceive` treats a null return as request allocation failure and aborts the binary receive initialization path. Other helpers use the returned object as the base request document for Notecard APIs. + +## Tests Observed + +Focused `test/src/NoteNewRequest_test.cpp` verifies `NULL` is returned when `JCreateObject` fails and a non-null request object is returned when object allocation succeeds. Many helper tests fake `NoteNewRequest` to exercise allocation-failure behavior in callers. + +## Graph Links + +- Graph node id: `function:n_request.c:173:NoteNewRequest` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges to `JCreateObject` and `JAddStringToObject`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L182__NoteNewCommand.md b/source-research/artifacts/functions/n_request_c__L182__NoteNewCommand.md new file mode 100644 index 00000000..61f15621 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L182__NoteNewCommand.md @@ -0,0 +1,66 @@ +# `NoteNewCommand` + +## Status + +Finalized. Source-inspected public command JSON constructor, direct caller, constants, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_request.c:182` +- Declaration/interface: `note.h:349` +- Public/exported names: `NoteNewCommand` +- Macro aliases/wrappers: none +- Signature/API shape: `J *NoteNewCommand(const char *request)` +- Visibility: public SDK function declared in `note.h` +- Ownership/lifetime role: returns a caller-owned JSON command object + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2450:JCreateObject` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads global string constant `c_cmd`, declared in `n_lib.h` and defined as `"cmd"` in `n_const.c` +- Artifact coverage: source, declaration, constants, direct caller, and focused tests inspected + +## Behavior + +Creates a JSON object with `JCreateObject`. If object allocation succeeds, adds a string field named by `c_cmd` (`"cmd"`) with value `request` using `JAddStringToObject`. Returns the object pointer whether or not field attachment succeeds; returns `NULL` only when `JCreateObject` returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: normal callers pass a non-null Notecard command name. A null `request` value causes `JAddStringToObject` to fail while this function still returns the empty object. +- Error/null/empty behavior: object allocation failure returns `NULL`; field-add failure is not separately reported or cleaned up. +- Ownership and lifetime: caller owns the returned object and must delete it or pass it to a request API that consumes ownership. +- Concurrency/global state: reads immutable global command-key string pointer. +- Portability/platform constraints: portable JSON construction; allocation behavior follows JSON allocator hooks. +- Performance shape: O(length of command string) on the successful field-add path. +- Security or parsing constraints: no validation of command name syntax. + +## Direct Call Sites + +Exact production caller found by source search: + +- `n_helpers.c:1765` `NoteSleep` creates a `card.attn` command so the Notecard does not send a response while the host goes to sleep. + +## Role In Callers + +`NoteSleep` treats a null command object as failure and skips `NoteRequest`. It then attaches optional payload/mode fields to the command before sending it through the bool request wrapper. + +## Tests Observed + +`test/src/NoteNewCommand_test.cpp` covers `JCreateObject` failure returning `NULL` and `JCreateObject` success returning a non-null command object. `test/src/NoteSleep_test.cpp` fakes `NoteNewCommand` to cover caller behavior when command construction fails or succeeds. + +## Test Coverage Notes + +Focused constructor tests do not assert that the returned object contains a `"cmd"` field, do not cover null command names, and do not simulate `JAddStringToObject` failure after object allocation. + +## Graph Links + +- Graph node id: `function:n_request.c:182:NoteNewCommand` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L191__NoteRequest.md b/source-research/artifacts/functions/n_request_c__L191__NoteRequest.md new file mode 100644 index 00000000..077ec07d --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L191__NoteRequest.md @@ -0,0 +1,61 @@ +# `NoteRequest` + +## Status + +Finalized. Source-inspected public boolean request wrapper. + +## Identity + +- Kind: function +- Definition: `n_request.c:191` +- Declaration/interface: `note.h:442` +- Signature/API shape: `bool NoteRequest(J *req)` +- Visibility: public SDK API +- Public/exported names: `NoteRequest` +- Macro aliases/wrappers: none +- Ownership/lifetime role: consumes and deletes the request through `NoteRequestResponse`; deletes the response before returning + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:220:NoteRequestResponse` finalized + - `function:n_cjson_helpers.c:152:JIsNullString` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: response field constant `c_err` + +## Behavior + +Calls `NoteRequestResponse(req)`. If the response is `NULL`, returns false. Otherwise it computes success as `JIsNullString(rsp, c_err)`, deletes the response with `JDelete(rsp)`, and returns the boolean result. + +Because `NoteRequestResponse` consumes a non-null request, this function always frees the request object for normal public use. Because this wrapper deletes the response before returning, callers cannot inspect response fields. For command requests, the underlying transaction path returns an empty object after successful send, so this wrapper reports true when no `"err"` field is present. + +## Important Boundaries + +- Preconditions and assumptions: caller passes either NULL or an owning request/command `J *`. +- Error/null/empty behavior: null request maps to false through `NoteRequestResponse`; null response maps to false; non-empty `"err"` maps to false; absent or empty `"err"` maps to true. +- Ownership and lifetime: consumes request ownership and response ownership; no returned object. +- Concurrency/global state: delegates transaction locking, transport, reset, and retry behavior to the request/transaction stack. +- Performance shape: one request/response transaction plus response deletion. +- Portability/platform constraints: all platform behavior stays behind the transaction and hook layers. + +## Direct Call Sites + +Exact source search found production callers in `n_helpers.c` bool-style helpers, including auxiliary serial flow control, printing, environment defaults, location mode/set/clear, sleep, factory reset, product/serial/upload/sync configuration, template/add/route helpers, and contact setting. The public header documents the command caveat for command-style requests. + +## Role In Callers + +Provides the standard fire-and-report-success API for helpers that only need to know whether a request or command completed without a response error. Callers build a request object, add fields, and transfer ownership to this function. + +## Tests Observed + +`test/src/NoteRequest_test.cpp` covers null request, null transaction response, response with `"err"`, and successful response. Numerous helper tests fake `NoteRequest` to verify caller-specific request construction and bool propagation. + +## Graph Links + +- Graph node id: `function:n_request.c:191:NoteRequest` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md b/source-research/artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md new file mode 100644 index 00000000..2ecca1f1 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md @@ -0,0 +1,62 @@ +# `NoteRequestWithRetry` + +## Status + +Finalized. Source-inspected public boolean retry request wrapper. + +## Identity + +- Kind: function +- Definition: `n_request.c:205` +- Declaration/interface: `note.h:459` +- Public/exported names: `NoteRequestWithRetry` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NoteRequestWithRetry(J *req, uint32_t timeoutSeconds)` +- Visibility: public note-c request API implemented in `n_request.c` +- Ownership/lifetime role: delegates ownership of the request to `NoteRequestResponseWithRetry` and consumes/frees the returned response + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:234:NoteRequestResponseWithRetry` finalized + - `function:n_cjson_helpers.c:152:JIsNullString` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `c_err`; delegated retry path uses transaction and timing state through `NoteRequestResponseWithRetry` +- Artifact coverage: source-inspected artifact with verified direct call edges + +## Behavior + +Calls `NoteRequestResponseWithRetry(req, timeoutSeconds)`. If that returns `NULL`, returns false. Otherwise checks whether the response has no effective `"err"` string using `JIsNullString`, deletes the response with `JDelete`, and returns the success boolean. + +## Important Boundaries + +- Preconditions and assumptions: `req` is either null or a valid mutable `J *` request object accepted by `NoteRequestResponseWithRetry`. +- Error/null/empty behavior: null request or exhausted retry path yields `NULL` from the delegate and false here; non-null response with an `"err"` string yields false. +- Ownership and lifetime: the delegated function always frees the request object; this wrapper always deletes any response it receives. +- Concurrency/global state: no local locking; transaction locking and retry timing are delegated. +- Portability/platform constraints: wrapper is transport-independent. +- Performance shape: one delegated retry operation plus one response error check. +- Security or parsing constraints: trusts the delegated response object and checks only the `"err"` field. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:459`, the definition in `n_request.c:205`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public convenience API for downstream code that only needs success/failure and not the response body. + +## Tests Observed + +Focused tests in `test/src/NoteRequestWithRetry_test.cpp` cover null requests, timeout after null responses, timeout after I/O error responses, millisecond counter overflow, non-I/O error response, first-try success, and success after retry. Gap: the wrapper test does not directly assert the not-supported no-retry branch, which is covered in the delegated response-with-retry behavior. + +## Graph Links + +- Graph node id: `function:n_request.c:205:NoteRequestWithRetry` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing call edges to `NoteRequestResponseWithRetry`, `JIsNullString`, and `JDelete`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L220__NoteRequestResponse.md b/source-research/artifacts/functions/n_request_c__L220__NoteRequestResponse.md new file mode 100644 index 00000000..cd65110f --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L220__NoteRequestResponse.md @@ -0,0 +1,62 @@ +# `NoteRequestResponse` + +## Status + +Finalized. Source-inspected public consuming request/response wrapper. + +## Identity + +- Kind: function +- Definition: `n_request.c:220` +- Declaration/interface: `note.h:363` +- Signature/API shape: `J *NoteRequestResponse(J *req)` +- Visibility: public SDK API +- Public/exported names: `NoteRequestResponse` +- Macro aliases/wrappers: none +- Ownership/lifetime role: consumes and deletes the request object; returns caller-owned response object when non-null + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:411:NoteTransaction` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: request/response JSON type `J` + +## Behavior + +Returns `NULL` immediately when `req` is `NULL`. This supports inline usage such as `NoteRequestResponse(NoteNewRequest("..."))` when allocation fails. + +For a non-null request, it calls `NoteTransaction(req)`, stores the returned response pointer, deletes the request with `JDelete(req)`, and returns the response pointer. It does not inspect the response for `"err"` and does not delete the response; callers must use `NoteResponseError` or equivalent and then release the returned response when finished. + +## Important Boundaries + +- Preconditions and assumptions: caller passes either NULL or an owning `J *` request. +- Error/null/empty behavior: null request returns NULL without calling `NoteTransaction`; null transaction result is returned after the request is deleted. +- Ownership and lifetime: always consumes a non-null request object; transfers response ownership to caller. +- Concurrency/global state: delegates transaction locking and transport behavior to `NoteTransaction`. +- Performance shape: one transaction plus JSON request deletion. +- Portability/platform constraints: all platform I/O remains behind `NoteTransaction` and hook layers. + +## Direct Call Sites + +Exact source search found production callers in `NoteRequest`, `NoteRequestResponseWithRetry`, and many high-level helpers in `n_helpers.c`, including binary-store length/reset/transmit handshake paths, time/location/status/env/service helpers, sleep/payload retrieval, route sending, voltage/temperature/contact helpers, and debug-sync polling. + +Tests and HITL helpers also fake or call this API in focused helper coverage. + +## Role In Callers + +This is the standard public convenience wrapper for request APIs that need a response body and want the request object freed automatically. Bool-style helper wrappers use `NoteRequest` when they only need success/failure. Higher-level helpers use this function, copy or detach fields from the returned response, and then call `NoteDeleteResponse`/`JDelete`. + +## Tests Observed + +`NoteRequestResponse_test.cpp` covers null request, null `NoteTransaction` response, valid response, and exactly one `NoteTransaction` call for non-null requests. `NoteRequest_test.cpp` covers the bool wrapper over this API. Numerous focused helper tests fake `NoteRequestResponse` to exercise caller-specific response handling. + +## Graph Links + +- Graph node id: `function:n_request.c:220:NoteRequestResponse` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md b/source-research/artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md new file mode 100644 index 00000000..8bd6b413 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md @@ -0,0 +1,70 @@ +# `NoteRequestResponseWithRetry` + +## Status + +Finalized. Source-inspected public retrying request/response wrapper, finalized direct callees, direct caller, timing/error boundaries, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_request.c:234` +- Declaration/interface: `note.h:382` +- Public/exported names: `NoteRequestResponseWithRetry` +- Macro aliases/wrappers: none +- Signature/API shape: `J *NoteRequestResponseWithRetry(J *req, uint32_t timeoutSeconds)` +- Visibility: public SDK API declared in `note.h` +- Ownership/lifetime role: consumes and deletes non-null `req`; returns caller-owned response pointer when non-null + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized + - `function:n_request.c:411:NoteTransaction` finalized + - `function:n_cjson_helpers.c:194:JContainsString` finalized + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads string constants `c_err`, `c_ioerr`, and `c_unsupported`; `_GetMs` crosses the timing hook boundary through `NoteGetMs` +- Artifact coverage: source, declaration, direct caller, finalized callees, constants, timing/error boundaries, and focused tests inspected + +## Behavior + +Returns `NULL` immediately when `req` is `NULL`. For non-null requests, records `startMs = _GetMs()` and computes `timeoutMs = timeoutSeconds * 1000`, then loops calling `NoteTransaction(req)`. It retries when the response is `NULL`, or when the response `"err"` field contains `c_ioerr` (`"{io}"`) and does not contain `c_unsupported` (`"{not-supported}"`). Retryable non-null responses are deleted and cleared before the next attempt. The loop exits on a non-retryable response, successful response, or elapsed timeout. After the loop, it deletes the original request with `JDelete(req)` and returns the final response pointer, which may be `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: caller passes either `NULL` or an owning request object. `timeoutSeconds` is multiplied by 1000 in `uint32_t` without overflow checks. A zero timeout still permits one transaction attempt before the elapsed-time check can break the loop. +- Error/null/empty behavior: null request returns `NULL` and is not deleted; null transaction responses are retryable until timeout; retryable non-null error responses are deleted internally; non-`{io}` errors and responses containing both `{io}` and `{not-supported}` are returned to the caller without retry. +- Ownership and lifetime: consumes/deletes the original non-null request exactly once after the retry loop. Returned non-null response ownership transfers to the caller. Intermediate retry responses do not escape. +- Concurrency/global state: transaction orchestration, locking, reset, transport, and parser behavior are inherited from finalized `NoteTransaction`; timing comes from the global `NoteGetMs` hook through `_GetMs`. +- Portability/platform constraints: platform timing and transport behavior remain behind hook/transaction layers. +- Performance shape: O(number of attempts * transaction cost); no delay is inserted directly in this wrapper between retries. +- Security or parsing constraints: retry classification is substring-based on the response error string. + +## Direct Call Sites + +Exact source search found one direct production caller: + +- `n_request.c:207` `NoteRequestWithRetry` calls this wrapper, returns false on `NULL`, otherwise checks the final response error field with `JIsNullString`, deletes the response, and returns a bool. + +Public/test references also include the declaration in `note.h:382`, a `note.h` see-also reference, focused unit tests, and HITL tests under `test/hitl/card.binary`. + +## Role In Callers + +`NoteRequestWithRetry` relies on this function for the retry loop and request ownership transfer, then reduces the returned response to a bool and consumes the response. This makes `NoteRequestWithRetry` the bool-returning public companion to this response-returning retry API. + +## Tests Observed + +`test/src/NoteRequestResponseWithRetry_test.cpp` fakes `NoteTransaction` and `NoteGetMs` to cover null request, null response retry until timeout, retry on `{io}`, no retry on `{not-supported}`, no retry on a combined `{io} {not-supported}` error, no retry on other errors, success on the first attempt, and success on the second attempt. HITL card-binary tests invoke this API for integration-style request retries. + +## Test Coverage Notes + +Focused tests do not assert deletion of the original request, deletion of intermediate retry responses, overflow of `timeoutSeconds * 1000`, or behavior when the timing hook is unset/non-advancing with a nonzero timeout. + +## Graph Links + +- Graph node id: `function:n_request.c:234:NoteRequestResponseWithRetry` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md b/source-research/artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md new file mode 100644 index 00000000..492c2b62 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md @@ -0,0 +1,80 @@ +# `NoteRequestResponseJSON` + +## Status + +Finalized. Source-inspected public raw JSON request/response API. + +## Identity + +- Kind: function +- Definition: `n_request.c:279` +- Declaration/interface: `note.h:407` +- Public/exported names: `NoteRequestResponseJSON` +- Macro aliases/wrappers: none found +- Signature/API shape: `char * NoteRequestResponseJSON(const char *reqJSON)` +- Visibility: public note-c request API implemented in `n_request.c` +- Ownership/lifetime role: sends newline-delimited JSON text and returns a heap-allocated raw JSON response string when one is available + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:228:_TransactionStart` finalized + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:note.h:998:NOTE_C_LOG_WARN` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_cjson.c:976:JParse` finalized + - `macro:n_lib.h:242:_Free` finalized + - `function:n_cjson_helpers.c:19:JIsPresent` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `macro:n_lib.h:238:_Transaction` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `function:n_request.c:55:_errDoc` finalized + - `function:n_cjson.c:1051:JPrintUnformatted` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized + - `macro:n_lib.h:229:_TransactionStop` finalized +- External/system dependencies: `strchr`, `strlen`, `strstr`, `memcpy` +- Data/type/global dependencies: reads `CARD_INTER_TRANSACTION_TIMEOUT_SEC`, `c_bad`, `c_mem`, and JSON field constants; uses transaction, lock, allocation/free, and logging hooks through finalized macros +- Artifact coverage: source-inspected artifact with verified direct call edges + +## Behavior + +Returns `NULL` immediately for null input or failed transaction start. Otherwise starts a transaction envelope, locks the Notecard, and walks newline-delimited request text manually. If a segment lacks a newline, it allocates a copy with an appended newline for backward compatibility; empty non-newline input logs a bad-request error and exits. + +Segments containing the text `"cmd":` are parsed to confirm a top-level command. Commands are sent through `_Transaction` with a null response pointer, then the scanner advances to the next newline-delimited segment. Non-command requests are sent through `_Transaction` with `&rspJSON` and terminate the scan after the response or error handling. If a request transaction returns an error string, the function logs it, attempts to parse the request ID, builds a JSON error document with `_errDoc`, prints it, appends a newline into a newly allocated response buffer, and returns that buffer when allocation succeeds. + +The function unlocks the Notecard and stops the transaction envelope before returning. Successful response buffers, including synthesized error JSON buffers, are owned by the caller and must be freed through the configured free hook. + +## Important Boundaries + +- Preconditions and assumptions: `reqJSON` must point to readable C-string data; command detection begins with a textual `"cmd":` screen, then verifies top-level command presence by parsing. +- Error/null/empty behavior: null input, failed transaction start, empty malformed input, allocation failure, malformed command JSON, and synthesized-error allocation/print failure all return `NULL`. +- Ownership and lifetime: temporary newline-appended input copies are freed before return; returned `rspJSON` is caller-owned; transaction-owned response allocation is delegated to the active transport. +- Concurrency/global state: wraps the full scan in `_LockNote`/`_UnlockNote` after `_TransactionStart`; always calls `_TransactionStop` for paths after successful start. +- Portability/platform constraints: raw transport remains behind `_Transaction`; this API is portable JSON framing and ownership logic. +- Performance shape: scans linearly across command pipelines; malformed non-newline segments allocate one copied buffer; error synthesis parses and prints JSON. +- Security or parsing constraints: command classification avoids parsing unless `"cmd":` appears, so nested `"cmd"` text in non-command requests is parsed and rejected as a top-level command. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:407`, the definition in `n_request.c:279`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public raw-JSON API for downstream code that already has request JSON text rather than `J *` objects. + +## Tests Observed + +Focused tests in `test/src/NoteRequestResponseJSON_test.cpp` cover null and empty inputs, newline and non-newline commands, command pipelines, missing newline allocation/free behavior, malformed command JSON, requests versus nested command fields, transaction lock/start/stop behavior, transaction-start failure, transaction errors converted to JSON with ID/source, request parse failure during error synthesis, `_errDoc` allocation failure, print failure, and response allocation failure. Gaps: tests do not assert lock/stop counts for every malformed path and use fakes for the transport boundary. + +## Graph Links + +- Graph node id: `function:n_request.c:279:NoteRequestResponseJSON` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing call edges to transaction envelope macros, Notecard lock macros, transaction dispatch, allocation/free, JSON parse/print helpers, error document creation, and logging helpers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L411__NoteTransaction.md b/source-research/artifacts/functions/n_request_c__L411__NoteTransaction.md new file mode 100644 index 00000000..d61e8b9b --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L411__NoteTransaction.md @@ -0,0 +1,59 @@ +# `NoteTransaction` + +## Status + +Finalized. Source-inspected public non-consuming transaction wrapper. + +## Identity + +- Kind: function +- Definition: `n_request.c:411` +- Declaration/interface: `note.h:500` +- Signature/API shape: `J *NoteTransaction(J *req)` +- Visibility: public SDK API +- Public/exported names: `NoteTransaction` +- Macro aliases/wrappers: none +- Ownership/lifetime role: caller retains ownership of `req`; returned `J *` is caller-owned when non-null + +## Dependency Status + +- Project-local dependencies: + - `function:n_request.c:428:_noteTransactionShouldLock` finalized +- External/system dependencies: none +- Data/type/global dependencies: transaction, locking, reset, CRC, logging, and active-interface state are owned by `_noteTransactionShouldLock` + +## Behavior + +Delegates directly to `_noteTransactionShouldLock(req, true)`. + +Passing `lockNotecard=true` makes the transaction orchestrator acquire and release the Notecard lock for the call. All request validation, JSON serialization, user-agent handling, reset handling, transport dispatch, retry classification, response parsing, command empty-object behavior, CRC behavior, and error-document behavior are inherited from the finalized orchestrator. + +## Important Boundaries + +- Preconditions and assumptions: caller owns `req`; the wrapper does not delete it. +- Error/null/empty behavior: null, malformed, transport, reset, parse, and response-error behavior follows `_noteTransactionShouldLock`. +- Ownership and lifetime: does not consume `req`; transfers returned response ownership to the caller. +- Concurrency/global state: uses the orchestrator with `lockNotecard=true`. +- Performance shape: O(transaction orchestration), inherited from `_noteTransactionShouldLock`. +- Portability/platform constraints: transport, reset, timing, lock, allocation, and debug behavior stay behind note-c hooks and orchestrator dependencies. + +## Direct Call Sites + +Exact source search found production callers in `NoteRequestResponse` and `NoteRequestResponseWithRetry`. Tests call `NoteTransaction` directly in `NoteTransaction_test.cpp` and timeout/CRC-focused tests. + +## Role In Callers + +`NoteRequestResponse` uses this wrapper then deletes the request object itself. `NoteRequestResponseWithRetry` repeatedly calls it until success, non-retryable response, or timeout, deleting retry responses between attempts. + +## Tests Observed + +`NoteTransaction_test.cpp` directly exercises the public wrapper over the full orchestrator behavior, including null/malformed requests, transaction start, lock handling, reset, retry, invalid JSON, CRC, user-agent, command, and heartbeat branches. `_noteTransaction_calculateTimeoutMs_test.cpp` invokes `NoteTransaction` while focused on timeout selection. + +## Graph Links + +- Graph node id: `function:n_request.c:411:NoteTransaction` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md b/source-research/artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md new file mode 100644 index 00000000..61288df4 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md @@ -0,0 +1,92 @@ +# `_noteTransactionShouldLock` + +## Status + +Finalized. Source-inspected Notecard JSON transaction orchestrator. + +## Identity + +- Kind: function +- Definition: `n_request.c:428` +- Declaration/interface: `n_lib.h:123` +- Signature/API shape: `J *_noteTransactionShouldLock(J *req, bool lockNotecard)` +- Visibility: internal request helper shared with binary helpers and tests +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `function:n_cjson.c:1051:JPrintUnformatted` finalized + - `function:n_cjson_helpers.c:27:JGetString` finalized + - `macro:n_lib.h:242:_Free` finalized + - `function:n_cjson_helpers.c:122:JGetInt` finalized + - `macro:n_lib.h:228:_TransactionStart` finalized + - `function:n_request.c:55:_errDoc` finalized + - `function:n_cjson_helpers.c:19:JIsPresent` finalized + - `function:n_cjson_helpers.c:194:JContainsString` finalized + - `function:n_ua.c:95:NoteUserAgent` finalized + - `function:n_cjson.c:1866:JAddItemToObject` finalized + - `macro:note.h:76:NOTE_C_LOG_DEBUG` finalized + - `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized + - `function:n_request.c:117:_noteTransaction_calculateTimeoutMs` finalized + - `function:n_request.c:1047:_crcAdd` finalized + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:237:_Reset` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized + - `macro:n_lib.h:229:_TransactionStop` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `macro:note.h:1006:NOTE_C_LOG_INFO` finalized + - `macro:n_lib.h:238:_Transaction` finalized + - `function:n_request.c:940:NoteErrorContains` finalized + - `macro:note.h:998:NOTE_C_LOG_WARN` finalized + - `macro:n_lib.h:244:_DelayMs` finalized + - `function:n_request.c:1113:_crcError` finalized + - `function:n_cjson.c:976:JParse` finalized + - `macro:n_lib.h:259:_DebugWithLevel` finalized + - `function:n_hooks.c:643:_noteHeartbeat` finalized + - `function:n_request.c:756:NoteResetRequired` finalized + - `function:n_cjson.c:2450:JCreateObject` finalized +- External/system dependencies: `strlen` +- Data/type/global dependencies: `resetRequired`, `seqNo`, `suppressShowTransactions`, retry constants, error string constants + +## Behavior + +Rejects null requests, serializes the input `J` with `JPrintUnformatted`, and requires exactly one of `req` or `cmd`. It captures the request ID, starts the transaction, optionally adds a user-agent body for `hub.set` with product when enabled, computes the transaction timeout, optionally locks the Notecard, captures the current CRC sequence number as `transactionSeqNo`, optionally adds request CRC in non-low-memory request paths, and performs any queued interface reset before I/O. + +The retry loop logs outgoing JSON when transaction display is not suppressed, temporarily replaces the serialized buffer terminator with `\n`, calls `_Transaction` with no response for commands or a response pointer for requests, restores the terminator, and classifies outcomes. Retryable cases include I/O transaction errors, null responses, CRC errors, invalid JSON responses, and response `{io}` errors excluding `{not-supported}`. `{bad-bin}` errors are not retried. Heartbeat responses free the raw response, do not count against retry count, and may invoke `_noteHeartbeat` when the callback feature is enabled. + +After the loop it frees the serialized request and increments global `seqNo` when CRC support is compiled. The response CRC check uses the captured `transactionSeqNo`, so retry validation stays tied to the request CRC even though `seqNo` advances before the Notecard lock is released. The function then returns an empty object for commands, returns `_errDoc` on request error after marking reset required, or logs/frees raw response JSON and returns the parsed response object on success. + +## Important Boundaries + +- Preconditions and assumptions: caller owns `req`; function does not delete it. +- Error/null/empty behavior: command errors generally return NULL before command completion or an empty object after command send; request errors return structured error objects when possible. +- Ownership and lifetime: owns and frees serialized request JSON; owns and frees raw response JSON on success/error after parsing; transfers returned `J *` to caller. +- Concurrency/global state: optionally takes Notecard lock before CRC insertion; mutates `resetRequired`, advances `seqNo` before unlock in locked transactions, and reads transaction logging suppression state. +- Performance shape: bounded retry loop over `CARD_REQUEST_RETRIES_ALLOWED`, with JSON serialization, transport I/O, optional CRC, and parse per attempt. +- Portability/platform constraints: CRC branches are excluded under `NOTE_C_LOW_MEM`; heartbeat callback branch requires `NOTE_C_HEARTBEAT_CALLBACK`; transport/reset/locking are behind hooks/adapters. +- Source caveat: user-agent body insertion happens after `json` is serialized, and this source does not reserialize before `_Transaction`, so that mutation is not reflected in the transmitted buffer. + +## Direct Call Sites + +Exact source search found direct production callers in `NoteTransaction`, `NoteBinaryStoreReceive`, and `NoteBinaryStoreTransmit`. Tests also call or fake this helper in `NoteTransaction_test.cpp`, `NoteBinaryStoreReceive_test.cpp`, and `NoteBinaryStoreTransmit_test.cpp`. + +## Role In Callers + +`NoteTransaction` passes `lockNotecard=true` for normal public JSON request flow. Binary store receive/transmit pass `lockNotecard=false` because they already hold the Notecard lock around binary transfer setup. + +## Tests Observed + +`NoteTransaction_test.cpp` covers null/malformed requests, start failure, lock true/false paths, sequence advancement before Notecard unlock, reset failure, I/O retries, bad-bin no-retry, invalid JSON retry, CRC paths, user-agent guards, command behavior, and heartbeat behavior. `_noteTransaction_calculateTimeoutMs_test.cpp`, `_crcAdd_test.cpp`, `_crcError_test.cpp`, `_errDoc_test.cpp`, hook tests, and binary store tests cover important callee branches. + +## Graph Links + +- Graph node id: `function:n_request.c:428:_noteTransactionShouldLock` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L55__errDoc.md b/source-research/artifacts/functions/n_request_c__L55__errDoc.md new file mode 100644 index 00000000..f20cfa38 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L55__errDoc.md @@ -0,0 +1,60 @@ +# `_errDoc` + +## Status + +Finalized. Source-inspected transaction error document builder. + +## Identity + +- Kind: function +- Definition: `n_request.c:55` +- Declaration/interface: file-local `NOTE_C_STATIC` +- Signature/API shape: `J *_errDoc(uint32_t id, const char *errmsg)` +- Visibility: internal to `n_request.c` unless `NOTE_C_TEST` exposes statics +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2450:JCreateObject` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1989:JAddIntToObject` finalized + - `macro:n_lib.h:259:_DebugWithLevel` finalized after debug macro pass + - `macro:n_lib.h:260:_DebugWithLevelLn` finalized after debug macro pass + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized +- External/system dependencies: none +- Data/type/global dependencies: `suppressShowTransactions`, `c_err` + +## Behavior + +Creates an object, adds `"err": errmsg`, `"src": "note-c"`, and adds `"id": id` only when id is nonzero. When transaction logging is not suppressed, writes a raw error JSON fragment with debug-level functions. If root object allocation fails, logs an allocation error and returns NULL. Add helper failures are not checked. + +## Important Boundaries + +- Preconditions and assumptions: `errmsg` should be non-null for string-add/debug calls. +- Error/null/empty behavior: root allocation failure returns NULL. +- Ownership and lifetime: caller owns the returned `J` object. +- Concurrency/global state: reads transaction-debug suppression counter and emits through debug hooks. +- Performance shape: bounded object construction. +- Portability/platform constraints: debug macro behavior changes under `NOTE_NODEBUG`. + +## Direct Call Sites + +Exact source search found callers in `NoteRequestResponseJSON` and `_noteTransactionShouldLock` for transaction-start failure, reset failure, and final transaction errors. + +## Role In Callers + +Request paths use this helper to return structured error documents with source and optional request ID. + +## Tests Observed + +`_errDoc_test.cpp` covers allocation failure, suppression, logging under nodebug configuration, source/error fields, and optional ID. + +## Graph Links + +- Graph node id: `function:n_request.c:55:_errDoc` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L756__NoteResetRequired.md b/source-research/artifacts/functions/n_request_c__L756__NoteResetRequired.md new file mode 100644 index 00000000..edf8655b --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L756__NoteResetRequired.md @@ -0,0 +1,54 @@ +# `NoteResetRequired` + +## Status + +Finalized. Source-inspected reset-required flag setter. + +## Identity + +- Kind: function +- Definition: `n_request.c:756` +- Declaration/interface: public note-c request API declaration in headers +- Signature/API shape: `void NoteResetRequired(void)` +- Visibility: public note-c API +- Public/exported names: `NoteResetRequired` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `resetRequired` + +## Behavior + +Sets the internal `resetRequired` flag to true. + +## Important Boundaries + +- Preconditions and assumptions: no inputs. +- Error/null/empty behavior: no error channel. +- Ownership and lifetime: no allocation. +- Concurrency/global state: mutates shared transaction/reset state. +- Performance shape: O(1). +- Portability/platform constraints: none. + +## Direct Call Sites + +Exact source search found callers in `_noteTransactionShouldLock` final error handling and heartbeat-abandon path, plus binary helper error paths. + +## Role In Callers + +The next transaction consumes this flag before I/O by attempting `_Reset`. + +## Tests Observed + +`NoteTransaction_test.cpp` and binary store tests exercise reset-required behavior indirectly. + +## Graph Links + +- Graph node id: `function:n_request.c:756:NoteResetRequired` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L766__NoteReset.md b/source-research/artifacts/functions/n_request_c__L766__NoteReset.md new file mode 100644 index 00000000..5d9fcc53 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L766__NoteReset.md @@ -0,0 +1,69 @@ +# `NoteReset` + +## Status + +Finalized. Source-inspected public reset wrapper, shared reset-required state, finalized reset/lock callees, direct caller, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_request.c:766` +- Declaration/interface: `note.h:298` +- Public/exported names: `NoteReset` +- Macro aliases/wrappers: none +- Signature/API shape: `bool NoteReset(void)` +- Visibility: public SDK API declared in `note.h` +- Ownership/lifetime role: no allocation or ownership transfer; updates reset-required state + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:226:_LockNote` finalized + - `macro:n_lib.h:237:_Reset` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized +- External/system dependencies: none directly +- Data/type/global dependencies: writes `NOTE_C_STATIC bool resetRequired` in `n_request.c`; `_Reset` dispatches through the active-interface reset hook selected elsewhere +- Artifact coverage: source, declaration, direct caller, shared reset flag, finalized callees, and focused tests inspected + +## Behavior + +Acquires the Notecard lock with `_LockNote`, calls `_Reset`, stores the inverse result in the shared `resetRequired` flag, releases the lock with `_UnlockNote`, and returns `!resetRequired`. A successful `_Reset()` call clears `resetRequired` and returns true from `NoteReset`; a failed `_Reset()` call leaves `resetRequired` true and returns false. + +## Important Boundaries + +- Preconditions and assumptions: no parameters; active interface/reset hook selection is managed elsewhere. +- Error/null/empty behavior: no error string or diagnostic is returned. Through finalized `_Reset`, a missing active reset hook returns true and therefore clears `resetRequired`. +- Ownership and lifetime: no allocation and no ownership transfer. +- Concurrency/global state: wraps the reset call and `resetRequired` update in the optional Notecard mutex hook. If mutex hooks are unset, lock/unlock are no-ops. +- Portability/platform constraints: platform reset behavior stays behind `_noteHardReset` and active-interface reset hook dispatch. +- Performance shape: O(reset hook cost). +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact source search found one direct production caller: + +- `n_helpers.c:1923` `NoteFactoryReset` waits 5 seconds after `card.restore`, logs restoration, then loops calling `NoteReset()` and delaying 5 seconds until reset succeeds. + +The public declaration is `note.h:298`. + +## Role In Callers + +`NoteFactoryReset` treats `NoteReset` as the post-restore reinitialization gate. It does not return success until the reset wrapper reports success. + +## Tests Observed + +`test/src/NoteReset_test.cpp` fakes `_noteHardReset` and verifies it is invoked and that false/true reset-hook results propagate through `NoteReset`. `test/src/NoteFactoryReset_test.cpp` fakes `NoteReset` and verifies `NoteFactoryReset` retries after one reset failure. `_noteHardReset_test.cpp` verifies the callee behavior that a null active reset hook returns true and a non-null hook result is forwarded. + +## Test Coverage Notes + +Focused tests do not directly assert the `resetRequired` flag transition or lock/unlock calls in `NoteReset`. + +## Graph Links + +- Graph node id: `function:n_request.c:766:NoteReset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L786__notePingDrainInput.md b/source-research/artifacts/functions/n_request_c__L786__notePingDrainInput.md new file mode 100644 index 00000000..c2a460da --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L786__notePingDrainInput.md @@ -0,0 +1,73 @@ +# `_notePingDrainInput` + +## Status + +Finalized. Source-inspected static ping input-drain helper, finalized transport/timing callees, direct `NotePing` caller, hook boundaries, and focused indirect tests. + +## Identity + +- Kind: function +- Definition: `n_request.c:786` +- Declaration/interface: none; static file-local helper +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: `static void _notePingDrainInput(void)` +- Visibility: file-local to `n_request.c` +- Ownership/lifetime role: no allocation or ownership transfer; discards already-buffered transport input + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:209:NoteGetActiveInterface` finalized + - `macro:n_lib.h:243:_GetMs` finalized + - `macro:n_lib.h:232:_SerialAvailable` finalized + - `macro:n_lib.h:233:_SerialReceive` finalized + - `macro:n_lib.h:244:_DelayMs` finalized + - `macro:n_lib.h:245:_LockI2C` finalized + - `macro:n_lib.h:236:_I2CReceive` finalized + - `macro:n_lib.h:247:_I2CAddress` finalized + - `macro:n_lib.h:246:_UnlockI2C` finalized +- External/system dependencies: none directly; serial/I2C behavior is platform-hook supplied through finalized wrappers +- Data/type/global dependencies: reads active interface state through `NoteGetActiveInterface`; timing, serial, I2C, address, and lock behavior cross hook/global wrapper boundaries +- Artifact coverage: source, direct caller, finalized callees, serial/I2C branches, lock/error boundaries, and focused indirect tests inspected + +## Behavior + +Reads the active interface. On `NOTE_C_INTERFACE_SERIAL`, it drains all currently available serial bytes by repeatedly calling `_SerialAvailable()` and discarding `_SerialReceive()` results. After each drain burst, it updates `lastByteMs`, then returns once the line has been quiet for 20 ms or once 100 ms has elapsed from the start; otherwise it delays 1 ms and repeats. On `NOTE_C_INTERFACE_I2C`, it stack-allocates a 32-byte scratch buffer, locks the I2C mutex, probes available bytes with `_I2CReceive(_I2CAddress(), scratch, 0, &available)`, and then reads chunks of up to 32 bytes until the hook reports no more available data. Any I2C receive error unlocks and returns. Other active-interface values do nothing. + +## Important Boundaries + +- Preconditions and assumptions: called by `NotePing` while the Notecard lock is already held and after transaction start succeeds. +- Error/null/empty behavior: no return value and no error propagation. Serial inactive/missing hooks are inherited from wrappers as no available bytes or NUL receives. I2C receive errors are swallowed after balanced unlock. +- Ownership and lifetime: no allocation; uses a stack scratch buffer for I2C drain. +- Concurrency/global state: serial branch is protected by caller's Notecard lock; I2C branch additionally uses the I2C lock wrappers. Reads active-interface and transport hook state. +- Portability/platform constraints: all transport access remains behind hook wrappers. +- Performance shape: serial branch is intended to stop after a 20 ms quiet window or 100 ms elapsed cap, but both timer checks occur after the inner `_SerialAvailable()` drain loop returns. If availability remains continuously true, the inner drain loop does not reach those checks. I2C branch drains in up-to-32-byte chunks while the hook updates `available`. +- Security or parsing constraints: discards raw bytes; no parsing. + +## Direct Call Sites + +Exact source search found one direct production caller: + +- `n_request.c:897` `NotePing` calls this helper after `_TransactionStart(500)` succeeds and after `_LockNote()`, immediately before the one-shot `_Transaction` ping. + +## Role In Callers + +`NotePing` uses this helper to discard stale serial/I2C bytes before sending the `echo` ping. The call is deliberately inside the Notecard lock so another operation cannot refill the buffer between drain and transaction. + +## Tests Observed + +No test directly names `_notePingDrainInput`. `test/src/NotePing_test.cpp` covers it indirectly: the serial drain case sets three pending bytes, verifies `_noteSerialReceive` is called three times, and verifies the transaction observes zero remaining serial bytes. The I2C case switches the active interface to I2C, verifies `_noteI2CReceive` is called once, verifies I2C lock/unlock are each called once, verifies the receive saw the lock held, and verifies lock depth returns to zero. + +## Test Coverage Notes + +Focused tests do not cover serial quiet-window or max-time expiration, continuously true serial availability, I2C multi-chunk draining, or I2C receive-error paths. + +## Graph Links + +- Graph node id: `function:n_request.c:786:_notePingDrainInput` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md b/source-research/artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md new file mode 100644 index 00000000..5c867fb5 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md @@ -0,0 +1,67 @@ +# `_noteResumeTransactionDebug` + +## Status + +Final. Behavior, declaration, direct call sites, global state effect, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_request.c:80` +- Declaration/interface: `n_lib.h:121` +- Public/exported names: internal helper only; public wrapper is `NoteResumeTransactionDebug` +- Macro aliases/wrappers: none found +- Signature/API shape: `void _noteResumeTransactionDebug(void)` +- Visibility: internal SDK helper declared in `n_lib.h` +- Ownership/lifetime role: adjusts file-local transaction-debug suppression state; no object ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: decrements file-local `suppressShowTransactions` in `n_request.c` +- Artifact coverage: generated artifact exists + +## Behavior + +Resumes transaction/error trace output by decrementing `suppressShowTransactions`. `_errDoc()` prints error details only when that counter is exactly `0`; this helper is the low-level operation used to undo `_noteSuspendTransactionDebug()`. + +## Important Boundaries + +- Preconditions and assumptions: callers should balance this with a prior `_noteSuspendTransactionDebug()` call +- Error/null/empty behavior: no arguments, no return value, and no underflow/bounds check; extra resumes can make the counter negative +- Ownership and lifetime: no allocations or ownership transfer +- Concurrency/global state: mutates `suppressShowTransactions` without locking; callers rely on surrounding transaction sequencing where needed +- Portability/platform constraints: none beyond global state shared across the SDK instance +- Performance shape: constant-time integer decrement +- Security or parsing constraints: no parsing; affects diagnostic output visibility only + +## Direct Call Sites + +Verified direct callers: + +- `n_request.c:163` in `NoteResumeTransactionDebug` +- `n_request.c:889` in the early-failure path of `NotePing` +- `n_request.c:910` in the normal `NotePing` cleanup path +- `test/src/_errDoc_test.cpp:69` after suppressing `_errDoc` logging + +## Role In Callers + +Balances a prior suspend operation so public calls and internal ping/autobaud probes can restore normal transaction/error trace behavior. + +## Tests Observed + +Focused evidence: + +- `test/src/NoteResumeTransactionDebug_test.cpp` verifies the public wrapper calls `_noteResumeTransactionDebug()` exactly once. +- `test/src/_errDoc_test.cpp` uses `_noteSuspendTransactionDebug()` and `_noteResumeTransactionDebug()` around `_errDoc()` to verify suppressed error logging is restored after the scoped suppression. + +## Graph Links + +- Graph node id: `function:n_request.c:80:_noteResumeTransactionDebug` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +The helper itself has no direct unit test for negative counter behavior; this is source-observed behavior from the unchecked decrement. diff --git a/source-research/artifacts/functions/n_request_c__L841__NotePing.md b/source-research/artifacts/functions/n_request_c__L841__NotePing.md new file mode 100644 index 00000000..d6ae71e4 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L841__NotePing.md @@ -0,0 +1,78 @@ +# `NotePing` + +## Status + +Finalized. Source-inspected public fast connectivity ping API. + +## Identity + +- Kind: function +- Definition: `n_request.c:841` +- Declaration/interface: `note.h:314` +- Public/exported names: `NotePing` +- Macro aliases/wrappers: none found +- Signature/API shape: `bool NotePing(void)` +- Visibility: public note-c request API implemented in `n_request.c` +- Ownership/lifetime role: constructs a one-shot echo request, owns all temporary JSON buffers, and returns only success/failure + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized + - `function:n_cjson.c:2450:JCreateObject` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_cjson.c:1051:JPrintUnformatted` finalized + - `function:n_cjson.c:209:JDelete` finalized + - `function:n_request.c:88:_noteSuspendTransactionDebug` finalized + - `macro:n_lib.h:228:_TransactionStart` finalized + - `macro:n_lib.h:242:_Free` finalized + - `function:n_request.c:80:_noteResumeTransactionDebug` finalized + - `macro:n_lib.h:226:_LockNote` finalized + - `function:n_request.c:786:_notePingDrainInput` finalized + - `macro:n_lib.h:238:_Transaction` finalized + - `macro:n_lib.h:227:_UnlockNote` finalized + - `macro:n_lib.h:229:_TransactionStop` finalized + - `function:n_cjson.c:976:JParse` finalized + - `function:n_cjson_helpers.c:152:JIsNullString` finalized + - `function:n_cjson_helpers.c:173:JIsExactString` finalized +- External/system dependencies: `strlen` +- Data/type/global dependencies: uses `c_req`, `c_err`, transaction/debug suppression state through helper functions, and active transport state through `_notePingDrainInput` and `_Transaction` +- Artifact coverage: source-inspected artifact with verified direct call edges + +## Behavior + +Generates a 16-character uppercase nonce with xorshift32 seeded from the current millisecond clock. Builds an `{"req":"echo","text":nonce}` JSON object, prints it, deletes the object, overwrites the printed string's terminating NUL with a newline, and sends it with explicit `jsonLen + 1`. + +Before sending, suppresses normal transaction debug output. It starts a short 500 ms transaction envelope, locks the Notecard, drains residual bytes from the active transport, and performs exactly one `_Transaction` call. It deliberately does not honor `resetRequired`, does not call `_Reset`, and does not add a CRC. It unlocks, stops the transaction, resumes debug output, frees the request JSON, and then parses the response. The function returns true only when the response parses as JSON, has no effective `"err"` string, and contains a `"text"` field exactly matching the nonce. + +## Important Boundaries + +- Preconditions and assumptions: active transport hooks must already be configured for `_Transaction`; allocation hooks must support the JSON object/print path. +- Error/null/empty behavior: object allocation, print failure, transaction-start failure, transaction error, no response, invalid JSON, response error, or nonce mismatch all return false. +- Ownership and lifetime: request JSON, response JSON, and parsed response objects are freed on handled paths; no response object is returned to the caller. +- Concurrency/global state: locks the Notecard around drain and transaction; temporarily increments/decrements transaction-debug suppression through helper functions. +- Portability/platform constraints: transport-specific draining stays in `_notePingDrainInput`; the public API remains transport-independent. +- Performance shape: one short fixed-timeout transaction, no retry, no reset; serial drain has its own bounded quiet window and I2C drain consumes queued data. +- Security or parsing constraints: nonce is generated for echo matching, not cryptographic security; response validation ignores unrelated fields. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:314`, the definition in `n_request.c:840`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public fast connectivity check intended for downstream probing flows such as serial autobaud detection. + +## Tests Observed + +Focused tests in `test/src/NotePing_test.cpp` cover matching echo success, wrong nonce, response error, invalid JSON, transaction error, no response, no reset when `resetRequired` is set, transaction-start failure without lock/transaction, serial input drain, and I2C drain under I2C lock. Gaps: allocation failures in the request construction/print path are not directly exercised. + +## Graph Links + +- Graph node id: `function:n_request.c:841:NotePing` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing call edges to time, JSON construction/print/parse/delete helpers, debug suppression helpers, transaction envelope macros, lock macros, drain helper, transaction dispatch, free macro, and response validators. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md b/source-research/artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md new file mode 100644 index 00000000..b6663478 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md @@ -0,0 +1,66 @@ +# `_noteSuspendTransactionDebug` + +## Status + +Final. Behavior, declaration, direct call sites, global state effect, and focused tests have been inspected. + +## Identity + +- Kind: function +- Definition: `n_request.c:88` +- Declaration/interface: `n_lib.h:122` +- Public/exported names: internal helper only; public wrapper is `NoteSuspendTransactionDebug` +- Macro aliases/wrappers: none found +- Signature/API shape: `void _noteSuspendTransactionDebug(void)` +- Visibility: internal SDK helper declared in `n_lib.h` +- Ownership/lifetime role: adjusts file-local transaction-debug suppression state; no object ownership + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none +- Data/type/global dependencies: increments file-local `suppressShowTransactions` in `n_request.c` +- Artifact coverage: generated artifact exists + +## Behavior + +Suppresses transaction/error trace output by incrementing `suppressShowTransactions`. `_errDoc()` skips error-detail debug output when that counter is nonzero. + +## Important Boundaries + +- Preconditions and assumptions: callers should later balance this with `_noteResumeTransactionDebug()` +- Error/null/empty behavior: no arguments, no return value, and no overflow/bounds check +- Ownership and lifetime: no allocations or ownership transfer +- Concurrency/global state: mutates `suppressShowTransactions` without locking; callers rely on surrounding transaction sequencing where needed +- Portability/platform constraints: none beyond global state shared across the SDK instance +- Performance shape: constant-time integer increment +- Security or parsing constraints: no parsing; affects diagnostic output visibility only + +## Direct Call Sites + +Verified direct callers: + +- `n_request.c:155` in `NoteSuspendTransactionDebug` +- `n_request.c:885` in `NotePing` before a one-shot echo transaction +- `test/src/_errDoc_test.cpp:55` before checking suppressed `_errDoc` logging + +## Role In Callers + +Provides a nesting-capable suppression counter for public debug-suppression calls and for internal ping/autobaud probing where expected transport noise should not be logged as normal transaction output. + +## Tests Observed + +Focused evidence: + +- `test/src/NoteSuspendTransactionDebug_test.cpp` verifies the public wrapper calls `_noteSuspendTransactionDebug()` exactly once. +- `test/src/_errDoc_test.cpp` verifies that `_errDoc()` does not emit error debug output while transactions are suppressed. + +## Graph Links + +- Graph node id: `function:n_request.c:88:_noteSuspendTransactionDebug` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +The helper itself has no direct unit test for overflow or unbalanced suppression behavior; this is source-observed behavior from the unchecked increment. diff --git a/source-research/artifacts/functions/n_request_c__L940__NoteErrorContains.md b/source-research/artifacts/functions/n_request_c__L940__NoteErrorContains.md new file mode 100644 index 00000000..0037de86 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L940__NoteErrorContains.md @@ -0,0 +1,54 @@ +# `NoteErrorContains` + +## Status + +Finalized. Source-inspected raw error substring helper. + +## Identity + +- Kind: function +- Definition: `n_request.c:940` +- Declaration/interface: public note-c request API declaration in headers +- Signature/API shape: `bool NoteErrorContains(const char *errstr, const char *errtype)` +- Visibility: public note-c API +- Public/exported names: `NoteErrorContains` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `strstr` +- Data/type/global dependencies: none + +## Behavior + +Returns whether `strstr(errstr, errtype)` is non-null. + +## Important Boundaries + +- Preconditions and assumptions: both input pointers must be non-null. +- Error/null/empty behavior: no null guards and no structured error parsing. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: substring search cost. +- Portability/platform constraints: bytewise case-sensitive C string search. + +## Direct Call Sites + +Exact source search found callers in `_noteTransactionShouldLock` for transaction `{io}` retry detection and in binary helper paths for bad-bin handling. + +## Role In Callers + +The transaction path uses this helper to decide whether transport errors are retryable I/O errors. + +## Tests Observed + +Coverage is indirect through `NoteTransaction_test.cpp` retry cases and binary bad-bin tests. + +## Graph Links + +- Graph node id: `function:n_request.c:940:NoteErrorContains` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No dedicated direct test was identified for this helper. diff --git a/source-research/artifacts/functions/n_request_c__L945__NoteErrorClean.md b/source-research/artifacts/functions/n_request_c__L945__NoteErrorClean.md new file mode 100644 index 00000000..979c52c6 --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L945__NoteErrorClean.md @@ -0,0 +1,59 @@ +# `NoteErrorClean` + +## Status + +Finalized. Source-inspected public in-place Notecard error tag cleaner. + +## Identity + +- Kind: function +- Definition: `n_request.c:945` +- Declaration/interface: `note.h:524` +- Public/exported names: `NoteErrorClean` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteErrorClean(char *errbuf)` +- Visibility: public note-c error helper implemented in `n_request.c` +- Ownership/lifetime role: mutates caller-owned error string storage in place + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `strlen`, `strchr`, `memmove` +- Data/type/global dependencies: none +- Artifact coverage: source-inspected artifact + +## Behavior + +Repeatedly finds the first `{...}` brace-delimited segment in `errbuf` and removes it with `memmove`. If the opening brace is preceded by a space, that preceding space is removed as part of the segment. The loop stops when no opening brace is found or when an opening brace has no following closing brace. + +## Important Boundaries + +- Preconditions and assumptions: `errbuf` must be a non-null, mutable, NUL-terminated string. +- Error/null/empty behavior: no return value; strings without a full brace pair are left unchanged from the first unmatched opening brace onward. +- Ownership and lifetime: no allocation; caller retains ownership of the same buffer. +- Concurrency/global state: no global state. +- Portability/platform constraints: uses standard C string/memory functions only. +- Performance shape: repeated scans and `memmove`; worst case is proportional to string length times number of removed tag pairs. +- Security or parsing constraints: brace matching is simple first-opening/first-closing removal, not nested-brace parsing. + +## Direct Call Sites + +Exact source search found only the public declaration in `note.h:524`, the definition in `n_request.c:944`, and focused tests. No production repository caller, wrapper, or macro alias was found. + +## Role In Callers + +No production repository caller role. Public helper for downstream code that wants user-facing error text without Notecard `{type}` tags. + +## Tests Observed + +Focused tests in `test/src/NoteErrorClean_test.cpp` cover tag-only input, tags without a prefixed space separator, tags with a prefixed space, multiple brace pairs, and missing closing brace. Gaps: null input, nested braces, unmatched closing braces, and read-only string storage are not covered. + +## Graph Links + +- Graph node id: `function:n_request.c:945:NoteErrorClean` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf apart from external C library string/memory routines. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_request_c__L975__n_atoh.md b/source-research/artifacts/functions/n_request_c__L975__n_atoh.md new file mode 100644 index 00000000..866c5c0e --- /dev/null +++ b/source-research/artifacts/functions/n_request_c__L975__n_atoh.md @@ -0,0 +1,54 @@ +# `_n_atoh` + +## Status + +Finalized. Source-inspected bounded hex string parser. + +## Identity + +- Kind: function +- Definition: `n_request.c:975` +- Declaration/interface: `n_lib.h:160` +- Signature/API shape: `uint64_t _n_atoh(char *p, int maxLen)` +- Visibility: internal helper declared in `n_lib.h` +- Public/exported names: `_n_atoh` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Parses up to `maxLen` characters from `p` as hexadecimal, accepting digits, lowercase A-F, uppercase A-F, and spaces. It multiplies the accumulator by 16 for every accepted character, adds numeric value for hex digits, treats spaces as zero nibbles, and stops at the first other character. + +## Important Boundaries + +- Preconditions and assumptions: `p` must be non-null and readable for up to `maxLen` bytes. +- Error/null/empty behavior: invalid first character or zero length returns 0. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(maxLen). +- Portability/platform constraints: ASCII hex assumptions. + +## Direct Call Sites + +Exact source search found `_crcError` as the production caller for response CRC sequence and checksum fields. + +## Role In Callers + +`_crcError` uses `_n_atoh` to decode the four-hex sequence number and eight-hex CRC value from the Notecard response tail. + +## Tests Observed + +`_crcError_test.cpp` exercises this indirectly through matching and mismatched CRC fields. + +## Graph Links + +- Graph node id: `function:n_request.c:975:_n_atoh` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_serial_c__L153__serialNoteReset.md b/source-research/artifacts/functions/n_serial_c__L153__serialNoteReset.md new file mode 100644 index 00000000..e2b46eb9 --- /dev/null +++ b/source-research/artifacts/functions/n_serial_c__L153__serialNoteReset.md @@ -0,0 +1,73 @@ +# `_serialNoteReset` + +## Status + +Finalized. Source-inspected serial reset adapter. + +## Identity + +- Kind: function +- Definition: `n_serial.c:153` +- Declaration/interface: `n_lib.h:127` +- Public/exported names: `_serialNoteReset` inside the note-c internal transport surface +- Macro aliases/wrappers: no macro alias found; selected dynamically through `notecardReset` +- Signature/API shape: `bool _serialNoteReset(void)` +- Visibility: internal adapter entry point with prototype in `n_lib.h` +- Ownership/lifetime role: performs serial reset/resynchronization through configured serial hooks + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:76:NOTE_C_LOG_DEBUG` finalized + - `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized + - `macro:n_lib.h:244:_DelayMs` finalized + - `macro:n_lib.h:230:_SerialReset` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:n_lib.h:231:_SerialTransmit` finalized + - `macro:n_lib.h:243:_GetMs` finalized + - `macro:n_lib.h:232:_SerialAvailable` finalized + - `macro:n_lib.h:233:_SerialReceive` finalized +- External/system dependencies: none +- Data/type/global dependencies: reads `CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS`, `CARD_RESET_SYNC_RETRIES`, and `CARD_RESET_DRAIN_MS`; hook-backed macros reach serial reset/transmit/available/receive, time/delay, and logging hooks +- Artifact coverage: source-inspected artifact with verified direct call edges + +## Behavior + +Logs reset start, delays for `CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS`, and calls `_SerialReset`. If that reset fails, logs an error and returns false. It then attempts up to `CARD_RESET_SYNC_RETRIES` serial resynchronization passes. Each pass transmits a bare line-feed byte, drains serial data for at least `CARD_RESET_DRAIN_MS`, and treats the Notecard as ready only when some data was seen and every received byte was `\n` or `\r`. + +If non-control data is seen, it resets the drain timer and records the pass as unsynchronized. If no data or non-control data prevents success, it logs an error, waits another drain interval, calls `_SerialReset`, and retries. A reset failure during retry returns false immediately. The function returns true only after a control-only response pass; otherwise it returns false after retries are exhausted. + +## Important Boundaries + +- Preconditions and assumptions: serial hooks must have been installed before the active reset path selects this adapter. +- Error/null/empty behavior: initial or retry `_SerialReset` failure returns false; no serial availability across retries returns false; non-control response bytes cause retry and can ultimately return false. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: no local serial lock is taken here; public `NoteReset` reaches reset through a higher-level Notecard lock. +- Portability/platform constraints: all serial behavior remains behind hook-backed serial macros. +- Performance shape: bounded retry loop; each failed sync pass drains for `CARD_RESET_DRAIN_MS`, waits another drain interval, and resets before retrying. +- Security or parsing constraints: sync classification is byte-level only, accepting only CR/LF response bytes. + +## Direct Call Sites + +Exact source search found the prototype in `n_lib.h:127`, the definition in `n_serial.c:153`, assignment to `notecardReset` by `_noteSetActiveInterface` in `n_hooks.c:220`, and focused tests. No direct production call was found. + +## Role In Callers + +`_noteSetActiveInterface` installs this adapter into the active reset function pointer for `NOTE_C_INTERFACE_SERIAL`; `_noteHardReset` dispatches to it through `notecardReset`. Public `NoteReset` and transaction-reset paths therefore reach this function indirectly after serial has been selected. + +## Tests Observed + +Focused tests in `test/src/_serialNoteReset_test.cpp` cover initial reset failure, unavailable serial data with retries, non-control character retry, retry reset failure, control-character success, and millisecond counter overflow. `_noteSetActiveInterface_test.cpp` covers registration of this function as the serial reset target. Gaps: exact transmitted LF byte, CR-only success, and delay durations are not directly asserted. + +## Graph Links + +- Graph node id: `function:n_serial.c:153:_serialNoteReset` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing call edges to serial reset/transmit/available/receive, time/delay, and logging/error helpers. +- Verified incoming dynamic edges from `_noteSetActiveInterface` (`assigns_function_pointer`) and `_noteHardReset` (`dispatches_via_pointer`). + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_serial_c__L237__serialChunkedReceive.md b/source-research/artifacts/functions/n_serial_c__L237__serialChunkedReceive.md new file mode 100644 index 00000000..c783dba3 --- /dev/null +++ b/source-research/artifacts/functions/n_serial_c__L237__serialChunkedReceive.md @@ -0,0 +1,75 @@ +# `_serialChunkedReceive` + +## Status + +Finalized. Source-inspected serial chunk receive adapter, finalized timing/serial/logging callees, direct caller and registration sites, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_serial.c:237` +- Declaration/interface: `n_lib.h:132` +- Public/exported names: none; internal serial adapter function +- Macro aliases/wrappers: registered as the serial `notecardChunkedReceive` callback by `_noteSetActiveInterface`; reached through `_noteChunkedReceive`/`_ChunkedReceive` when serial is active +- Signature/API shape: `const char *_serialChunkedReceive(uint8_t *buffer, uint32_t *size, bool delay, uint32_t timeoutMs, uint32_t *available)` +- Visibility: internal declaration in `n_lib.h`, implementation in `n_serial.c` +- Ownership/lifetime role: fills caller-owned buffer in place; does not allocate or retain pointers + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:243:_GetMs` finalized + - `macro:n_lib.h:232:_SerialAvailable` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:n_lib.h:244:_DelayMs` finalized + - `macro:n_lib.h:233:_SerialReceive` finalized +- External/system dependencies: none directly; serial availability and receive behavior are hook-supplied through wrappers +- Data/type/global dependencies: timing and serial hook state through finalized wrappers; error constants `c_iobad` and `c_iotimeout` +- Artifact coverage: source, declaration, direct caller, active-interface registration, finalized callees, overflow/timeout semantics, and focused tests inspected + +## Behavior + +Initializes `received` to zero and treats `*size` as the caller's available buffer length. If the buffer length is zero, the loop is skipped, `*size` is set to zero, and `NULL` is returned without changing `*available`. Otherwise it waits for `_SerialAvailable()`, optionally delaying 1 ms only while waiting for the first byte when `delay` is true. If `timeoutMs` is nonzero and elapsed time reaches the timeout while waiting, it stores the partial byte count in `*size`, logs a partial-reply error when at least one byte was received, and returns `ERRSTR("timeout: transaction incomplete {io}", c_iotimeout)`. + +After each available byte, it switches the timeout window to `CARD_INTRA_TRANSACTION_TIMEOUT_SEC * 1000`, resets `startMs`, reads one byte with `_SerialReceive()`, writes it into `buffer[received++]`, and stops successfully when the byte is newline. If the buffer fills before newline, it sets `*available = 1` and returns `NULL` with `*size` set to the bytes copied. Otherwise it sets `*available = 0`, stores the copied byte count in `*size`, and returns `NULL`. + +## Important Boundaries + +- Preconditions and assumptions: normal callers pass non-null `buffer`, `size`, and `available`; `*size` must describe writable buffer capacity. The function does not validate those pointers before dereference on normal paths. +- Error/null/empty behavior: zero-length buffer returns success with zero bytes and leaves `available` unchanged. Timeout returns an error string containing `{io}` and preserves partial data count. Serial hook errors have no direct channel here; inactive/missing hooks appear as unavailable bytes through `_SerialAvailable`. +- Ownership and lifetime: writes into caller-owned buffer only; no allocation. +- Concurrency/global state: reads timing and serial hook state through wrapper functions; caller is responsible for any surrounding transaction serialization. +- Portability/platform constraints: platform serial behavior stays behind hook wrappers. +- Performance shape: O(bytes copied plus polling time). After first byte, waits greedily for subsequent bytes with no delay calls. +- Security or parsing constraints: copies raw bytes until newline or buffer full; no JSON parsing or content validation. + +## Direct Call Sites + +Exact source search found direct production references: + +- `n_serial.c:98` `_serialNoteTransaction` appends response bytes by repeatedly calling `_serialChunkedReceive`, grows its JSON response buffer when `available` is nonzero, and stops once no more bytes are indicated. +- `n_hooks.c:222` `_noteSetActiveInterface(NOTE_C_INTERFACE_SERIAL)` registers `_serialChunkedReceive` as `notecardChunkedReceive`. +- `n_lib.h:132` declares the internal adapter. + +## Role In Callers + +`_serialNoteTransaction` treats non-null errors as transaction failure, frees the growing response buffer, logs the error, and returns it. It treats `available` as an overflow/continue signal and allocates additional chunks before calling this helper again. `_noteChunkedReceive` can dispatch indirectly to this helper after the serial active interface installs it. + +## Tests Observed + +`test/src/_serialChunkedReceive_test.cpp` covers no bytes available timing out, receiving packets smaller than/equal to the output buffer, overflow before newline setting `available` to 1, zero-length output buffer, partial packet timeout, intermittent availability that eventually completes, and the `delay` flag controlling `NoteDelayMs` while waiting for the first byte. `_serialNoteTransaction_test.cpp` fakes this helper to verify caller buffer-growth and error propagation paths. `_noteSetActiveInterface_test.cpp` verifies selecting the serial interface installs `_serialChunkedReceive` into `notecardChunkedReceive`. + +## Test Coverage Notes + +Focused tests do not cover null pointer arguments or hook-level serial receive failures because the serial receive wrapper has no error-return channel. + +## Graph Links + +- Graph node id: `function:n_serial.c:237:_serialChunkedReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md b/source-research/artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md new file mode 100644 index 00000000..848f556c --- /dev/null +++ b/source-research/artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md @@ -0,0 +1,68 @@ +# `_serialChunkedTransmit` + +## Status + +Finalized. Source-inspected serial chunk transmit adapter, finalized transmit/timing callees, direct caller and registration sites, and focused tests. + +## Identity + +- Kind: function +- Definition: `n_serial.c:303` +- Declaration/interface: `n_lib.h:133` +- Public/exported names: none; internal serial adapter function +- Macro aliases/wrappers: registered as the serial `notecardChunkedTransmit` callback by `_noteSetActiveInterface`; reached through `_noteChunkedTransmit`/`_ChunkedTransmit` when serial is active +- Signature/API shape: `const char *_serialChunkedTransmit(const uint8_t *buffer, uint32_t size, bool delay)` +- Visibility: internal declaration in `n_lib.h`, implementation in `n_serial.c` +- Ownership/lifetime role: reads caller-owned buffer and does not retain it + +## Dependency Status + +- Project-local dependencies: + - `macro:n_lib.h:231:_SerialTransmit` finalized + - `macro:n_lib.h:244:_DelayMs` finalized +- External/system dependencies: none directly; serial transmit and delay are hook-supplied through wrappers +- Data/type/global dependencies: serial transmit hook and timing hook state through finalized wrappers; compile-time guard on `CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN` +- Artifact coverage: source, declaration, direct caller, active-interface registration, finalized callees, segmentation behavior, and focused tests inspected + +## Behavior + +Splits `buffer[0:size]` into segments no larger than `CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN`. For each segment, calls `_SerialTransmit(&buffer[segOff], segLen, false)`, advances the offset, and subtracts the segment length from the remaining byte count. It skips the trailing delay after the final segment. Between segments, when `delay` is true, it calls `_DelayMs(CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS)`. Size zero performs no transmit calls and returns `NULL`. The function returns `NULL` unconditionally on all runtime paths. + +## Important Boundaries + +- Preconditions and assumptions: normal callers pass a valid `buffer` whenever `size > 0`. The function does not validate `buffer` before indexing it on nonzero-size paths. +- Error/null/empty behavior: no runtime error reporting; serial transmit hook failures have no channel through `_SerialTransmit`. Zero-length input returns success without transmitting. +- Ownership and lifetime: reads from caller-owned memory only; no allocation and no retention. +- Concurrency/global state: serial transmit and delay behavior use global hook state through wrappers; caller is responsible for surrounding transaction serialization. +- Portability/platform constraints: compile-time error if `CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN` exceeds `SIZE_MAX`; platform serial output remains behind the transmit hook. +- Performance shape: O(size) transmit work, with optional fixed delay between segments. +- Security or parsing constraints: sends raw bytes; no parsing or validation. + +## Direct Call Sites + +Exact source search found direct production references: + +- `n_serial.c:48` `_serialNoteTransaction` strips newline/optional carriage return from the JSON request, sends the request body through `_serialChunkedTransmit(..., true)`, and then sends `"\r\n"` through `_SerialTransmit`. +- `n_hooks.c:223` `_noteSetActiveInterface(NOTE_C_INTERFACE_SERIAL)` registers `_serialChunkedTransmit` as `notecardChunkedTransmit`. +- `n_lib.h:133` declares the internal adapter. + +## Role In Callers + +`_serialNoteTransaction` treats a non-null return from this helper as transmit failure, logs it, and returns it. In the current implementation this helper never returns an error, so serial transmit errors can only be represented below the hook layer, not through this adapter. + +## Tests Observed + +`test/src/_serialChunkedTransmit_test.cpp` verifies zero-length input returns no error, buffers smaller than/equal to the segment limit are transmitted once and verbatim, larger buffers are split across multiple `_noteSerialTransmit` calls without altering bytes, and the `delay` flag controls whether `NoteDelayMs` is called between segments. `_serialNoteTransaction_test.cpp` fakes this helper to verify caller error propagation. `_noteSetActiveInterface_test.cpp` verifies selecting the serial interface installs `_serialChunkedTransmit` into `notecardChunkedTransmit`. + +## Test Coverage Notes + +Focused tests do not cover null `buffer` with nonzero size or platform transmit-hook failure because `_SerialTransmit` has no error-return channel. + +## Graph Links + +- Graph node id: `function:n_serial.c:303:_serialChunkedTransmit` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_serial_c__L35__serialNoteTransaction.md b/source-research/artifacts/functions/n_serial_c__L35__serialNoteTransaction.md new file mode 100644 index 00000000..f467460a --- /dev/null +++ b/source-research/artifacts/functions/n_serial_c__L35__serialNoteTransaction.md @@ -0,0 +1,75 @@ +# `_serialNoteTransaction` + +## Status + +Finalized. Source-inspected serial JSON transaction adapter. + +## Identity + +- Kind: function +- Definition: `n_serial.c:35` +- Declaration/interface: `n_lib.h:126` +- Public/exported names: `_serialNoteTransaction` inside the note-c internal transport surface +- Macro aliases/wrappers: no macro alias found; selected dynamically through `notecardTransaction` +- Signature/API shape: `const char *_serialNoteTransaction(const char *request, size_t reqLen, char **response, uint32_t timeoutMs)` +- Visibility: internal adapter entry point with prototype in `n_lib.h` +- Ownership/lifetime role: sends an optional serial request and optionally returns a heap-allocated response buffer through `*response` + +## Dependency Status + +- Project-local dependencies: + - `function:n_serial.c:303:_serialChunkedTransmit` finalized + - `macro:note.h:990:NOTE_C_LOG_ERROR` finalized + - `macro:n_lib.h:231:_SerialTransmit` finalized + - `macro:n_lib.h:243:_GetMs` finalized + - `macro:n_lib.h:232:_SerialAvailable` finalized + - `macro:note.h:76:NOTE_C_LOG_DEBUG` finalized + - `macro:note.h:1014:NOTE_C_LOG_DEBUG` finalized + - `macro:note.h:75:ERRSTR` finalized + - `macro:note.h:78:ERRSTR` finalized + - `macro:n_lib.h:244:_DelayMs` finalized + - `macro:n_lib.h:241:_Malloc` finalized + - `function:n_serial.c:237:_serialChunkedReceive` finalized + - `macro:n_lib.h:242:_Free` finalized +- External/system dependencies: `memcpy` +- Data/type/global dependencies: reads `ALLOC_CHUNK`, `CARD_INTRA_TRANSACTION_TIMEOUT_SEC`, `c_newline_len`, and `cardTurboIO`; hook-backed macros reach serial transmit/available/receive, malloc/free, time/delay, and logging hooks +- Artifact coverage: source-inspected artifact with verified direct call edges + +## Behavior + +If `reqLen > 0`, treats the trailing byte as the request newline, removes it from the transmit length, removes a preceding carriage return when present, transmits the remaining body through `_serialChunkedTransmit`, then sends canonical `\r\n` with `_SerialTransmit`. Errors from `_serialChunkedTransmit` are logged and returned. The final `_SerialTransmit` has a void-return hook boundary, so hook failure cannot be reported here. + +If `response == NULL`, returns success after the optional transmit. Otherwise it waits until `_SerialAvailable` reports data or `timeoutMs` elapses, using unsigned elapsed-time arithmetic that tolerates millisecond counter wrap. While waiting, it delays 10 ms when turbo I/O is disabled. On timeout it returns a transaction timeout error. It then allocates an `ALLOC_CHUNK + 1` buffer, receives one or more chunks with `_serialChunkedReceive`, grows the buffer in `ALLOC_CHUNK` multiples when more data remains, null-terminates the response, assigns it to `*response`, and returns success. + +## Important Boundaries + +- Preconditions and assumptions: when `reqLen > 0`, `request` must point to at least `reqLen` bytes and the last byte is expected to be newline framing; non-null `response` must point to writable `char *` storage. +- Error/null/empty behavior: zero-length requests skip transmit and CRLF append; null `response` skips receive work; timeout, allocation, chunk transmit, and chunk receive errors return an error string and leave `*response` unchanged. +- Ownership and lifetime: successful response capture transfers the allocated response buffer to the caller; receive and growth failures free temporary buffers before returning. +- Concurrency/global state: no local serial lock is taken here; callers reach this through higher-level transaction locking when required. +- Portability/platform constraints: serial I/O stays behind hook-backed macros and serial chunk helpers. +- Performance shape: optional request transmit plus CRLF append; response wait loop polls availability; receive buffer starts at `ALLOC_CHUNK` and grows by rounded chunks. +- Security or parsing constraints: returns raw null-terminated response bytes and does not parse or validate JSON. + +## Direct Call Sites + +Exact source search found the prototype in `n_lib.h:126`, the definition in `n_serial.c:35`, assignment to `notecardTransaction` by `_noteSetActiveInterface` in `n_hooks.c:221`, and focused tests. No direct production call was found. + +## Role In Callers + +`_noteSetActiveInterface` installs this adapter into the active transaction function pointer for `NOTE_C_INTERFACE_SERIAL`; `_noteJSONTransaction` dispatches to it through `notecardTransaction`. Public request flows therefore reach this function indirectly after serial has been selected. + +## Tests Observed + +Focused tests in `test/src/_serialNoteTransaction_test.cpp` cover request transmit plus CRLF append, chunk transmit errors, initial allocation failure, timeout including millisecond wrap, receive errors, empty response, single and multiple receive chunks, growth allocation failure, zero-length requests, and null zero-length requests. `_noteSetActiveInterface_test.cpp` covers registration of this function as the serial transaction target. Gaps: newline-only `reqLen == 1`, carriage-return stripping, turbo-delay suppression, and final CRLF hook failure behavior are not directly asserted. + +## Graph Links + +- Graph node id: `function:n_serial.c:35:_serialNoteTransaction` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing call edges to serial chunk transmit/receive, serial hook macros, time/delay, allocation/free, and logging/error helpers. +- Verified incoming dynamic edges from `_noteSetActiveInterface` (`assigns_function_pointer`) and `_noteJSONTransaction` (`dispatches_via_pointer`). + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_str_c__L31__strlcpy.md b/source-research/artifacts/functions/n_str_c__L31__strlcpy.md new file mode 100644 index 00000000..33e99967 --- /dev/null +++ b/source-research/artifacts/functions/n_str_c__L31__strlcpy.md @@ -0,0 +1,70 @@ +# `strlcpy` + +## Status + +Finalized. Source-inspected portable fallback string-copy helper with grouped verified fanout. + +## Identity + +- Kind: function +- Definition: `n_str.c:31` for MSVC, `n_str.c:33` as a weak symbol otherwise +- Declaration/interface: `note.h:1152` for C++ and `note.h:1154` for C, both inside `#ifndef HAVE_STRLCPY` +- Signature/API shape: `size_t strlcpy(char *dst, const char *src, size_t siz)` +- Visibility: SDK fallback symbol compiled only when the platform lacks `strlcpy` or `strlcat` +- Public/exported names: `strlcpy` when fallback is compiled +- Macro aliases/wrappers: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive pointer/string traversal; `strlen` is not used by `strlcpy` +- Data/type/global dependencies: mutates caller-provided destination buffer; no global state +- Build/config dependencies: + - `CMakeLists.txt:49` checks for platform `strlcpy`. + - `CMakeLists.txt:68`-`CMakeLists.txt:72` appends `n_str.c` only when `HAVE_STRLCPY` or `HAVE_STRLCAT` is missing. + - `note.h:1152`/`note.h:1154` declare the fallback only when `HAVE_STRLCPY` is not defined. +- Artifact coverage: implementation, declaration guards, build gating, direct source callers, and graph node inspected + +## Behavior + +Copies `src` into `dst` with total destination size `siz`. If `siz` is nonzero, it copies at most `siz - 1` bytes and stops early when it copies a NUL byte. If the destination fills before the source ends, it writes a terminating NUL when `siz != 0`, then advances through the rest of `src`. The return value is the length of `src`, excluding the NUL terminator, so callers can detect truncation when the return value is greater than or equal to `siz`. + +## Important Boundaries + +- Preconditions and assumptions: caller must pass valid string pointers; destination must be writable for `siz` bytes when `siz > 0`; source must be NUL-terminated. +- Error/null/empty behavior: no null checks. `siz == 0` performs no destination write but still traverses `src` to compute the return length. +- Ownership and lifetime: copies into caller-owned memory and allocates nothing. +- Concurrency/global state: no global state. +- Portability/platform constraints: fallback is weak except on MSVC; CMake omits `n_str.c` on platforms with native `strlcpy`/`strlcat` to avoid fortified macro conflicts. +- Performance shape: O(strlen(src)). + +## Direct Call Sites + +Exact source search `rg -n "\bstrlcpy\b" -g '!source-research/**' -g '!docs/**'` found: + +- Build/config and declarations: `CMakeLists.txt:49`, `CMakeLists.txt:68`-`CMakeLists.txt:72`, `note.h:1152`, `note.h:1154`, `n_str.c:31`/`n_str.c:33`. +- JSON printing: `n_cjson.c:433`, `n_cjson.c:1193`, `n_cjson.c:1201`, `n_cjson.c:1209`. +- MD5 string conversion: `n_md5.c:310`, `n_md5.c:320`. +- Binary/status helpers: `n_helpers.c:408`, `n_helpers.c:1376`, `n_helpers.c:1399`, `n_helpers.c:1435`, `n_helpers.c:1663`, `n_helpers.c:1680`. +- Time/location/cache helpers: `n_helpers.c:822`-`n_helpers.c:824`, `n_helpers.c:909`, `n_helpers.c:919`, `n_helpers.c:921`, `n_helpers.c:922`, `n_helpers.c:1161`, `n_helpers.c:1198`, `n_helpers.c:1200`, `n_helpers.c:1509`. +- Environment/service/contact/route helpers: `n_helpers.c:1308`, `n_helpers.c:1319`, `n_helpers.c:1592`-`n_helpers.c:1595`, `n_helpers.c:1605`, `n_helpers.c:1608`, `n_helpers.c:1611`, `n_helpers.c:1614`, `n_helpers.c:1776`, `n_helpers.c:2151`, `n_helpers.c:2248`, `n_helpers.c:2251`, `n_helpers.c:2254`, `n_helpers.c:2257`. + +Test-only occurrences were observed but not researched as standalone targets. + +## Role In Callers + +Callers use `strlcpy` to bounded-copy generated JSON literals, MD5 hex strings, status strings, cached service/location/contact fields, request names, and user-visible helper outputs. For the active MD5 slice, `NoteMD5HashString` uses it to copy the stack-built hex string into the caller-provided buffer with truncation semantics inherited from `strlcpy`. + +## Tests Observed + +None for this fallback as a standalone production symbol. Focused tests that use `strlcpy` as support code were intentionally not treated as test coverage for the SDK fallback. + +## Graph Links + +- Graph node id: `function:n_str.c:31:strlcpy` +- Structured graph: `inventory/dependency-graph.json` +- Verified grouped incoming fanout from `n_cjson.c`, `n_md5.c`, and `n_helpers.c`. + +## Evidence Gaps + +No unresolved source gaps for this node. Platform-native `strlcpy` behavior is represented as a build/config variant rather than implementation source in this repository. diff --git a/source-research/artifacts/functions/n_str_c__L69__strlcat.md b/source-research/artifacts/functions/n_str_c__L69__strlcat.md new file mode 100644 index 00000000..4b9fd94c --- /dev/null +++ b/source-research/artifacts/functions/n_str_c__L69__strlcat.md @@ -0,0 +1,67 @@ +# `strlcat` + +## Status + +Finalized. Source-inspected portable fallback string-concatenation helper, build gating, declarations, and direct production callers. + +## Identity + +- Kind: function +- Definition: `n_str.c:69` for MSVC, `n_str.c:71` as a weak symbol otherwise +- Declaration/interface: `note.h:1172` for C++ and `note.h:1174` for C, both inside `#ifndef HAVE_STRLCAT` +- Public/exported names: `strlcat` when the fallback is compiled +- Macro aliases/wrappers: none +- Signature/API shape: `size_t strlcat(char *dst, const char *src, size_t siz)` +- Visibility: SDK fallback symbol compiled when the platform lacks `strlcpy` or `strlcat` +- Ownership/lifetime role: appends into caller-owned destination buffer and allocates nothing + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `strlen` +- Data/type/global dependencies: mutates caller-provided destination buffer; no global state +- Build/config dependencies: + - `CMakeLists.txt:50` checks for platform `strlcat`. + - `CMakeLists.txt:68`-`CMakeLists.txt:72` appends `n_str.c` only when `HAVE_STRLCPY` or `HAVE_STRLCAT` is missing. + - `note.h:1172`/`note.h:1174` declare the fallback only when `HAVE_STRLCAT` is not defined. +- Artifact coverage: implementation, declaration guards, build gating, direct source callers, and graph node inspected + +## Behavior + +Finds the end of the existing NUL-terminated `dst` string without scanning past `siz` bytes. If `dst` already occupies the whole destination size, it appends nothing and returns `siz + strlen(src)` through the `dlen + strlen(s)` expression. Otherwise it appends as much of `src` as fits while reserving one byte for the terminator, NUL-terminates the result, and returns the length the concatenation would have had without truncation: `initial_dst_len + strlen(src)`. + +## Important Boundaries + +- Preconditions and assumptions: caller must pass valid string pointers; `dst` must be writable for `siz` bytes when appending is possible; both input strings must be NUL-terminated. +- Error/null/empty behavior: no null checks. If `siz <= strlen(initial dst)`, no terminator is written and the return value still includes the full source length for truncation detection. +- Ownership and lifetime: no allocation or ownership transfer; mutates only the caller destination buffer. +- Concurrency/global state: no global state. +- Portability/platform constraints: fallback is weak except on MSVC; CMake omits `n_str.c` on platforms with native `strlcpy`/`strlcat` to avoid fortified macro conflicts. +- Performance shape: O(min(siz, strlen(dst)) + strlen(src)). +- Security or parsing constraints: bounded append prevents writes past `siz`, but callers must still check the return value when truncation matters. + +## Direct Call Sites + +Exact source search `rg -n "\bstrlcat\b" -g '!source-research/**' -g '!docs/**'` found: + +- Build/config and declarations: `CMakeLists.txt:50`, `CMakeLists.txt:68`-`CMakeLists.txt:72`, `note.h:1172`, `note.h:1174`, `n_str.c:69`/`n_str.c:71`. +- `n_helpers.c:1778` and `n_helpers.c:1779` `NoteSleep` appends `","` and caller-provided sleep modes to the local `"sleep"` mode string. +- `n_helpers.c:2152` `NoteSendToRoute` appends a caller-provided method to the local `"web."` request string. + +## Role In Callers + +Callers use `strlcat` as the bounded append companion to `strlcpy` when constructing small stack request strings. Current production callers do not inspect the return value, so truncation silently produces a bounded but shortened mode or request name. + +## Tests Observed + +No standalone focused tests for the fallback `strlcat` implementation were found. `test/src/NoteRequestResponseJSON_test.cpp` uses `strlcat` as test setup support, but that is not coverage of this fallback symbol's edge cases. + +## Graph Links + +- Graph node id: `function:n_str.c:69:strlcat` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edges from `NoteSleep` and `NoteSendToRoute`. + +## Evidence Gaps + +No unresolved source gaps for this node. Platform-native `strlcat` behavior is represented as a build/config variant rather than implementation source in this repository. diff --git a/source-research/artifacts/functions/n_ua_c__L191__NoteSetUserAgent.md b/source-research/artifacts/functions/n_ua_c__L191__NoteSetUserAgent.md new file mode 100644 index 00000000..425caa6a --- /dev/null +++ b/source-research/artifacts/functions/n_ua_c__L191__NoteSetUserAgent.md @@ -0,0 +1,59 @@ +# `NoteSetUserAgent` + +## Status + +Finalized. Source-inspected public user-agent string setter. + +## Identity + +- Kind: function +- Definition: `n_ua.c:191` +- Declaration/interface: `note.h:902` +- Public/exported names: `NoteSetUserAgent` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetUserAgent(char *agent)` +- Visibility: public note-c API when `n_ua.c` is built; excluded from low-memory builds by source/build configuration +- Ownership/lifetime role: stores caller-provided string pointer for later user-agent JSON construction + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes file-static `n_agent`; later read by `NoteUserAgent` +- Artifact coverage: source-inspected artifact + +## Behavior + +Assigns `n_agent = agent`. It does not copy, validate, or allocate the string. + +## Important Boundaries + +- Preconditions and assumptions: non-null `agent`, when provided, must remain valid until user-agent construction copies it. +- Error/null/empty behavior: null is accepted and stored; later JSON field insertion can fail or suppress data depending on consumer behavior. +- Ownership and lifetime: caller owns the pointed-to string; note-c stores only the pointer. +- Concurrency/global state: writes shared file-static state without locking. +- Portability/platform constraints: implementation exists only outside `NOTE_C_LOW_MEM` builds. +- Performance shape: one pointer assignment. +- Security or parsing constraints: no string validation or lifetime protection. + +## Direct Call Sites + +Production-only exact search found only the public declaration in `note.h:902` and the definition in `n_ua.c:191`. Focused tests call it from `test/src/NoteUserAgent_test.cpp`. No production repository caller, wrapper, or alias was found. + +## Role In Callers + +No production repository caller role. Public setter for downstream libraries to stamp their agent string into `NoteUserAgent` output. + +## Tests Observed + +Focused tests in `test/src/NoteUserAgent_test.cpp` set the agent and verify `NoteUserAgent()` emits it. Gaps include null agent, pointer lifetime after caller buffer mutation, and low-memory build API behavior. + +## Graph Links + +- Graph node id: `function:n_ua.c:191:NoteSetUserAgent` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ua_c__L201__NoteSetUserAgentOS.md b/source-research/artifacts/functions/n_ua_c__L201__NoteSetUserAgentOS.md new file mode 100644 index 00000000..704a0a21 --- /dev/null +++ b/source-research/artifacts/functions/n_ua_c__L201__NoteSetUserAgentOS.md @@ -0,0 +1,59 @@ +# `NoteSetUserAgentOS` + +## Status + +Finalized. Source-inspected public user-agent OS metadata setter. + +## Identity + +- Kind: function +- Definition: `n_ua.c:201` +- Declaration/interface: `note.h:911` +- Public/exported names: `NoteSetUserAgentOS` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetUserAgentOS(char *os_name, char *os_platform, char *os_family, char *os_version)` +- Visibility: public note-c API when `n_ua.c` is built; excluded from low-memory builds by source/build configuration +- Ownership/lifetime role: stores caller-provided OS metadata string pointers for later user-agent JSON construction + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes file-static `n_os_family`, `n_os_name`, `n_os_platform`, and `n_os_version` +- Artifact coverage: source-inspected artifact + +## Behavior + +Assigns the four OS metadata globals from the supplied pointers. It does not copy, validate, or allocate the strings. + +## Important Boundaries + +- Preconditions and assumptions: non-null strings, when provided, must remain valid until user-agent construction copies them. +- Error/null/empty behavior: null values are accepted and later suppress their optional OS fields in `NoteUserAgent`. +- Ownership and lifetime: caller owns all pointed-to strings; note-c stores only raw pointers. +- Concurrency/global state: writes shared file-static state without locking. +- Portability/platform constraints: implementation exists only outside `NOTE_C_LOW_MEM` builds. +- Performance shape: four pointer assignments. +- Security or parsing constraints: no string validation or lifetime protection. + +## Direct Call Sites + +Production-only exact search found only the public declaration in `note.h:911` and the definition in `n_ua.c:201`. Focused tests call it from `test/src/NoteUserAgent_test.cpp`. No production repository caller, wrapper, or alias was found. + +## Role In Callers + +No production repository caller role. Public setter for downstream libraries to stamp OS metadata into `NoteUserAgent` output. + +## Tests Observed + +Focused tests in `test/src/NoteUserAgent_test.cpp` set all OS values and verify emitted fields. Gaps include partial nulls, pointer lifetime after caller buffer mutation, and low-memory build behavior. + +## Graph Links + +- Graph node id: `function:n_ua.c:201:NoteSetUserAgentOS` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ua_c__L214__NoteSetUserAgentCPU.md b/source-research/artifacts/functions/n_ua_c__L214__NoteSetUserAgentCPU.md new file mode 100644 index 00000000..a5c78b89 --- /dev/null +++ b/source-research/artifacts/functions/n_ua_c__L214__NoteSetUserAgentCPU.md @@ -0,0 +1,59 @@ +# `NoteSetUserAgentCPU` + +## Status + +Finalized. Source-inspected public user-agent CPU metadata setter. + +## Identity + +- Kind: function +- Definition: `n_ua.c:214` +- Declaration/interface: `note.h:921` +- Public/exported names: `NoteSetUserAgentCPU` +- Macro aliases/wrappers: none found +- Signature/API shape: `void NoteSetUserAgentCPU(int cpu_mem, int cpu_mhz, int cpu_cores, char *cpu_vendor, char *cpu_name)` +- Visibility: public note-c API when `n_ua.c` is built; excluded from low-memory builds by source/build configuration +- Ownership/lifetime role: stores caller-provided CPU values and string pointers for later user-agent JSON construction + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes file-static `n_cpu_cores`, `n_cpu_mem`, `n_cpu_mhz`, `n_cpu_name`, and `n_cpu_vendor` +- Artifact coverage: source-inspected artifact + +## Behavior + +Assigns the CPU core count, memory, MHz, vendor string pointer, and CPU name string pointer into file-static user-agent state. It does not copy, validate, or allocate the strings. + +## Important Boundaries + +- Preconditions and assumptions: non-null strings, when provided, must remain valid until user-agent construction copies them. +- Error/null/empty behavior: zero numeric values and null strings are accepted and later suppress optional CPU fields in `NoteUserAgent`. +- Ownership and lifetime: caller owns all pointed-to strings; note-c stores only raw pointers. +- Concurrency/global state: writes shared file-static state without locking. +- Portability/platform constraints: implementation exists only outside `NOTE_C_LOW_MEM` builds; compile-time Arduino defaults may be overwritten by this setter. +- Performance shape: three scalar assignments and two pointer assignments. +- Security or parsing constraints: no string validation or lifetime protection. + +## Direct Call Sites + +Production-only exact search found only the public declaration in `note.h:921` and the definition in `n_ua.c:214`. Focused tests call it from `test/src/NoteUserAgent_test.cpp`. No production repository caller, wrapper, or alias was found. + +## Role In Callers + +No production repository caller role. Public setter for downstream libraries to stamp CPU metadata into `NoteUserAgent` output. + +## Tests Observed + +Focused tests in `test/src/NoteUserAgent_test.cpp` set CPU values and verify emitted fields. Gaps include zero suppression, null strings, Arduino default preservation/override, pointer lifetime after caller buffer mutation, and low-memory build behavior. + +## Graph Links + +- Graph node id: `function:n_ua.c:214:NoteSetUserAgentCPU` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a source-level leaf. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md b/source-research/artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md new file mode 100644 index 00000000..1d51a53e --- /dev/null +++ b/source-research/artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md @@ -0,0 +1,54 @@ +# `NoteUserAgentUpdate` + +## Status + +Finalized. Source-inspected weak user-agent extension hook. + +## Identity + +- Kind: function +- Definition: `n_ua.c:80` +- Declaration/interface: weak function outside MSVC, normal function under MSVC +- Signature/API shape: `void NoteUserAgentUpdate(J *ua)` +- Visibility: public override hook when user-agent support is compiled +- Public/exported names: `NoteUserAgentUpdate` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Default implementation ignores the passed user-agent object. Higher-level code may override the weak symbol outside MSVC. + +## Important Boundaries + +- Preconditions and assumptions: compiled only when user-agent support is included. +- Error/null/empty behavior: default implementation has no effect. +- Ownership and lifetime: does not allocate or retain the object. +- Concurrency/global state: no global state in default implementation. +- Performance shape: O(1). +- Portability/platform constraints: weak-symbol override is not used for MSVC. + +## Direct Call Sites + +Exact source search found `NoteUserAgent` as the production caller. + +## Role In Callers + +`NoteUserAgent` calls this hook after populating built-in fields so external code can add fields. + +## Tests Observed + +`NoteUserAgent_test.cpp` provides test-side override evidence for user-agent customization. + +## Graph Links + +- Graph node id: `function:n_ua.c:80:NoteUserAgentUpdate` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/n_ua_c__L95__NoteUserAgent.md b/source-research/artifacts/functions/n_ua_c__L95__NoteUserAgent.md new file mode 100644 index 00000000..3fbe3427 --- /dev/null +++ b/source-research/artifacts/functions/n_ua_c__L95__NoteUserAgent.md @@ -0,0 +1,59 @@ +# `NoteUserAgent` + +## Status + +Finalized. Source-inspected weak user-agent object builder. + +## Identity + +- Kind: function +- Definition: `n_ua.c:95` +- Declaration/interface: weak function outside MSVC, normal function under MSVC +- Signature/API shape: `J *NoteUserAgent(void)` +- Visibility: public/overrideable helper when user-agent support is compiled +- Public/exported names: `NoteUserAgent` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:2450:JCreateObject` finalized + - `function:n_cjson.c:2013:JAddStringToObject` finalized + - `function:n_hooks.c:209:NoteGetActiveInterface` finalized + - `function:n_cjson.c:1974:JAddNumberToObject` finalized + - `function:n_ua.c:80:NoteUserAgentUpdate` finalized +- External/system dependencies: compiler/version macros +- Data/type/global dependencies: user-agent global strings/numeric CPU and OS fields + +## Behavior + +Creates a JSON object, adds agent and compiler strings, records the active request interface as `none`, `serial`, `i2c`, or `unknown`, conditionally adds nonzero CPU numeric fields and non-null CPU/OS strings, calls `NoteUserAgentUpdate`, and returns the object. Allocation failure for the root object returns NULL. Individual add helper failures are not checked. + +## Important Boundaries + +- Preconditions and assumptions: excluded in low-memory builds through surrounding user-agent compile guards. +- Error/null/empty behavior: root allocation failure returns NULL; optional fields are skipped when zero/null. +- Ownership and lifetime: caller owns the returned JSON object. +- Concurrency/global state: reads global user-agent configuration and active interface state. +- Performance shape: bounded by field count and JSON allocations. +- Portability/platform constraints: compiler string depends on preprocessor/compiler macros. + +## Direct Call Sites + +Exact source search found `_noteTransactionShouldLock` as the transaction caller when user-agent injection is enabled. + +## Role In Callers + +The transaction path builds this object for hub.set/product requests, but current source serializes the request before attaching the body, so this mutation is not reflected in the already-created transmit buffer. + +## Tests Observed + +`NoteUserAgent_test.cpp` covers field construction; `NoteTransaction_test.cpp` covers user-agent injection predicates. + +## Graph Links + +- Graph node id: `function:n_ua.c:95:NoteUserAgent` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L14__wait_for_test_port.md b/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L14__wait_for_test_port.md new file mode 100644 index 00000000..f20098a1 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L14__wait_for_test_port.md @@ -0,0 +1,59 @@ +# `_wait_for_test_port` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/after_upload.py:14` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b_wait_for_test_port\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/after_upload.py:14:_wait_for_test_port` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L30__start_tests.md b/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L30__start_tests.md new file mode 100644 index 00000000..ea2f210a --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L30__start_tests.md @@ -0,0 +1,59 @@ +# `_start_tests` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/after_upload.py:30` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b_start_tests\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/after_upload.py:30:_start_tests` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L36__after_upload.md b/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L36__after_upload.md new file mode 100644 index 00000000..2c4c249b --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_after_upload_py__L36__after_upload.md @@ -0,0 +1,59 @@ +# `after_upload` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/after_upload.py:36` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bafter_upload\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/after_upload.py:36:after_upload` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_cpp__L13__BinaryGenerator.md b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_cpp__L13__BinaryGenerator.md new file mode 100644 index 00000000..0b63237c --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_cpp__L13__BinaryGenerator.md @@ -0,0 +1,59 @@ +# `BinaryGenerator` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.cpp:13` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBinaryGenerator\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.cpp:13:BinaryGenerator` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L106__readDataUntilTimeout.md b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L106__readDataUntilTimeout.md new file mode 100644 index 00000000..45a2505b --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L106__readDataUntilTimeout.md @@ -0,0 +1,59 @@ +# `readDataUntilTimeout` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:106` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:n_cobs.c:115:_cobsEncode` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\breadDataUntilTimeout\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:106:readDataUntilTimeout` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L11__set_aux_serial_baudrate.md b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L11__set_aux_serial_baudrate.md new file mode 100644 index 00000000..474f686d --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L11__set_aux_serial_baudrate.md @@ -0,0 +1,67 @@ +# `set_aux_serial_baudrate` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:11` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:52:initialize_notecard_interface` (calls, low, verified=False) +- `function:n_request.c:173:NoteNewRequest` (calls, low, verified=False) +- `function:n_cjson.c:2013:JAddStringToObject` (calls, low, verified=False) +- `function:n_cjson.c:1974:JAddNumberToObject` (calls, low, verified=False) +- `function:n_request.c:234:NoteRequestResponseWithRetry` (calls, low, verified=False) +- `function:n_cjson_helpers.c:152:JIsNullString` (calls, low, verified=False) +- `function:n_cjson_helpers.c:27:JGetString` (calls, low, verified=False) +- `function:n_cjson_helpers.c:99:JGetNumber` (calls, low, verified=False) +- `function:n_cjson.c:209:JDelete` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bset_aux_serial_baudrate\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:11:set_aux_serial_baudrate` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L52__initialize_notecard_interface.md b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L52__initialize_notecard_interface.md new file mode 100644 index 00000000..016a2940 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L52__initialize_notecard_interface.md @@ -0,0 +1,59 @@ +# `initialize_notecard_interface` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:52` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\binitialize_notecard_interface\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:52:initialize_notecard_interface` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L79__uninitialize_notecard_interface.md b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L79__uninitialize_notecard_interface.md new file mode 100644 index 00000000..41c5cb9a --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L79__uninitialize_notecard_interface.md @@ -0,0 +1,59 @@ +# `uninitialize_notecard_interface` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:79` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\buninitialize_notecard_interface\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:79:uninitialize_notecard_interface` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L14__loop.md b/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L14__loop.md new file mode 100644 index 00000000..571e869b --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L14__loop.md @@ -0,0 +1,59 @@ +# `loop` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/src/main.cpp:14` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bloop\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/src/main.cpp:14:loop` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L4__setup.md b/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L4__setup.md new file mode 100644 index 00000000..0e651a2b --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L4__setup.md @@ -0,0 +1,59 @@ +# `setup` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/src/main.cpp:4` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bsetup\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/src/main.cpp:4:setup` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L9__showHelp.md b/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L9__showHelp.md new file mode 100644 index 00000000..8cc36dcc --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_src_main_cpp__L9__showHelp.md @@ -0,0 +1,59 @@ +# `showHelp` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/src/main.cpp:9` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bshowHelp\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/src/main.cpp:9:showHelp` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L13__testsuite_binary_generators_setUp.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L13__testsuite_binary_generators_setUp.md new file mode 100644 index 00000000..df559d4e --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L13__testsuite_binary_generators_setUp.md @@ -0,0 +1,59 @@ +# `testsuite_binary_generators_setUp` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:13` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_binary_generators_setUp\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:13:testsuite_binary_generators_setUp` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L17__testsuite_binary_generators_tearDown.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L17__testsuite_binary_generators_tearDown.md new file mode 100644 index 00000000..9d3e3668 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L17__testsuite_binary_generators_tearDown.md @@ -0,0 +1,59 @@ +# `testsuite_binary_generators_tearDown` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:17` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_binary_generators_tearDown\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:17:testsuite_binary_generators_tearDown` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L23__check_binary.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L23__check_binary.md new file mode 100644 index 00000000..7194104c --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L23__check_binary.md @@ -0,0 +1,59 @@ +# `check_binary` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:23` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bcheck_binary\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:23:check_binary` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L41__check_content_fixed_value.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L41__check_content_fixed_value.md new file mode 100644 index 00000000..7914a010 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L41__check_content_fixed_value.md @@ -0,0 +1,59 @@ +# `check_content_fixed_value` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:41` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bcheck_content_fixed_value\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:41:check_content_fixed_value` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L53__TEST.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L53__TEST.md new file mode 100644 index 00000000..1d9e3ea2 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L53__TEST.md @@ -0,0 +1,60 @@ +# `TEST` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:53` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_binary_generators.cpp:23:check_binary` (calls, low, verified=False) +- `function:test/hitl/card.binary/test/test_binary_generators.cpp:41:check_content_fixed_value` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:53:TEST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L64__TEST.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L64__TEST.md new file mode 100644 index 00000000..b80fb362 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L64__TEST.md @@ -0,0 +1,59 @@ +# `TEST` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:64` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:64:TEST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L84__testsuite_binary_generators.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L84__testsuite_binary_generators.md new file mode 100644 index 00000000..bb3170a0 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L84__testsuite_binary_generators.md @@ -0,0 +1,59 @@ +# `testsuite_binary_generators` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:84` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/hitl/card.binary/test/test_unity_util.h:19:TEST_SUITE` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_binary_generators\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:84:testsuite_binary_generators` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L8__testsuite_binary_generators_filter.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L8__testsuite_binary_generators_filter.md new file mode 100644 index 00000000..86961d6d --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L8__testsuite_binary_generators_filter.md @@ -0,0 +1,59 @@ +# `testsuite_binary_generators_filter` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:8` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_binary_generators_filter\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_binary_generators.cpp:8:testsuite_binary_generators_filter` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L121__binaryTransferTest.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L121__binaryTransferTest.md new file mode 100644 index 00000000..e25347f4 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L121__binaryTransferTest.md @@ -0,0 +1,60 @@ +# `binaryTransferTest` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:121` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_card_binary.cpp:44:assert_initialize_notecard` (calls, low, verified=False) +- `function:test/hitl/card.binary/test/test_card_binary.cpp:53:AssertNoteBinaryReset` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bbinaryTransferTest\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:121:binaryTransferTest` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L308__get_expected_max_binary_length.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L308__get_expected_max_binary_length.md new file mode 100644 index 00000000..d7c31085 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L308__get_expected_max_binary_length.md @@ -0,0 +1,63 @@ +# `get_expected_max_binary_length` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:308` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:n_request.c:234:NoteRequestResponseWithRetry` (calls, low, verified=False) +- `function:n_request.c:173:NoteNewRequest` (calls, low, verified=False) +- `function:n_cjson_helpers.c:27:JGetString` (calls, low, verified=False) +- `function:n_cjson_helpers.c:60:JGetObject` (calls, low, verified=False) +- `function:n_cjson.c:209:JDelete` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bget_expected_max_binary_length\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:308:get_expected_max_binary_length` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L30__testsuite_card_binary_filter.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L30__testsuite_card_binary_filter.md new file mode 100644 index 00000000..eb31ef60 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L30__testsuite_card_binary_filter.md @@ -0,0 +1,59 @@ +# `testsuite_card_binary_filter` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:30` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_card_binary_filter\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:30:testsuite_card_binary_filter` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L338__test_get_max_binary_length.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L338__test_get_max_binary_length.md new file mode 100644 index 00000000..0f63c671 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L338__test_get_max_binary_length.md @@ -0,0 +1,68 @@ +# `test_get_max_binary_length` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:338` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_card_binary.cpp:44:assert_initialize_notecard` (calls, low, verified=False) +- `function:test/hitl/card.binary/test/test_card_binary.cpp:53:AssertNoteBinaryReset` (calls, low, verified=False) +- `function:test/hitl/card.binary/test/test_card_binary.cpp:308:get_expected_max_binary_length` (calls, low, verified=False) +- `function:n_request.c:234:NoteRequestResponseWithRetry` (calls, low, verified=False) +- `function:n_request.c:173:NoteNewRequest` (calls, low, verified=False) +- `function:n_cjson_helpers.c:152:JIsNullString` (calls, low, verified=False) +- `function:n_cjson.c:2705:JIsNumber` (calls, low, verified=False) +- `function:n_cjson.c:1732:JGetObjectItem` (calls, low, verified=False) +- `function:n_cjson_helpers.c:91:JNumberValue` (calls, low, verified=False) +- `function:n_cjson.c:209:JDelete` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btest_get_max_binary_length\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:338:test_get_max_binary_length` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L35__testsuite_card_binary_setUp.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L35__testsuite_card_binary_setUp.md new file mode 100644 index 00000000..043bc2ea --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L35__testsuite_card_binary_setUp.md @@ -0,0 +1,59 @@ +# `testsuite_card_binary_setUp` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:35` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_card_binary_setUp\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:35:testsuite_card_binary_setUp` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L370__base_test_max_length.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L370__base_test_max_length.md new file mode 100644 index 00000000..8500c325 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L370__base_test_max_length.md @@ -0,0 +1,59 @@ +# `base_test_max_length` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:370` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_card_binary.cpp:121:binaryTransferTest` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bbase_test_max_length\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:370:base_test_max_length` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L388__TEST.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L388__TEST.md new file mode 100644 index 00000000..0a244179 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L388__TEST.md @@ -0,0 +1,59 @@ +# `TEST` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:388` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_card_binary.cpp:370:base_test_max_length` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:388:TEST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L393__TEST.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L393__TEST.md new file mode 100644 index 00000000..0b434e3a --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L393__TEST.md @@ -0,0 +1,59 @@ +# `TEST` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:393` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_card_binary.cpp:370:base_test_max_length` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:393:TEST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L398__TEST.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L398__TEST.md new file mode 100644 index 00000000..8521c9cf --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L398__TEST.md @@ -0,0 +1,60 @@ +# `TEST` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:398` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:11:set_aux_serial_baudrate` (calls, low, verified=False) +- `function:test/hitl/card.binary/test/test_card_binary.cpp:370:base_test_max_length` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:398:TEST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L40__testsuite_card_binary_tearDown.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L40__testsuite_card_binary_tearDown.md new file mode 100644 index 00000000..550e8ba1 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L40__testsuite_card_binary_tearDown.md @@ -0,0 +1,59 @@ +# `testsuite_card_binary_tearDown` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:40` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_card_binary_tearDown\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:40:testsuite_card_binary_tearDown` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L429__waitForNotecardConnected.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L429__waitForNotecardConnected.md new file mode 100644 index 00000000..41555401 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L429__waitForNotecardConnected.md @@ -0,0 +1,59 @@ +# `waitForNotecardConnected` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:429` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bwaitForNotecardConnected\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:429:waitForNotecardConnected` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L439__testsuite_card_binary.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L439__testsuite_card_binary.md new file mode 100644 index 00000000..6c3b3508 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L439__testsuite_card_binary.md @@ -0,0 +1,63 @@ +# `testsuite_card_binary` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:439` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/hitl/card.binary/test/test_unity_util.h:19:TEST_SUITE` (calls, low, verified=False) +- `macro:test/hitl/card.binary/test/test_unity_util.h:29:RUN_FILTER` (calls, low, verified=False) +- `macro:test/hitl/card.binary/test/test_card_binary.cpp:416:RUN_SMOKE_TESTS` (calls, low, verified=False) +- `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:11:set_aux_serial_baudrate` (calls, low, verified=False) +- `macro:test/hitl/card.binary/test/test_card_binary.cpp:236:RUN_ALL_SIZES_ALL_IFACES` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btestsuite_card_binary\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:439:testsuite_card_binary` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L44__assert_initialize_notecard.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L44__assert_initialize_notecard.md new file mode 100644 index 00000000..609afa16 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L44__assert_initialize_notecard.md @@ -0,0 +1,59 @@ +# `assert_initialize_notecard` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:44` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:52:initialize_notecard_interface` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bassert_initialize_notecard\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:44:assert_initialize_notecard` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L53__AssertNoteBinaryReset.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L53__AssertNoteBinaryReset.md new file mode 100644 index 00000000..43949827 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L53__AssertNoteBinaryReset.md @@ -0,0 +1,59 @@ +# `AssertNoteBinaryReset` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:53` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:n_helpers.c:492:NoteBinaryStoreReset` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bAssertNoteBinaryReset\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_card_binary.cpp:53:AssertNoteBinaryReset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L20__waitForStartCommand.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L20__waitForStartCommand.md new file mode 100644 index 00000000..7091a8fd --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L20__waitForStartCommand.md @@ -0,0 +1,59 @@ +# `waitForStartCommand` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_main.cpp:20` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bwaitForStartCommand\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_main.cpp:20:waitForStartCommand` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L41__setup.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L41__setup.md new file mode 100644 index 00000000..0f12b717 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L41__setup.md @@ -0,0 +1,60 @@ +# `setup` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_main.cpp:41` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_main.cpp:20:waitForStartCommand` (calls, low, verified=False) +- `function:test/hitl/card.binary/test/test_main.cpp:8:runUnityTests` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bsetup\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_main.cpp:41:setup` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L60__loop.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L60__loop.md new file mode 100644 index 00000000..8d6c25e2 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L60__loop.md @@ -0,0 +1,59 @@ +# `loop` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_main.cpp:60` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bloop\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_main.cpp:60:loop` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L8__runUnityTests.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L8__runUnityTests.md new file mode 100644 index 00000000..202daea7 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L8__runUnityTests.md @@ -0,0 +1,60 @@ +# `runUnityTests` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_main.cpp:8` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:test/hitl/card.binary/test/test_binary_generators.cpp:84:testsuite_binary_generators` (calls, low, verified=False) +- `function:test/hitl/card.binary/test/test_card_binary.cpp:439:testsuite_card_binary` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\brunUnityTests\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_main.cpp:8:runUnityTests` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L15__setUp.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L15__setUp.md new file mode 100644 index 00000000..8303b84a --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L15__setUp.md @@ -0,0 +1,59 @@ +# `setUp` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_unity_util.cpp:15` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bsetUp\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_unity_util.cpp:15:setUp` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L22__tearDown.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L22__tearDown.md new file mode 100644 index 00000000..b238407a --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L22__tearDown.md @@ -0,0 +1,59 @@ +# `tearDown` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_unity_util.cpp:22` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btearDown\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_unity_util.cpp:22:tearDown` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L29__filterTest.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L29__filterTest.md new file mode 100644 index 00000000..fe4c5e62 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L29__filterTest.md @@ -0,0 +1,59 @@ +# `filterTest` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_unity_util.cpp:29` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bfilterTest\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_unity_util.cpp:29:filterTest` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L8__test_suite_hooks.md b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L8__test_suite_hooks.md new file mode 100644 index 00000000..a1303a49 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L8__test_suite_hooks.md @@ -0,0 +1,59 @@ +# `test_suite_hooks` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/card.binary/test/test_unity_util.cpp:8` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btest_suite_hooks\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/card.binary/test/test_unity_util.cpp:8:test_suite_hooks` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L120__WebRequestHandler_log_request_headers.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L120__WebRequestHandler_log_request_headers.md new file mode 100644 index 00000000..a8f9f6f2 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L120__WebRequestHandler_log_request_headers.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.log_request_headers` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:120` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\blog_request_headers\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:120:WebRequestHandler.log_request_headers` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L126__WebRequestHandler_do.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L126__WebRequestHandler_do.md new file mode 100644 index 00000000..f2f6e17b --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L126__WebRequestHandler_do.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.do` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:126` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdo\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:126:WebRequestHandler.do` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L13__log.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L13__log.md new file mode 100644 index 00000000..1111d567 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L13__log.md @@ -0,0 +1,59 @@ +# `log` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/scripts/md5srv.py:13` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\blog\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/scripts/md5srv.py:13:log` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L140__WebRequestHandler_validate_token.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L140__WebRequestHandler_validate_token.md new file mode 100644 index 00000000..a57ebf24 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L140__WebRequestHandler_validate_token.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.validate_token` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:140` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bvalidate_token\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:140:WebRequestHandler.validate_token` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L148__WebRequestHandler_get_md5.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L148__WebRequestHandler_get_md5.md new file mode 100644 index 00000000..eb321104 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L148__WebRequestHandler_get_md5.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.get_md5` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:148` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bget_md5\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:148:WebRequestHandler.get_md5` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L163__WebRequestHandler_chunk_content.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L163__WebRequestHandler_chunk_content.md new file mode 100644 index 00000000..8491e950 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L163__WebRequestHandler_chunk_content.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.chunk_content` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:163` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bchunk_content\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:163:WebRequestHandler.chunk_content` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L166__WebRequestHandler_md5_for_directory.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L166__WebRequestHandler_md5_for_directory.md new file mode 100644 index 00000000..a1dbc5e2 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L166__WebRequestHandler_md5_for_directory.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.md5_for_directory` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:166` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bmd5_for_directory\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:166:WebRequestHandler.md5_for_directory` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L189__WebRequestHandler_delete_files.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L189__WebRequestHandler_delete_files.md new file mode 100644 index 00000000..76e96538 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L189__WebRequestHandler_delete_files.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.delete_files` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:189` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdelete_files\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:189:WebRequestHandler.delete_files` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L196__WebRequestHandler_write_file_or_note.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L196__WebRequestHandler_write_file_or_note.md new file mode 100644 index 00000000..d667a83a --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L196__WebRequestHandler_write_file_or_note.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.write_file_or_note` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:196` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bwrite_file_or_note\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:196:WebRequestHandler.write_file_or_note` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L202__WebRequestHandler_write_note.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L202__WebRequestHandler_write_note.md new file mode 100644 index 00000000..5be09ee0 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L202__WebRequestHandler_write_note.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.write_note` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:202` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bwrite_note\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:202:WebRequestHandler.write_note` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L20__log_sensitive.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L20__log_sensitive.md new file mode 100644 index 00000000..24552f75 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L20__log_sensitive.md @@ -0,0 +1,59 @@ +# `log_sensitive` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/scripts/md5srv.py:20` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\blog_sensitive\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/scripts/md5srv.py:20:log_sensitive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L227__WebRequestHandler_write_file.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L227__WebRequestHandler_write_file.md new file mode 100644 index 00000000..16e92986 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L227__WebRequestHandler_write_file.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.write_file` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:227` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bwrite_file\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:227:WebRequestHandler.write_file` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L235__WebRequestHandler__read_file.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L235__WebRequestHandler__read_file.md new file mode 100644 index 00000000..b78eaa44 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L235__WebRequestHandler__read_file.md @@ -0,0 +1,59 @@ +# `WebRequestHandler._read_file` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:235` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b_read_file\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:235:WebRequestHandler._read_file` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L243__WebRequestHandler__chunk_file.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L243__WebRequestHandler__chunk_file.md new file mode 100644 index 00000000..7b7d976b --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L243__WebRequestHandler__chunk_file.md @@ -0,0 +1,59 @@ +# `WebRequestHandler._chunk_file` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:243` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b_chunk_file\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:243:WebRequestHandler._chunk_file` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L251__WebRequestHandler__write_file.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L251__WebRequestHandler__write_file.md new file mode 100644 index 00000000..47306fd0 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L251__WebRequestHandler__write_file.md @@ -0,0 +1,59 @@ +# `WebRequestHandler._write_file` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:251` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b_write_file\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:251:WebRequestHandler._write_file` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L27__HTTPException___init.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L27__HTTPException___init.md new file mode 100644 index 00000000..1b9f6eb8 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L27__HTTPException___init.md @@ -0,0 +1,59 @@ +# `HTTPException.__init__` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:27` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b__init__\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:27:HTTPException.__init__` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L286__WebRequestHandler_validate_url_path.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L286__WebRequestHandler_validate_url_path.md new file mode 100644 index 00000000..e6b7e571 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L286__WebRequestHandler_validate_url_path.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.validate_url_path` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:286` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bvalidate_url_path\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:286:WebRequestHandler.validate_url_path` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L290__WebRequestHandler_validate_path.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L290__WebRequestHandler_validate_path.md new file mode 100644 index 00000000..076ee63f --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L290__WebRequestHandler_validate_path.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.validate_path` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:290` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bvalidate_path\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:290:WebRequestHandler.validate_path` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L297__WebRequestHandler_dump_request.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L297__WebRequestHandler_dump_request.md new file mode 100644 index 00000000..48010b8c --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L297__WebRequestHandler_dump_request.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.dump_request` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:297` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdump_request\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:297:WebRequestHandler.dump_request` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L306__main.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L306__main.md new file mode 100644 index 00000000..3540485d --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L306__main.md @@ -0,0 +1,59 @@ +# `main` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/scripts/md5srv.py:306` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bmain\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/scripts/md5srv.py:306:main` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L315__main_build_request_handler.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L315__main_build_request_handler.md new file mode 100644 index 00000000..3421d432 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L315__main_build_request_handler.md @@ -0,0 +1,59 @@ +# `main.build_request_handler` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/hitl/scripts/md5srv.py:315` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bbuild_request_handler\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/hitl/scripts/md5srv.py:315:main.build_request_handler` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L49__WebRequestHandler___init.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L49__WebRequestHandler___init.md new file mode 100644 index 00000000..d1470f8e --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L49__WebRequestHandler___init.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.__init__` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:49` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b__init__\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:49:WebRequestHandler.__init__` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L57__WebRequestHandler_url.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L57__WebRequestHandler_url.md new file mode 100644 index 00000000..8e5a70e1 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L57__WebRequestHandler_url.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.url` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:57` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\burl\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:57:WebRequestHandler.url` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L61__WebRequestHandler_query_data.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L61__WebRequestHandler_query_data.md new file mode 100644 index 00000000..8311dccc --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L61__WebRequestHandler_query_data.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.query_data` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:61` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bquery_data\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:61:WebRequestHandler.query_data` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L65__WebRequestHandler_post_data.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L65__WebRequestHandler_post_data.md new file mode 100644 index 00000000..2d808662 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L65__WebRequestHandler_post_data.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.post_data` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:65` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bpost_data\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:65:WebRequestHandler.post_data` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L80__WebRequestHandler_form_data.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L80__WebRequestHandler_form_data.md new file mode 100644 index 00000000..e2c9a787 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L80__WebRequestHandler_form_data.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.form_data` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:80` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bform_data\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:80:WebRequestHandler.form_data` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L83__WebRequestHandler_do_GET.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L83__WebRequestHandler_do_GET.md new file mode 100644 index 00000000..24ccf1e9 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L83__WebRequestHandler_do_GET.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.do_GET` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:83` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdo_GET\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:83:WebRequestHandler.do_GET` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L86__WebRequestHandler_do_DELETE.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L86__WebRequestHandler_do_DELETE.md new file mode 100644 index 00000000..0fa6fe8a --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L86__WebRequestHandler_do_DELETE.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.do_DELETE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:86` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdo_DELETE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:86:WebRequestHandler.do_DELETE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L89__WebRequestHandler_do_POST.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L89__WebRequestHandler_do_POST.md new file mode 100644 index 00000000..31b49bd3 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L89__WebRequestHandler_do_POST.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.do_POST` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:89` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdo_POST\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:89:WebRequestHandler.do_POST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L92__WebRequestHandler_do_PUT.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L92__WebRequestHandler_do_PUT.md new file mode 100644 index 00000000..b16612bb --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L92__WebRequestHandler_do_PUT.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.do_PUT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:92` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdo_PUT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:92:WebRequestHandler.do_PUT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L95__WebRequestHandler_send_status.md b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L95__WebRequestHandler_send_status.md new file mode 100644 index 00000000..84bf09f9 --- /dev/null +++ b/source-research/artifacts/functions/test_hitl_scripts_md5srv_py__L95__WebRequestHandler_send_status.md @@ -0,0 +1,59 @@ +# `WebRequestHandler.send_status` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: method +- Definition: `test/hitl/scripts/md5srv.py:95` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bsend_status\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `method:test/hitl/scripts/md5srv.py:95:WebRequestHandler.send_status` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1013__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1013__FUNCNAME.md new file mode 100644 index 00000000..998bbd93 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1013__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1013` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1013:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1096__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1096__FUNCNAME.md new file mode 100644 index 00000000..82236ea4 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1096__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1096` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1096:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1182__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1182__FUNCNAME.md new file mode 100644 index 00000000..b8774c9c --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1182__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1182` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1182:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L122__reset.md b/source-research/artifacts/functions/test_include_fff_h__L122__reset.md new file mode 100644 index 00000000..a89c550b --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L122__reset.md @@ -0,0 +1,59 @@ +# `_reset` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:122` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\b_reset\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:122:_reset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1271__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1271__FUNCNAME.md new file mode 100644 index 00000000..959e168a --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1271__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1271` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1271:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1363__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1363__FUNCNAME.md new file mode 100644 index 00000000..0afdbeef --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1363__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1363` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1363:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1458__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1458__FUNCNAME.md new file mode 100644 index 00000000..1279220b --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1458__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1458` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1458:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1556__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1556__FUNCNAME.md new file mode 100644 index 00000000..5382de8a --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1556__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1556` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1556:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1638__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1638__FUNCNAME.md new file mode 100644 index 00000000..123e7a83 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1638__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1638` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1638:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L166__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L166__FUNCNAME.md new file mode 100644 index 00000000..d3d391fd --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L166__FUNCNAME.md @@ -0,0 +1,62 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:166` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:166:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1690__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1690__FUNCNAME.md new file mode 100644 index 00000000..650e3746 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1690__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1690` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1690:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1745__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1745__FUNCNAME.md new file mode 100644 index 00000000..501b2e04 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1745__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1745` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1745:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1803__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1803__FUNCNAME.md new file mode 100644 index 00000000..9a0d919d --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1803__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1803` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1803:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1864__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1864__FUNCNAME.md new file mode 100644 index 00000000..66585716 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1864__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1864` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1864:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1928__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1928__FUNCNAME.md new file mode 100644 index 00000000..e69e8cc3 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1928__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1928` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1928:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L1995__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L1995__FUNCNAME.md new file mode 100644 index 00000000..fdee680e --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L1995__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:1995` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:1995:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2065__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2065__FUNCNAME.md new file mode 100644 index 00000000..8f5661f7 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2065__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2065` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2065:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L207__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L207__FUNCNAME.md new file mode 100644 index 00000000..36b99946 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L207__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:207` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:207:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2138__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2138__FUNCNAME.md new file mode 100644 index 00000000..b9dc4da1 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2138__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2138` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2138:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2214__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2214__FUNCNAME.md new file mode 100644 index 00000000..b887d574 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2214__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2214` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2214:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2293__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2293__FUNCNAME.md new file mode 100644 index 00000000..fc5e9526 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2293__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2293` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2293:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2375__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2375__FUNCNAME.md new file mode 100644 index 00000000..4e088443 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2375__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2375` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2375:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2460__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2460__FUNCNAME.md new file mode 100644 index 00000000..c4ca7e9e --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2460__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2460` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2460:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L251__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L251__FUNCNAME.md new file mode 100644 index 00000000..8b59d176 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L251__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:251` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:251:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2548__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2548__FUNCNAME.md new file mode 100644 index 00000000..61912d2a --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2548__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2548` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2548:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2639__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2639__FUNCNAME.md new file mode 100644 index 00000000..0a52caf4 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2639__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2639` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2639:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2733__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2733__FUNCNAME.md new file mode 100644 index 00000000..0137f7c7 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2733__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2733` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2733:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2830__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2830__FUNCNAME.md new file mode 100644 index 00000000..c24dcd73 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2830__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2830` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2830:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L2930__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L2930__FUNCNAME.md new file mode 100644 index 00000000..f1a7c59e --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L2930__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:2930` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:2930:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L298__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L298__FUNCNAME.md new file mode 100644 index 00000000..40f8d58e --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L298__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:298` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:298:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3033__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3033__FUNCNAME.md new file mode 100644 index 00000000..d1bef495 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3033__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3033` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3033:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3139__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3139__FUNCNAME.md new file mode 100644 index 00000000..da950100 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3139__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3139` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3139:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3248__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3248__FUNCNAME.md new file mode 100644 index 00000000..511a0b12 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3248__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3248` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3248:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3338__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3338__FUNCNAME.md new file mode 100644 index 00000000..5b5d0a00 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3338__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3338` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3338:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3391__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3391__FUNCNAME.md new file mode 100644 index 00000000..e64425a0 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3391__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3391` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3391:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3447__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3447__FUNCNAME.md new file mode 100644 index 00000000..73b70233 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3447__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3447` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3447:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L348__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L348__FUNCNAME.md new file mode 100644 index 00000000..7ed705f9 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L348__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:348` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:348:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3506__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3506__FUNCNAME.md new file mode 100644 index 00000000..95580a50 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3506__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3506` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3506:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3568__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3568__FUNCNAME.md new file mode 100644 index 00000000..772225b7 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3568__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3568` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3568:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3633__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3633__FUNCNAME.md new file mode 100644 index 00000000..abf0f31d --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3633__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3633` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3633:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3701__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3701__FUNCNAME.md new file mode 100644 index 00000000..c2edb3c7 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3701__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3701` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3701:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3772__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3772__FUNCNAME.md new file mode 100644 index 00000000..6ac30a3b --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3772__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3772` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3772:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3846__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3846__FUNCNAME.md new file mode 100644 index 00000000..7167f5c4 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3846__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3846` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3846:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L3923__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L3923__FUNCNAME.md new file mode 100644 index 00000000..2686ddae --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L3923__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:3923` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:3923:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4003__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4003__FUNCNAME.md new file mode 100644 index 00000000..a08ea188 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4003__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4003` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4003:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L401__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L401__FUNCNAME.md new file mode 100644 index 00000000..1cbfb44f --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L401__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:401` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:401:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4086__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4086__FUNCNAME.md new file mode 100644 index 00000000..5aaf74f5 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4086__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4086` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4086:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4172__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4172__FUNCNAME.md new file mode 100644 index 00000000..c69a08c6 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4172__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4172` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4172:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4261__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4261__FUNCNAME.md new file mode 100644 index 00000000..c2c22007 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4261__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4261` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4261:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4353__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4353__FUNCNAME.md new file mode 100644 index 00000000..cad40375 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4353__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4353` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4353:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4448__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4448__FUNCNAME.md new file mode 100644 index 00000000..646afbba --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4448__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4448` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4448:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4546__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4546__FUNCNAME.md new file mode 100644 index 00000000..58fd576d --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4546__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4546` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4546:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L457__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L457__FUNCNAME.md new file mode 100644 index 00000000..023fb0ef --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L457__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:457` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:457:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4647__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4647__FUNCNAME.md new file mode 100644 index 00000000..f439ab9e --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4647__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4647` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4647:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4751__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4751__FUNCNAME.md new file mode 100644 index 00000000..d8090ab1 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4751__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4751` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4751:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4841__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4841__FUNCNAME.md new file mode 100644 index 00000000..9fc43fb8 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4841__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4841` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4841:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4905__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4905__FUNCNAME.md new file mode 100644 index 00000000..05161ab3 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4905__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4905` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4905:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L4972__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L4972__FUNCNAME.md new file mode 100644 index 00000000..0f158c3a --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L4972__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:4972` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:4972:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5042__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5042__FUNCNAME.md new file mode 100644 index 00000000..f88c6566 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5042__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5042` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5042:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5115__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5115__FUNCNAME.md new file mode 100644 index 00000000..838ebd33 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5115__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5115` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5115:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L516__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L516__FUNCNAME.md new file mode 100644 index 00000000..e7e2eb37 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L516__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:516` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:516:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5191__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5191__FUNCNAME.md new file mode 100644 index 00000000..b6875840 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5191__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5191` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5191:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5270__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5270__FUNCNAME.md new file mode 100644 index 00000000..96d54397 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5270__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5270` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5270:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5352__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5352__FUNCNAME.md new file mode 100644 index 00000000..98c10294 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5352__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5352` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5352:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5437__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5437__FUNCNAME.md new file mode 100644 index 00000000..f39c4e21 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5437__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5437` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5437:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5525__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5525__FUNCNAME.md new file mode 100644 index 00000000..952c616b --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5525__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5525` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5525:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5616__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5616__FUNCNAME.md new file mode 100644 index 00000000..1c107b87 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5616__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5616` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5616:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5710__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5710__FUNCNAME.md new file mode 100644 index 00000000..3737428d --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5710__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5710` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5710:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L578__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L578__FUNCNAME.md new file mode 100644 index 00000000..ed164a93 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L578__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:578` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:578:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5807__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5807__FUNCNAME.md new file mode 100644 index 00000000..39b194ac --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5807__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5807` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5807:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L5907__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L5907__FUNCNAME.md new file mode 100644 index 00000000..c20d2bc4 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L5907__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:5907` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:5907:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L6010__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L6010__FUNCNAME.md new file mode 100644 index 00000000..4061e303 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L6010__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:6010` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:6010:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L6116__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L6116__FUNCNAME.md new file mode 100644 index 00000000..b2f9fa03 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L6116__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:6116` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:6116:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L6225__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L6225__FUNCNAME.md new file mode 100644 index 00000000..ecb3eba4 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L6225__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:6225` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:6225:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L6337__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L6337__FUNCNAME.md new file mode 100644 index 00000000..3b8831ca --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L6337__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:6337` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:6337:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L643__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L643__FUNCNAME.md new file mode 100644 index 00000000..32ef0b1f --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L643__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:643` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:643:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L6452__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L6452__FUNCNAME.md new file mode 100644 index 00000000..56619391 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L6452__FUNCNAME.md @@ -0,0 +1,66 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:6452` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- `macro:test/include/fff.h:78:SAVE_RET_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:6452:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L711__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L711__FUNCNAME.md new file mode 100644 index 00000000..1a19fa27 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L711__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:711` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:711:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L782__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L782__FUNCNAME.md new file mode 100644 index 00000000..06d144f2 --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L782__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:782` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:782:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L856__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L856__FUNCNAME.md new file mode 100644 index 00000000..97b66a5d --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L856__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:856` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:856:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_fff_h__L933__FUNCNAME.md b/source-research/artifacts/functions/test_include_fff_h__L933__FUNCNAME.md new file mode 100644 index 00000000..6799363b --- /dev/null +++ b/source-research/artifacts/functions/test_include_fff_h__L933__FUNCNAME.md @@ -0,0 +1,64 @@ +# `FUNCNAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/fff.h:933` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/include/fff.h:72:SAVE_ARG` (calls, low, verified=False) +- `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` (calls, low, verified=False) +- `macro:test/include/fff.h:85:HISTORY_DROPPED` (calls, low, verified=False) +- `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` (calls, low, verified=False) +- `macro:test/include/fff.h:149:REGISTER_CALL` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNCNAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/fff.h:933:FUNCNAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_include_time_mocks_h__L16__NoteGetMsIncrement.md b/source-research/artifacts/functions/test_include_time_mocks_h__L16__NoteGetMsIncrement.md new file mode 100644 index 00000000..ca49fc68 --- /dev/null +++ b/source-research/artifacts/functions/test_include_time_mocks_h__L16__NoteGetMsIncrement.md @@ -0,0 +1,59 @@ +# `NoteGetMsIncrement` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/include/time_mocks.h:16` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNoteGetMsIncrement\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/include/time_mocks.h:16:NoteGetMsIncrement` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_integration_link_test_c__L9__main.md b/source-research/artifacts/functions/test_integration_link_test_c__L9__main.md new file mode 100644 index 00000000..7e036dbc --- /dev/null +++ b/source-research/artifacts/functions/test_integration_link_test_c__L9__main.md @@ -0,0 +1,63 @@ +# `main` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/integration/link_test.c:9` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:248:NoteSetFnDefault` (calls, low, verified=False) +- `function:n_request.c:173:NoteNewRequest` (calls, low, verified=False) +- `function:n_cjson.c:2013:JAddStringToObject` (calls, low, verified=False) +- `function:n_cjson_helpers.c:27:JGetString` (calls, low, verified=False) +- `function:n_cjson.c:209:JDelete` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bmain\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/integration/link_test.c:9:main` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_src_NoteResponseError_test_cpp__L26__SCENARIO.md b/source-research/artifacts/functions/test_src_NoteResponseError_test_cpp__L26__SCENARIO.md new file mode 100644 index 00000000..3af71e14 --- /dev/null +++ b/source-research/artifacts/functions/test_src_NoteResponseError_test_cpp__L26__SCENARIO.md @@ -0,0 +1,62 @@ +# `SCENARIO` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/src/NoteResponseError_test.cpp:26` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:248:NoteSetFnDefault` (calls, low, verified=False) +- `function:n_cjson.c:976:JParse` (calls, low, verified=False) +- `macro:note.h:479:NoteResponseError` (calls, low, verified=False) +- `function:n_cjson.c:209:JDelete` (calls, low, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSCENARIO\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/src/NoteResponseError_test.cpp:26:SCENARIO` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/functions/test_src_NoteUserAgent_test_cpp__L29__NoteUserAgentUpdate.md b/source-research/artifacts/functions/test_src_NoteUserAgent_test_cpp__L29__NoteUserAgentUpdate.md new file mode 100644 index 00000000..dcfe739e --- /dev/null +++ b/source-research/artifacts/functions/test_src_NoteUserAgent_test_cpp__L29__NoteUserAgentUpdate.md @@ -0,0 +1,59 @@ +# `NoteUserAgentUpdate` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: function +- Definition: `test/src/NoteUserAgent_test.cpp:29` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNoteUserAgentUpdate\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `function:test/src/NoteUserAgent_test.cpp:29:NoteUserAgentUpdate` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/n_atof_c__L29__const.md b/source-research/artifacts/macros/n_atof_c__L29__const.md new file mode 100644 index 00000000..dcf36e1c --- /dev/null +++ b/source-research/artifacts/macros/n_atof_c__L29__const.md @@ -0,0 +1,59 @@ +# `const` + +## Status + +Finalized. Source-inspected legacy C compatibility macro local to `n_atof.c`. + +## Identity + +- Kind: macro +- Definition: `n_atof.c:29` +- Declaration/interface: local translation-unit macro, not exported by a public header +- Public/exported names: none +- Macro aliases/wrappers: maps `const` to `__const__` for GNU non-`__STDC__` builds, or to an empty token for other non-`__STDC__` builds +- Signature/API shape: object-like compatibility macro under `#ifndef __STDC__` +- Visibility: local to `n_atof.c` after its definition +- Ownership/lifetime role: preprocessor-only type-qualifier compatibility shim + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: compiler preprocessor symbols `__STDC__` and `__GNUC__` +- Data/type/global dependencies: affects later `const` tokens in `JAtoN` declarations when compiling as non-standard C +- Artifact coverage: source-inspected artifact + +## Behavior + +In standard C builds this macro is not defined. In non-`__STDC__` GNU builds it rewrites `const` to `__const__`; in other non-standard builds it removes the `const` qualifier. This lets the legacy locale-independent `JAtoN` implementation compile on older compilers. + +## Important Boundaries + +- Preconditions and assumptions: only intended for old non-standard C compiler modes. +- Error/null/empty behavior: no runtime behavior. +- Ownership and lifetime: preprocessor-only; no storage or ownership. +- Concurrency/global state: none. +- Portability/platform constraints: deliberately compiler-variant dependent. +- Performance shape: compile-time token substitution only. +- Security or parsing constraints: removing `const` in old compiler modes weakens compile-time immutability checks. + +## Direct Call Sites + +Source inspection shows later `const` uses in the `JAtoN` signature and local pointers in `n_atof.c`. No public header exposure or repository-wide macro alias was found. + +## Role In Callers + +Local compatibility support for the `JAtoN` ASCII-to-number parser implementation. + +## Tests Observed + +No focused tests target this compiler-compatibility macro directly. + +## Graph Links + +- Graph node id: `macro:n_atof.c:29:const` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_atof_c__L36__TRUE.md b/source-research/artifacts/macros/n_atof_c__L36__TRUE.md new file mode 100644 index 00000000..307ebce5 --- /dev/null +++ b/source-research/artifacts/macros/n_atof_c__L36__TRUE.md @@ -0,0 +1,59 @@ +# `TRUE` + +## Status + +Finalized. Source-inspected local boolean compatibility macro. + +## Identity + +- Kind: macro +- Definition: `n_atof.c:36` +- Declaration/interface: local translation-unit macro, not exported by a public header +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: object-like macro `TRUE 1`, defined only when `TRUE` is not already defined +- Visibility: local to `n_atof.c` +- Ownership/lifetime role: compile-time integer constant for parser state flags + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: preprocessor symbol `TRUE` if provided externally +- Data/type/global dependencies: used by `JAtoN` sign and exponent-sign state variables +- Artifact coverage: source-inspected artifact + +## Behavior + +Defines `TRUE` as integer constant `1` if no prior `TRUE` macro exists. `JAtoN` assigns it to `sign` and `expSign` when a negative mantissa or exponent is parsed, and when a computed exponent is negative. + +## Important Boundaries + +- Preconditions and assumptions: only used if the environment has not already defined `TRUE`. +- Error/null/empty behavior: no runtime behavior beyond integer constant substitution. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: preserves external `TRUE` definitions. +- Performance shape: compile-time substitution only. +- Security or parsing constraints: parser behavior assumes `TRUE` is truthy. + +## Direct Call Sites + +Exact source inspection found `TRUE` uses only inside `n_atof.c` in `JAtoN` sign/exponent parsing. + +## Role In Callers + +Local compatibility constant for the `JAtoN` parser. + +## Tests Observed + +No focused tests target this macro directly. + +## Graph Links + +- Graph node id: `macro:n_atof.c:36:TRUE` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_atof_c__L37__FALSE.md b/source-research/artifacts/macros/n_atof_c__L37__FALSE.md new file mode 100644 index 00000000..1c3700e6 --- /dev/null +++ b/source-research/artifacts/macros/n_atof_c__L37__FALSE.md @@ -0,0 +1,59 @@ +# `FALSE` + +## Status + +Finalized. Source-inspected local boolean compatibility macro. + +## Identity + +- Kind: macro +- Definition: `n_atof.c:37` +- Declaration/interface: local translation-unit macro, not exported by a public header +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: object-like macro `FALSE 0`, defined with `TRUE` only when `TRUE` is not already defined +- Visibility: local to `n_atof.c` +- Ownership/lifetime role: compile-time integer constant for parser state flags + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: preprocessor symbol `TRUE`; this fallback `FALSE` is emitted only inside the `#ifndef TRUE` block +- Data/type/global dependencies: used by `JAtoN` sign and exponent-sign state variables +- Artifact coverage: source-inspected artifact + +## Behavior + +Defines `FALSE` as integer constant `0` when the local `TRUE`/`FALSE` fallback block is active. `JAtoN` uses it to initialize and clear mantissa and exponent sign flags. + +## Important Boundaries + +- Preconditions and assumptions: only defined when `TRUE` is absent; if an environment defines `TRUE` without `FALSE`, this fallback does not define `FALSE`. +- Error/null/empty behavior: no runtime behavior beyond integer constant substitution. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: preserves external boolean macro definitions. +- Performance shape: compile-time substitution only. +- Security or parsing constraints: parser behavior assumes `FALSE` is zero. + +## Direct Call Sites + +Exact source inspection found `FALSE` uses only inside `n_atof.c` in `JAtoN` sign/exponent parsing. + +## Role In Callers + +Local compatibility constant for the `JAtoN` parser. + +## Tests Observed + +No focused tests target this macro directly. + +## Graph Links + +- Graph node id: `macro:n_atof.c:37:FALSE` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_atof_c__L40__NULL.md b/source-research/artifacts/macros/n_atof_c__L40__NULL.md new file mode 100644 index 00000000..04c934db --- /dev/null +++ b/source-research/artifacts/macros/n_atof_c__L40__NULL.md @@ -0,0 +1,59 @@ +# `NULL` + +## Status + +Finalized. Source-inspected local null-pointer compatibility macro. + +## Identity + +- Kind: macro +- Definition: `n_atof.c:40` +- Declaration/interface: local translation-unit macro, not exported by a public header +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: object-like macro `NULL 0`, defined only when `NULL` is not already defined +- Visibility: local to `n_atof.c` +- Ownership/lifetime role: compile-time null pointer constant for the parser implementation + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: preprocessor symbol `NULL` if provided by included headers +- Data/type/global dependencies: used by `JAtoN` to guard the optional `endPtr` output pointer +- Artifact coverage: source-inspected artifact + +## Behavior + +Defines `NULL` as `0` if no prior `NULL` macro exists. `JAtoN` compares `endPtr` against `NULL` before writing the parsed-end pointer. + +## Important Boundaries + +- Preconditions and assumptions: only intended as a fallback when included headers do not define `NULL`. +- Error/null/empty behavior: no runtime behavior beyond constant substitution. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: preserves external `NULL` definitions. +- Performance shape: compile-time substitution only. +- Security or parsing constraints: integer `0` is used as the fallback null pointer constant. + +## Direct Call Sites + +Exact source inspection found the fallback definition and `JAtoN` optional-output checks in `n_atof.c`; no public header exposure was found. + +## Role In Callers + +Local compatibility constant for `JAtoN`'s optional `endPtr` output. + +## Tests Observed + +No focused tests target this macro directly. + +## Graph Links + +- Graph node id: `macro:n_atof.c:40:NULL` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_atof_c__L43__MAX_EXPONENT.md b/source-research/artifacts/macros/n_atof_c__L43__MAX_EXPONENT.md new file mode 100644 index 00000000..3b980e7b --- /dev/null +++ b/source-research/artifacts/macros/n_atof_c__L43__MAX_EXPONENT.md @@ -0,0 +1,59 @@ +# `MAX_EXPONENT` + +## Status + +Finalized. Source-inspected local decimal-exponent clamp for `JAtoN`. + +## Identity + +- Kind: macro +- Definition: `n_atof.c:43` +- Declaration/interface: local translation-unit macro, not exported by a public header +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: object-like macro `MAX_EXPONENT 511` +- Visibility: local to `n_atof.c` +- Ownership/lifetime role: compile-time numeric bound for floating-point exponent processing + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by `JAtoN` to cap absolute decimal exponent magnitude +- Artifact coverage: source-inspected artifact + +## Behavior + +Defines the largest decimal exponent the parser will process as `511`. After the parsed exponent and fractional adjustment are combined and made positive, `JAtoN` clamps values larger than `MAX_EXPONENT` down to this bound before multiplying or dividing by powers of ten. + +## Important Boundaries + +- Preconditions and assumptions: constant is tuned to the legacy parser's overflow/underflow avoidance strategy. +- Error/null/empty behavior: no runtime behavior beyond constant substitution. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: affects floating-point conversion behavior consistently within this translation unit. +- Performance shape: one integer comparison and assignment at the use site. +- Security or parsing constraints: very large exponents are deliberately saturated for conversion work rather than tracked exactly. + +## Direct Call Sites + +Exact source inspection found two `JAtoN` uses in `n_atof.c`: a comparison `exp > MAX_EXPONENT` and assignment `exp = MAX_EXPONENT`. + +## Role In Callers + +Local guard for `JAtoN` exponent processing. + +## Tests Observed + +No focused tests target this macro directly. + +## Graph Links + +- Graph node id: `macro:n_atof.c:43:MAX_EXPONENT` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_c__L247__can_read.md b/source-research/artifacts/macros/n_cjson_c__L247__can_read.md new file mode 100644 index 00000000..934ae3f9 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_c__L247__can_read.md @@ -0,0 +1,54 @@ +# `can_read` + +## Status + +Finalized. Source-inspected parse-buffer bounds macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.c:247` +- Declaration/interface: file-local macro +- Signature/API shape: `can_read(buffer, size)` +- Visibility: internal to `n_cjson.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `parse_buffer.offset`, `parse_buffer.length` + +## Behavior + +Returns true when `buffer` is non-null and `buffer->offset + size <= buffer->length`. The macro is used for fixed-length literal checks during parsing. + +## Important Boundaries + +- Preconditions and assumptions: `size` should be a bounded expression; macro arguments may be evaluated more than once. +- Error/null/empty behavior: null buffer returns false. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: arithmetic is on `size_t` fields. + +## Direct Call Sites + +Exact source search found `_parse_value` uses `can_read` for `null`, `false`, and `true` literal checks. + +## Role In Callers + +It prevents fixed-length literal comparisons from reading beyond the current parse buffer. + +## Tests Observed + +Parser-focused public tests exercise this indirectly through `JParse` and JSON helper tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.c:247:can_read` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_c__L249__can_access_at_index.md b/source-research/artifacts/macros/n_cjson_c__L249__can_access_at_index.md new file mode 100644 index 00000000..360e0a9c --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_c__L249__can_access_at_index.md @@ -0,0 +1,54 @@ +# `can_access_at_index` + +## Status + +Finalized. Source-inspected parse-buffer indexed access macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.c:249` +- Declaration/interface: file-local macro +- Signature/API shape: `can_access_at_index(buffer, index)` +- Visibility: internal to `n_cjson.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `parse_buffer.offset`, `parse_buffer.length` + +## Behavior + +Returns true when `buffer` is non-null and `buffer->offset + index < buffer->length`. It is the parser's general guard before reading a byte at an offset-relative index. + +## Important Boundaries + +- Preconditions and assumptions: macro arguments may be evaluated more than once. +- Error/null/empty behavior: null buffer returns false. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: arithmetic is on `size_t` fields. + +## Direct Call Sites + +Exact source search found uses in `_parse_number`, `_buffer_skip_whitespace`, `_skip_utf8_bom`, `_parse_value`, `_parse_array`, and `_parse_object`. + +## Role In Callers + +It is the parser's primary byte-availability guard for scalar and container parsers. + +## Tests Observed + +Parser-focused public tests exercise this indirectly through `JParse` and JSON helper tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.c:249:can_access_at_index` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md b/source-research/artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md new file mode 100644 index 00000000..d2654e4b --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md @@ -0,0 +1,55 @@ +# `cannot_access_at_index` + +## Status + +Finalized. Source-inspected inverse parse-buffer access macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.c:250` +- Declaration/interface: file-local macro +- Signature/API shape: `cannot_access_at_index(buffer, index)` +- Visibility: internal to `n_cjson.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.c:249:can_access_at_index` finalized +- External/system dependencies: none +- Data/type/global dependencies: parse-buffer offset/length through `can_access_at_index` + +## Behavior + +Expands to the logical negation of `can_access_at_index(buffer, index)`. + +## Important Boundaries + +- Preconditions and assumptions: inherits macro argument evaluation behavior from `can_access_at_index`. +- Error/null/empty behavior: null buffer returns true through the negated helper. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: none beyond `can_access_at_index`. + +## Direct Call Sites + +Exact source search found uses in `_parse_array` and `_parse_object`. + +## Role In Callers + +Container parsers use this macro to fail cleanly on truncated arrays and objects. + +## Tests Observed + +Parser-focused public tests exercise this indirectly through `JParse` and JSON helper tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.c:250:cannot_access_at_index` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_c__L252__buffer_at_offset.md b/source-research/artifacts/macros/n_cjson_c__L252__buffer_at_offset.md new file mode 100644 index 00000000..ee2753d9 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_c__L252__buffer_at_offset.md @@ -0,0 +1,54 @@ +# `buffer_at_offset` + +## Status + +Finalized. Source-inspected parse-buffer pointer macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.c:252` +- Declaration/interface: file-local macro +- Signature/API shape: `buffer_at_offset(buffer)` +- Visibility: internal to `n_cjson.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `parse_buffer.content`, `parse_buffer.offset` + +## Behavior + +Returns `buffer->content + buffer->offset`, giving callers a pointer to the current parse position. + +## Important Boundaries + +- Preconditions and assumptions: caller must ensure `buffer` and `buffer->content` are valid and that the offset is in range. +- Error/null/empty behavior: no null guard. +- Ownership and lifetime: no allocation; returns pointer into caller-owned input. +- Concurrency/global state: no global state. +- Performance shape: O(1). +- Portability/platform constraints: pointer arithmetic over `unsigned char` input. + +## Direct Call Sites + +Exact source search found uses throughout number, string, root, value, array, and object parsing. + +## Role In Callers + +All parser helpers use it to read from the current input position after separate bounds checks. + +## Tests Observed + +Parser-focused public tests exercise this indirectly through `JParse` and JSON helper tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.c:252:buffer_at_offset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_c__L80__PRINT_TAB_CHARS.md b/source-research/artifacts/macros/n_cjson_c__L80__PRINT_TAB_CHARS.md new file mode 100644 index 00000000..3c32fae2 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_c__L80__PRINT_TAB_CHARS.md @@ -0,0 +1,59 @@ +# `PRINT_TAB_CHARS` + +## Status + +Finalized. Source-inspected local formatted-JSON indentation macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.c:80` +- Declaration/interface: local translation-unit macro, not exported by a public header +- Public/exported names: none +- Macro aliases/wrappers: none +- Signature/API shape: object-like macro `PRINT_TAB_CHARS 4` +- Visibility: local to `n_cjson.c` +- Ownership/lifetime role: compile-time indentation width for formatted JSON printing + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by object/array print paths to size and emit indentation +- Artifact coverage: source-inspected artifact + +## Behavior + +Configures formatted JSON indentation to four space characters per nesting level. Print code has compile-time branches for `PRINT_TAB_CHARS == 0`, which would emit tab characters instead; the repository definition selects the space-emitting branch. + +## Important Boundaries + +- Preconditions and assumptions: local constant is used by buffer sizing and indentation loops. +- Error/null/empty behavior: no runtime behavior beyond constant substitution. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: local formatting policy only. +- Performance shape: affects indentation loop count and buffer sizing during formatted printing. +- Security or parsing constraints: incorrect changes would risk print-buffer sizing mismatches in formatted output. + +## Direct Call Sites + +Source inspection found uses in formatted object/array printing branches in `n_cjson.c`, including indentation sizing, space/tab selection, and closing-brace indentation. + +## Role In Callers + +Local formatting constant for `JPrint`, `JPrintBuffered`, and preallocated formatted print paths through their shared print internals. + +## Tests Observed + +Focused JSON print tests cover formatted output behavior indirectly; no test targets this macro by name. + +## Graph Links + +- Graph node id: `macro:n_cjson.c:80:PRINT_TAB_CHARS` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_c__L981__cjson_min.md b/source-research/artifacts/macros/n_cjson_c__L981__cjson_min.md new file mode 100644 index 00000000..93e64fb8 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_c__L981__cjson_min.md @@ -0,0 +1,53 @@ +# `cjson_min` + +## Status + +Finalized. Source-inspected local minimum macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.c:981` +- Declaration/interface: file-local macro +- Signature/API shape: `cjson_min(a, b)` +- Visibility: internal to `n_cjson.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Expands to `((a < b) ? a : b)`, returning the smaller operand under C expression semantics. + +## Important Boundaries + +- Preconditions and assumptions: operands may be evaluated more than once. +- Error/null/empty behavior: not applicable. +- Ownership and lifetime: no memory behavior. +- Concurrency/global state: no global state. +- Performance shape: O(1) expression macro. + +## Direct Call Sites + +Exact source search found `_print` as the only production caller, where it bounds the final `memcpy` from the working print buffer into the tightly sized returned buffer. + +## Role In Callers + +`_print` uses `cjson_min(buffer->length, buffer->offset + 1)` to avoid reading beyond the current buffer length when copying the final NUL-terminated JSON string. + +## Tests Observed + +Focused public printing tests exercise this indirectly. No direct macro test was inspected. + +## Graph Links + +- Graph node id: `macro:n_cjson.c:981:cjson_min` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L134__N_CJSON_PUBLIC.md b/source-research/artifacts/macros/n_cjson_h__L134__N_CJSON_PUBLIC.md new file mode 100644 index 00000000..701a9512 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L134__N_CJSON_PUBLIC.md @@ -0,0 +1,59 @@ +# `N_CJSON_PUBLIC` (`n_cjson.h:134`) + +## Status + +Finalized. Source-inspected Windows hidden-symbol public API decoration branch. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:134` +- Declaration/interface: conditional macro definition in the cJSON public header +- Public/exported names: `N_CJSON_PUBLIC` +- Macro aliases/wrappers: one of five mutually exclusive conditional definitions of `N_CJSON_PUBLIC(type)` +- Signature/API shape: `#define N_CJSON_PUBLIC(type) type __stdcall` +- Visibility: active on Win32 when `N_CJSON_HIDE_SYMBOLS` is defined +- Ownership/lifetime role: compile-time ABI decoration only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: Win32 `__stdcall` calling convention support +- Data/type/global dependencies: preprocessor symbols `WIN32` and `N_CJSON_HIDE_SYMBOLS` +- Artifact coverage: source-inspected artifact + +## Behavior + +When this branch is active, `N_CJSON_PUBLIC(type)` expands to `type __stdcall`. It keeps cJSON declarations callable with the Windows stdcall convention without adding import/export attributes. + +## Important Boundaries + +- Preconditions and assumptions: selected only by the surrounding preprocessor branch for Win32 hidden-symbol builds. +- Error/null/empty behavior: not a runtime construct. +- Ownership and lifetime: no runtime ownership. +- Concurrency/global state: none. +- Portability/platform constraints: Windows-only branch; incompatible compilers must provide `__stdcall` or avoid this configuration. +- Performance shape: compile-time only. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source search found broad `N_CJSON_PUBLIC(...)` use on cJSON declarations in `n_cjson.h` and matching definitions in `n_cjson.c`, plus one focused test fake declaration. This specific conditional branch is selected only by build flags, not by a separate call site. + +## Role In Callers + +Decorates the public cJSON API surface for a hidden-symbol Win32 build while preserving the function return type supplied as the macro argument. + +## Tests Observed + +No focused test directly exercises this build-flag branch. Existing C/C++ compilation covers the active branch for the current platform; Win32 hidden-symbol ABI behavior is not covered in the local focused tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:134:N_CJSON_PUBLIC` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a compile-time decorator macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L136__N_CJSON_PUBLIC.md b/source-research/artifacts/macros/n_cjson_h__L136__N_CJSON_PUBLIC.md new file mode 100644 index 00000000..c17826c0 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L136__N_CJSON_PUBLIC.md @@ -0,0 +1,59 @@ +# `N_CJSON_PUBLIC` (`n_cjson.h:136`) + +## Status + +Finalized. Source-inspected Windows export public API decoration branch. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:136` +- Declaration/interface: conditional macro definition in the cJSON public header +- Public/exported names: `N_CJSON_PUBLIC` +- Macro aliases/wrappers: one of five mutually exclusive conditional definitions of `N_CJSON_PUBLIC(type)` +- Signature/API shape: `#define N_CJSON_PUBLIC(type) __declspec(dllexport) type __stdcall` +- Visibility: active on Win32 when `N_CJSON_EXPORT_SYMBOLS` is defined and hidden symbols are not selected +- Ownership/lifetime role: compile-time ABI decoration only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: Win32 `__declspec(dllexport)` and `__stdcall` support +- Data/type/global dependencies: preprocessor symbols `WIN32` and `N_CJSON_EXPORT_SYMBOLS`; the header defaults to defining `N_CJSON_EXPORT_SYMBOLS` on Win32 when no hide/import/export symbol mode is set +- Artifact coverage: source-inspected artifact + +## Behavior + +When this branch is active, `N_CJSON_PUBLIC(type)` expands to `__declspec(dllexport) type __stdcall`. It marks cJSON API functions for DLL export and uses the stdcall convention. + +## Important Boundaries + +- Preconditions and assumptions: selected only by the surrounding preprocessor branch for Win32 export builds. +- Error/null/empty behavior: not a runtime construct. +- Ownership and lifetime: no runtime ownership. +- Concurrency/global state: none. +- Portability/platform constraints: Windows DLL-export branch; non-Windows builds use later definitions. +- Performance shape: compile-time only. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source search found broad `N_CJSON_PUBLIC(...)` use on cJSON declarations in `n_cjson.h` and matching definitions in `n_cjson.c`, plus one focused test fake declaration. This specific conditional branch is selected only by build flags, not by a separate call site. + +## Role In Callers + +Decorates the public cJSON API surface for Win32 DLL-producing builds while preserving the function return type supplied as the macro argument. + +## Tests Observed + +No focused test directly exercises this build-flag branch. Existing C/C++ compilation covers the active branch for the current platform; Win32 export ABI behavior is not covered in the local focused tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:136:N_CJSON_PUBLIC` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a compile-time decorator macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L138__N_CJSON_PUBLIC.md b/source-research/artifacts/macros/n_cjson_h__L138__N_CJSON_PUBLIC.md new file mode 100644 index 00000000..d89b0006 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L138__N_CJSON_PUBLIC.md @@ -0,0 +1,59 @@ +# `N_CJSON_PUBLIC` (`n_cjson.h:138`) + +## Status + +Finalized. Source-inspected Windows import public API decoration branch. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:138` +- Declaration/interface: conditional macro definition in the cJSON public header +- Public/exported names: `N_CJSON_PUBLIC` +- Macro aliases/wrappers: one of five mutually exclusive conditional definitions of `N_CJSON_PUBLIC(type)` +- Signature/API shape: `#define N_CJSON_PUBLIC(type) __declspec(dllimport) type __stdcall` +- Visibility: active on Win32 when `N_CJSON_IMPORT_SYMBOLS` is defined and hide/export branches are not selected +- Ownership/lifetime role: compile-time ABI decoration only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: Win32 `__declspec(dllimport)` and `__stdcall` support +- Data/type/global dependencies: preprocessor symbols `WIN32` and `N_CJSON_IMPORT_SYMBOLS` +- Artifact coverage: source-inspected artifact + +## Behavior + +When this branch is active, `N_CJSON_PUBLIC(type)` expands to `__declspec(dllimport) type __stdcall`. It marks cJSON API functions for DLL import and uses the stdcall convention. + +## Important Boundaries + +- Preconditions and assumptions: selected only by the surrounding preprocessor branch for Win32 import builds. +- Error/null/empty behavior: not a runtime construct. +- Ownership and lifetime: no runtime ownership. +- Concurrency/global state: none. +- Portability/platform constraints: Windows DLL-import branch; callers must match the library's export/import configuration. +- Performance shape: compile-time only. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source search found broad `N_CJSON_PUBLIC(...)` use on cJSON declarations in `n_cjson.h` and matching definitions in `n_cjson.c`, plus one focused test fake declaration. This specific conditional branch is selected only by build flags, not by a separate call site. + +## Role In Callers + +Decorates the public cJSON API surface for Win32 clients importing cJSON symbols while preserving the function return type supplied as the macro argument. + +## Tests Observed + +No focused test directly exercises this build-flag branch. Existing C/C++ compilation covers the active branch for the current platform; Win32 import ABI behavior is not covered in the local focused tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:138:N_CJSON_PUBLIC` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a compile-time decorator macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L142__N_CJSON_PUBLIC.md b/source-research/artifacts/macros/n_cjson_h__L142__N_CJSON_PUBLIC.md new file mode 100644 index 00000000..2428cbb2 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L142__N_CJSON_PUBLIC.md @@ -0,0 +1,59 @@ +# `N_CJSON_PUBLIC` (`n_cjson.h:142`) + +## Status + +Finalized. Source-inspected non-Windows visibility public API decoration branch. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:142` +- Declaration/interface: conditional macro definition in the cJSON public header +- Public/exported names: `N_CJSON_PUBLIC` +- Macro aliases/wrappers: one of five mutually exclusive conditional definitions of `N_CJSON_PUBLIC(type)` +- Signature/API shape: `#define N_CJSON_PUBLIC(type) __attribute__((visibility("default"))) type` +- Visibility: active on non-Windows builds when GCC/SunPro-style visibility attributes are available and `N_CJSON_API_VISIBILITY` is defined +- Ownership/lifetime role: compile-time ABI decoration only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: compiler support for `__attribute__((visibility("default")))` +- Data/type/global dependencies: preprocessor symbols `__GNUC__`, `__SUNPRO_CC`, `__SUNPRO_C`, and `N_CJSON_API_VISIBILITY` +- Artifact coverage: source-inspected artifact + +## Behavior + +When this branch is active, `N_CJSON_PUBLIC(type)` expands to `__attribute__((visibility("default"))) type`. It marks cJSON API functions as default-visibility symbols in builds that otherwise hide symbols. + +## Important Boundaries + +- Preconditions and assumptions: selected only for non-Windows compiler/flag combinations that request explicit API visibility. +- Error/null/empty behavior: not a runtime construct. +- Ownership and lifetime: no runtime ownership. +- Concurrency/global state: none. +- Portability/platform constraints: non-Windows compiler-attribute branch. +- Performance shape: compile-time only. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source search found broad `N_CJSON_PUBLIC(...)` use on cJSON declarations in `n_cjson.h` and matching definitions in `n_cjson.c`, plus one focused test fake declaration. This specific conditional branch is selected only by build flags, not by a separate call site. + +## Role In Callers + +Decorates the public cJSON API surface for hidden-symbol non-Windows builds that still need selected API symbols visible. + +## Tests Observed + +No focused test directly exercises this build-flag branch. Existing C/C++ compilation covers the active branch for the current platform only when `N_CJSON_API_VISIBILITY` is present; explicit visibility-attribute behavior is not covered in the local focused tests. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:142:N_CJSON_PUBLIC` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a compile-time decorator macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L144__N_CJSON_PUBLIC.md b/source-research/artifacts/macros/n_cjson_h__L144__N_CJSON_PUBLIC.md new file mode 100644 index 00000000..dc017521 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L144__N_CJSON_PUBLIC.md @@ -0,0 +1,59 @@ +# `N_CJSON_PUBLIC` (`n_cjson.h:144`) + +## Status + +Finalized. Source-inspected default public API decoration branch. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:144` +- Declaration/interface: conditional macro definition in the cJSON public header +- Public/exported names: `N_CJSON_PUBLIC` +- Macro aliases/wrappers: one of five mutually exclusive conditional definitions of `N_CJSON_PUBLIC(type)` +- Signature/API shape: `#define N_CJSON_PUBLIC(type) type` +- Visibility: active on non-Windows builds without explicit cJSON API visibility attributes +- Ownership/lifetime role: compile-time type passthrough only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: absence of the earlier selected Win32 or non-Windows visibility branches +- Artifact coverage: source-inspected artifact + +## Behavior + +When this branch is active, `N_CJSON_PUBLIC(type)` expands to `type` unchanged. It leaves cJSON declarations and definitions undecorated. + +## Important Boundaries + +- Preconditions and assumptions: selected by the surrounding non-Windows fallback preprocessor branch. +- Error/null/empty behavior: not a runtime construct. +- Ownership and lifetime: no runtime ownership. +- Concurrency/global state: none. +- Portability/platform constraints: default portable branch used by ordinary non-Windows builds. +- Performance shape: compile-time only. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source search found broad `N_CJSON_PUBLIC(...)` use on cJSON declarations in `n_cjson.h` and matching definitions in `n_cjson.c`, plus one focused test fake declaration. This specific conditional branch is selected only by build flags, not by a separate call site. + +## Role In Callers + +Provides the undecorated public cJSON API surface for default non-Windows builds while preserving the function return type supplied as the macro argument. + +## Tests Observed + +Default platform compilation and focused tests exercise this branch on ordinary non-Windows builds. There is no focused test specifically dedicated to the macro expansion. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:144:N_CJSON_PUBLIC` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this is a compile-time decorator macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md b/source-research/artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md new file mode 100644 index 00000000..d03e9805 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md @@ -0,0 +1,59 @@ +# `N_CJSON_NESTING_LIMIT` + +## Status + +Finalized. Source-inspected cJSON parse nesting limit macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:176` +- Declaration/interface: default value guarded by `#ifndef N_CJSON_NESTING_LIMIT` +- Public/exported names: `N_CJSON_NESTING_LIMIT` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define N_CJSON_NESTING_LIMIT 100` +- Visibility: public compile-time cJSON parser configuration macro +- Ownership/lifetime role: parser recursion-depth bound, overrideable at build time + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by `_parse_array` and `_parse_object` against `parse_buffer.depth` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Provides the default maximum array/object nesting depth for the cJSON parser. `_parse_array` and `_parse_object` reject input when `input_buffer->depth >= N_CJSON_NESTING_LIMIT` before incrementing the depth counter, causing parsing to fail rather than recursing more deeply. + +## Important Boundaries + +- Preconditions and assumptions: downstream builds may override the macro before including `n_cjson.h`. +- Error/null/empty behavior: not a runtime function; when the limit is reached, parser functions return false and the public parse API reports failure. +- Ownership and lifetime: no allocation or ownership. +- Concurrency/global state: none. +- Portability/platform constraints: compile-time constant, portable across platforms. +- Performance shape: one integer comparison per nested array/object parse entry. +- Security or parsing constraints: bounds parser recursion depth to reduce stack-overflow risk on deeply nested JSON. + +## Direct Call Sites + +Source search found uses in `_parse_array` at `n_cjson.c:1256` and `_parse_object` at `n_cjson.c:1406`, plus header documentation and the guarded definition. No other production use was found. + +## Role In Callers + +The parser entry path reaches this macro through the finalized `_parse_array` and `_parse_object` helpers while parsing nested JSON values. + +## Tests Observed + +No focused test directly exercises the nesting-limit failure boundary. General parser tests cover ordinary nested objects, but not the configured depth limit. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:176:N_CJSON_NESTING_LIMIT` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `_parse_array` and `_parse_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L209__JGetObjectItems.md b/source-research/artifacts/macros/n_cjson_h__L209__JGetObjectItems.md new file mode 100644 index 00000000..91fd2e26 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L209__JGetObjectItems.md @@ -0,0 +1,60 @@ +# `JGetObjectItems` + +## Status + +Finalized. Source-inspected public cJSON object-size alias macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:209` +- Declaration/interface: public macro in `n_cjson.h` +- Public/exported names: `JGetObjectItems` +- Macro aliases/wrappers: aliases `JGetArraySize` +- Signature/API shape: `#define JGetObjectItems JGetArraySize` +- Visibility: public cJSON compatibility/helper macro +- Ownership/lifetime role: no ownership; forwards object-child counting to the array-size helper + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1660:JGetArraySize` finalized +- External/system dependencies: none +- Data/type/global dependencies: inherits `JGetArraySize` traversal of `J.child` and `J.next` +- Artifact coverage: source-inspected artifact with verified macro-alias edge + +## Behavior + +Expands `JGetObjectItems(...)` to `JGetArraySize(...)`. The target function returns `0` for a null argument, counts linked children through `child`/`next`, and casts the final `size_t` count to `int`. + +## Important Boundaries + +- Preconditions and assumptions: argument is evaluated according to the target function call; non-null input should point to a valid `J` list head. +- Error/null/empty behavior: null input returns `0` through `JGetArraySize`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: preprocessor alias; target API return type is `int`. +- Performance shape: O(number of child nodes). +- Security or parsing constraints: target function notes the count cast can overflow for extremely large child lists. + +## Direct Call Sites + +Exact non-test production search found only the macro definition. No repository production caller of `JGetObjectItems` was found. + +## Role In Callers + +No production repository caller role. Public alias for downstream code that wants object item count terminology while reusing the array-size implementation. + +## Tests Observed + +No exact focused test references to `JGetObjectItems` were found. Tests for `JGetArraySize` behavior provide only indirect target-function coverage. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:209:JGetObjectItems` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing `expands_to` edge to `JGetArraySize`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md b/source-research/artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md new file mode 100644 index 00000000..dda61126 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md @@ -0,0 +1,60 @@ +# `JConvertToJSONString` + +## Status + +Finalized. Source-inspected public cJSON print alias macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:310` +- Declaration/interface: public macro in `n_cjson.h` +- Public/exported names: `JConvertToJSONString` +- Macro aliases/wrappers: aliases `JPrintUnformatted` +- Signature/API shape: `#define JConvertToJSONString JPrintUnformatted` +- Visibility: public cJSON compatibility/helper macro +- Ownership/lifetime role: forwards JSON-string allocation to `JPrintUnformatted` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:1051:JPrintUnformatted` finalized +- External/system dependencies: none +- Data/type/global dependencies: inherits target print helper use of configured allocation/free hooks +- Artifact coverage: source-inspected artifact with verified macro-alias edge + +## Behavior + +Expands `JConvertToJSONString(...)` to `JPrintUnformatted(...)`. The target function returns `NULL` for a null item; otherwise it allocates and returns a compact JSON string by calling the internal print routine with formatting disabled. + +## Important Boundaries + +- Preconditions and assumptions: non-null argument must point to a valid `J` tree accepted by the printer. +- Error/null/empty behavior: null item or allocation/print failure returns `NULL` through the target function. +- Ownership and lifetime: successful return is a heap allocation owned by the caller and freed through the configured cJSON free path. +- Concurrency/global state: depends on the target's allocation hooks; no macro-local state. +- Portability/platform constraints: preprocessor alias over portable cJSON print API. +- Performance shape: same as unformatted JSON printing. +- Security or parsing constraints: does not validate beyond the target printer's tree traversal. + +## Direct Call Sites + +Exact non-test production search found only the macro definition. No repository production caller of `JConvertToJSONString` was found. + +## Role In Callers + +No production repository caller role. Public compatibility alias for downstream code that names conversion to a JSON string. + +## Tests Observed + +No exact focused test references to `JConvertToJSONString` were found. Existing `JPrintUnformatted`/JSON-printing tests provide target-function coverage, not macro-name coverage. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:310:JConvertToJSONString` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing `expands_to` edge to `JPrintUnformatted`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md b/source-research/artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md new file mode 100644 index 00000000..6ebfb5ac --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md @@ -0,0 +1,60 @@ +# `JConvertFromJSONString` + +## Status + +Finalized. Source-inspected public cJSON parse alias macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:311` +- Declaration/interface: public macro in `n_cjson.h` +- Public/exported names: `JConvertFromJSONString` +- Macro aliases/wrappers: aliases `JParse` +- Signature/API shape: `#define JConvertFromJSONString JParse` +- Visibility: public cJSON compatibility/helper macro +- Ownership/lifetime role: forwards JSON parsing/allocation to `JParse` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:976:JParse` finalized +- External/system dependencies: none +- Data/type/global dependencies: inherits target parse helper use of `global_error` and configured allocation/free hooks +- Artifact coverage: source-inspected artifact with verified macro-alias edge + +## Behavior + +Expands `JConvertFromJSONString(...)` to `JParse(...)`. The target function calls `JParseWithOpts(value, 0, 0)`, returns `NULL` for null input or parse failure, and can update the global parse-error pointer on non-null failures. + +## Important Boundaries + +- Preconditions and assumptions: argument should be a readable NUL-terminated JSON string. +- Error/null/empty behavior: null or invalid JSON returns `NULL` through `JParse`. +- Ownership and lifetime: successful return is a `J *` tree owned by the caller and freed with `JDelete`. +- Concurrency/global state: parse failure behavior can update cJSON global error state through the target parse path. +- Portability/platform constraints: preprocessor alias over portable cJSON parse API. +- Performance shape: same as `JParse`. +- Security or parsing constraints: same parser depth, allocation, and JSON syntax limits as `JParseWithOpts`. + +## Direct Call Sites + +Exact non-test production search found only the macro definition. No repository production caller of `JConvertFromJSONString` was found. + +## Role In Callers + +No production repository caller role. Public compatibility alias for downstream code that names conversion from a JSON string. + +## Tests Observed + +No exact focused test references to `JConvertFromJSONString` were found. Existing `JParse` tests provide target-function coverage, not macro-name coverage. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:311:JConvertFromJSONString` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing `expands_to` edge to `JParse`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L314__JSetIntValue.md b/source-research/artifacts/macros/n_cjson_h__L314__JSetIntValue.md new file mode 100644 index 00000000..72aaecb0 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L314__JSetIntValue.md @@ -0,0 +1,59 @@ +# `JSetIntValue` + +## Status + +Finalized. Source-inspected public cJSON integer value setter macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:314` +- Declaration/interface: public macro in `n_cjson.h` +- Public/exported names: `JSetIntValue` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JSetIntValue(object, number) ((object) ? (object)->valueint = (object)->valuenumber = (number) : (number))` +- Visibility: public cJSON value mutation macro +- Ownership/lifetime role: mutates caller-owned `J` object numeric fields + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: writes `J.valueint` and `J.valuenumber` when `object` is non-null +- Artifact coverage: source-inspected artifact + +## Behavior + +If `object` is non-null, assigns `number` to `object->valuenumber`, assigns that result to `object->valueint`, and returns the assigned value. If `object` is null, returns `number` and performs no write. The macro does not change `object->type`. + +## Important Boundaries + +- Preconditions and assumptions: non-null `object` must point to writable `J` storage; `number` must be suitable for assignment to both numeric fields. +- Error/null/empty behavior: null object is a no-op that returns `number`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: no global state; mutates caller-provided object. +- Portability/platform constraints: macro assignment expression; type conversion follows C assignment rules for the fields. +- Performance shape: one null test and up to two field writes. +- Security or parsing constraints: no saturation, validation, or type update. + +## Direct Call Sites + +Exact non-test production search found only the macro definition and nearby comments. No repository production caller of `JSetIntValue` was found. + +## Role In Callers + +No production repository caller role. Public mutation helper for downstream code that wants to keep integer and numeric cJSON fields synchronized. + +## Tests Observed + +No exact focused test references to `JSetIntValue` were found. Gap: no direct test for null-object no-op, field synchronization, or conversion behavior. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:314:JSetIntValue` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none; this macro performs direct field writes rather than calling a project-local function. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L317__JSetNumberValue.md b/source-research/artifacts/macros/n_cjson_h__L317__JSetNumberValue.md new file mode 100644 index 00000000..9053d365 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L317__JSetNumberValue.md @@ -0,0 +1,60 @@ +# `JSetNumberValue` + +## Status + +Finalized. Source-inspected public cJSON number value setter macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:317` +- Declaration/interface: public macro in `n_cjson.h` +- Public/exported names: `JSetNumberValue` +- Macro aliases/wrappers: wrapper around `JSetNumberHelper` for non-null objects +- Signature/API shape: `#define JSetNumberValue(object, number) ((object != NULL) ? JSetNumberHelper(object, (JNUMBER)number) : (number))` +- Visibility: public cJSON value mutation macro +- Ownership/lifetime role: delegates mutation of caller-owned `J` numeric fields + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:322:JSetNumberHelper` finalized +- External/system dependencies: none +- Data/type/global dependencies: target helper writes `J.valueint` and `J.valuenumber` +- Artifact coverage: source-inspected artifact with verified macro-wrapper edge + +## Behavior + +If `object` is null, returns `number` and does not call the helper. If `object` is non-null, casts `number` to `JNUMBER` and calls `JSetNumberHelper`. The helper saturates `valueint` to `JINTEGER_MAX` or `JINTEGER_MIN` when the numeric value is outside integer bounds, otherwise casts to `JINTEGER`; it then writes `valuenumber` and returns it. The macro does not change `object->type`. + +## Important Boundaries + +- Preconditions and assumptions: non-null `object` must point to writable `J` storage. +- Error/null/empty behavior: null object is a no-op that returns `number`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: no global state; mutates caller-provided object. +- Portability/platform constraints: numeric conversion follows the configured `JNUMBER` and `JINTEGER` typedefs. +- Performance shape: one null check plus helper call for non-null objects. +- Security or parsing constraints: integer mirror is saturated, but numeric value itself is stored as provided. + +## Direct Call Sites + +Exact non-test production search found no invocations; only the macro definition and comments were found. + +## Role In Callers + +No production repository caller role. Public mutation helper for downstream code that wants cJSON number and integer mirror fields kept consistent with saturation semantics. + +## Tests Observed + +No exact focused test references to `JSetNumberValue` were found. Gap: no direct macro test for null-object no-op, helper dispatch, saturation, or type preservation. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:317:JSetNumberValue` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing `expands_to` edge to `JSetNumberHelper`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L320__JArrayForEach.md b/source-research/artifacts/macros/n_cjson_h__L320__JArrayForEach.md new file mode 100644 index 00000000..e4ca71fc --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L320__JArrayForEach.md @@ -0,0 +1,74 @@ +# `JArrayForEach` + +## Status + +Finalized. Source-inspected public iteration macro, structural dependencies, direct production callers, alias, and test evidence search. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:320` +- Declaration/interface: public preprocessor macro in `n_cjson.h` +- Public/exported names: `JArrayForEach` +- Macro aliases/wrappers: `JObjectForEach(element, array)` expands to `JArrayForEach(element, array)` at `n_cjson.h:322` +- Signature/API shape: `JArrayForEach(element, array)` +- Visibility: public header macro under the `J_h` include guard +- Ownership/lifetime role: traversal helper only; no allocation, freeing, or ownership transfer + +## Dependency Status + +- Project-local dependencies: + - No project-local function callees +- External/system dependencies: `NULL` from the included standard header support +- Data/type/global dependencies: reads the public `J` struct fields `child` and `next` +- Artifact coverage: macro definition, alias, structural fields, direct production callers, and focused test search inspected + +## Behavior + +Expands to: + +```c +for(element = (array != NULL) ? (array)->child : NULL; element != NULL; element = element->next) +``` + +The initializer sets `element` to `array->child` when `array` is non-null and to `NULL` otherwise. The loop continues while `element` is non-null and advances through the linked sibling chain via `element->next`. + +## Important Boundaries + +- Preconditions and assumptions: `element` must be a writable lvalue compatible with a `J *`; non-null `array` must point to an object with a valid `child` chain. The `array` expression is evaluated in the initializer and, when non-null, evaluated twice there. +- Error/null/empty behavior: null `array` produces zero iterations. The macro does not validate item type, list integrity, or cycles. +- Ownership and lifetime: no ownership transfer. Loop bodies that free or invalidate `element` before the increment expression runs can make `element->next` unsafe. +- Concurrency/global state: none. +- Portability/platform constraints: preprocessor-only traversal over the public struct layout. +- Performance shape: O(number of siblings traversed). +- Security or parsing constraints: no parsing or bounds checks; depends on valid in-memory JSON list structure. + +## Direct Call Sites + +Exact production search found: + +- `n_cjson.h:320` macro definition. +- `n_cjson.h:322` `JObjectForEach` alias. +- `n_cjson.c:2820` `JCompare` object branch iterates `a` children. +- `n_cjson.c:2834` `JCompare` object branch iterates `b` children to prevent subset-equality. + +## Role In Callers + +`JCompare` uses this macro only for object comparison. The first pass ensures every field in `a` has a matching equal field in `b`; the second pass ensures `b` has no extra fields absent from `a`. + +## Tests Observed + +No direct test references to `JArrayForEach` or `JObjectForEach` were found. `test/src/NoteTransaction_test.cpp:599` calls `JCompare` on an expected empty-object response, giving indirect coverage of the object branch's zero-iteration case. + +## Test Coverage Notes + +Focused tests do not directly cover the macro, non-empty object traversal, alias use through `JObjectForEach`, mutation during iteration, or cyclic/malformed sibling lists. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:320:JArrayForEach` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L322__JObjectForEach.md b/source-research/artifacts/macros/n_cjson_h__L322__JObjectForEach.md new file mode 100644 index 00000000..2549f6b1 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L322__JObjectForEach.md @@ -0,0 +1,60 @@ +# `JObjectForEach` + +## Status + +Finalized. Source-inspected public cJSON object iteration alias macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:322` +- Declaration/interface: public macro in `n_cjson.h` +- Public/exported names: `JObjectForEach` +- Macro aliases/wrappers: aliases `JArrayForEach(element, array)` +- Signature/API shape: `#define JObjectForEach(element, array) JArrayForEach(element, array)` +- Visibility: public cJSON object-iteration macro +- Ownership/lifetime role: traversal helper only; no allocation, freeing, or ownership transfer + +## Dependency Status + +- Project-local dependencies: + - `macro:n_cjson.h:320:JArrayForEach` finalized +- External/system dependencies: none +- Data/type/global dependencies: inherited target macro reads `J.child` and `J.next` +- Artifact coverage: source-inspected artifact with verified macro-alias edge + +## Behavior + +Expands to `JArrayForEach(element, array)`. The target macro initializes `element` to `array->child` for non-null `array`, initializes it to `NULL` for null `array`, loops while `element` is non-null, and advances through `element->next`. + +## Important Boundaries + +- Preconditions and assumptions: `element` must be a writable `J *`-compatible lvalue; non-null `array` must point to a valid `J` object/list head. +- Error/null/empty behavior: null `array` produces zero iterations. +- Ownership and lifetime: no ownership transfer. Mutating or freeing the current node inside the loop body can make the target macro's increment expression unsafe. +- Concurrency/global state: none. +- Portability/platform constraints: preprocessor alias over public struct layout traversal. +- Performance shape: O(number of sibling nodes traversed). +- Security or parsing constraints: no validation of object type, child-list integrity, or cycles. + +## Direct Call Sites + +Exact non-test production search found only the macro definition. No repository production caller of `JObjectForEach` was found. + +## Role In Callers + +No production repository caller role. Public alias for downstream code that wants object-field iteration naming while reusing `JArrayForEach` traversal mechanics. + +## Tests Observed + +No exact focused test references to `JObjectForEach` were found. `JArrayForEach` has indirect coverage through `JCompare`, but the object alias itself is not directly exercised. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:322:JObjectForEach` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing `expands_to` edge to `JArrayForEach`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md b/source-research/artifacts/macros/n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md new file mode 100644 index 00000000..d4f53fa5 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md @@ -0,0 +1,59 @@ +# `N_CJSON_VERSION_MAJOR` + +## Status + +Finalized. Source-inspected public cJSON major-version macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:52` +- Declaration/interface: public/internal cJSON compatibility header `n_cjson.h` +- Public/exported names: `N_CJSON_VERSION_MAJOR` +- Macro aliases/wrappers: stringized by `NOTE_C_STRINGIZE` in `JVersion` +- Signature/API shape: object-like macro `N_CJSON_VERSION_MAJOR 1` +- Visibility: any translation unit including `n_cjson.h` +- Ownership/lifetime role: compile-time version component + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by `n_cjson.c` compile-time header/source version guard and `JVersion` +- Artifact coverage: source-inspected artifact + +## Behavior + +Defines the cJSON major version as `1`. `n_cjson.c` checks this macro against its expected value and includes it in the string returned by `JVersion`. + +## Important Boundaries + +- Preconditions and assumptions: must stay synchronized with the implementation's version guard. +- Error/null/empty behavior: mismatch with implementation expected value triggers a compile-time `#error`. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: header/source consistency guard. +- Performance shape: no runtime cost except inclusion in `JVersion` string literal construction. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source inspection found uses in `n_cjson.c` version compatibility guard and `JVersion`. + +## Role In Callers + +Public version component exposed through `n_cjson.h` and `JVersion`. + +## Tests Observed + +Focused `JVersion` tests cover the resulting version string; no test targets this macro directly. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:52:N_CJSON_VERSION_MAJOR` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L53__N_CJSON_VERSION_MINOR.md b/source-research/artifacts/macros/n_cjson_h__L53__N_CJSON_VERSION_MINOR.md new file mode 100644 index 00000000..086d1c17 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L53__N_CJSON_VERSION_MINOR.md @@ -0,0 +1,59 @@ +# `N_CJSON_VERSION_MINOR` + +## Status + +Finalized. Source-inspected public cJSON minor-version macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:53` +- Declaration/interface: public/internal cJSON compatibility header `n_cjson.h` +- Public/exported names: `N_CJSON_VERSION_MINOR` +- Macro aliases/wrappers: stringized by `NOTE_C_STRINGIZE` in `JVersion` +- Signature/API shape: object-like macro `N_CJSON_VERSION_MINOR 7` +- Visibility: any translation unit including `n_cjson.h` +- Ownership/lifetime role: compile-time version component + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by `n_cjson.c` compile-time header/source version guard and `JVersion` +- Artifact coverage: source-inspected artifact + +## Behavior + +Defines the cJSON minor version as `7`. `n_cjson.c` checks this macro against its expected value and includes it in the string returned by `JVersion`. + +## Important Boundaries + +- Preconditions and assumptions: must stay synchronized with the implementation's version guard. +- Error/null/empty behavior: mismatch with implementation expected value triggers a compile-time `#error`. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: header/source consistency guard. +- Performance shape: no runtime cost except inclusion in `JVersion` string literal construction. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source inspection found uses in `n_cjson.c` version compatibility guard and `JVersion`. + +## Role In Callers + +Public version component exposed through `n_cjson.h` and `JVersion`. + +## Tests Observed + +Focused `JVersion` tests cover the resulting version string; no test targets this macro directly. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:53:N_CJSON_VERSION_MINOR` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L54__N_CJSON_VERSION_PATCH.md b/source-research/artifacts/macros/n_cjson_h__L54__N_CJSON_VERSION_PATCH.md new file mode 100644 index 00000000..9c272e6c --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L54__N_CJSON_VERSION_PATCH.md @@ -0,0 +1,59 @@ +# `N_CJSON_VERSION_PATCH` + +## Status + +Finalized. Source-inspected public cJSON patch-version macro. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:54` +- Declaration/interface: public/internal cJSON compatibility header `n_cjson.h` +- Public/exported names: `N_CJSON_VERSION_PATCH` +- Macro aliases/wrappers: stringized by `NOTE_C_STRINGIZE` in `JVersion` +- Signature/API shape: object-like macro `N_CJSON_VERSION_PATCH 7` +- Visibility: any translation unit including `n_cjson.h` +- Ownership/lifetime role: compile-time version component + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by `n_cjson.c` compile-time header/source version guard and `JVersion` +- Artifact coverage: source-inspected artifact + +## Behavior + +Defines the cJSON patch version as `7`. `n_cjson.c` checks this macro against its expected value and includes it in the string returned by `JVersion`. + +## Important Boundaries + +- Preconditions and assumptions: must stay synchronized with the implementation's version guard. +- Error/null/empty behavior: mismatch with implementation expected value triggers a compile-time `#error`. +- Ownership and lifetime: preprocessor-only. +- Concurrency/global state: none. +- Portability/platform constraints: header/source consistency guard. +- Performance shape: no runtime cost except inclusion in `JVersion` string literal construction. +- Security or parsing constraints: none. + +## Direct Call Sites + +Source inspection found uses in `n_cjson.c` version compatibility guard and `JVersion`. + +## Role In Callers + +Public version component exposed through `n_cjson.h` and `JVersion`. + +## Tests Observed + +Focused `JVersion` tests cover the resulting version string; no test targets this macro directly. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:54:N_CJSON_VERSION_PATCH` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing edges: none. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L59__JInvalid.md b/source-research/artifacts/macros/n_cjson_h__L59__JInvalid.md new file mode 100644 index 00000000..8fea782a --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L59__JInvalid.md @@ -0,0 +1,59 @@ +# `JInvalid` + +## Status + +Finalized. Source-inspected cJSON invalid type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:59` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JInvalid` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JInvalid (0)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks an invalid or uninitialized base JSON type + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: compared against the low byte of `J.type` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the invalid base type as zero. Zeroed `J` items begin with this type value until parse/create code assigns a concrete JSON type. Type checks compare `item->type & 0xFF` against this value. + +## Important Boundaries + +- Preconditions and assumptions: applies to the public `J.type` field; ownership flags occupy bits above the low byte. +- Error/null/empty behavior: `JIsInvalid` returns false for null input and true only when the low byte is `JInvalid`. +- Ownership and lifetime: no direct ownership behavior; `JDelete` handles allocation fields independently of the invalid tag. +- Concurrency/global state: none. +- Portability/platform constraints: integer preprocessor constant. +- Performance shape: constant-time bitmasked comparisons. +- Security or parsing constraints: `JCompare` rejects invalid values. + +## Direct Call Sites + +Source-inspected uses include `JIsInvalid` and `JCompare`. `_add_item_to_object` also initializes a local replacement type variable to `JInvalid` before choosing ownership semantics. + +## Role In Callers + +Provides the invalid/default type value for helper classification and comparison rejection. + +## Tests Observed + +Focused tests set invalid directly in `test/src/JType_test.cpp` and `test/src/JGetType_test.cpp`. Gap: no public creator/parser path intentionally returns an invalid `J`. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:59:JInvalid` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JIsInvalid` and `JCompare`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L60__JFalse.md b/source-research/artifacts/macros/n_cjson_h__L60__JFalse.md new file mode 100644 index 00000000..291e677e --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L60__JFalse.md @@ -0,0 +1,59 @@ +# `JFalse` + +## Status + +Finalized. Source-inspected cJSON false type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:60` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JFalse` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JFalse (1 << 0)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a JSON boolean false value + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the false boolean base type. Parse/create paths assign it for false values; print dispatch emits `false`; `JIsFalse` and `JIsBool` classify it through the low byte of `J.type`. + +## Important Boundaries + +- Preconditions and assumptions: boolean classification treats `JFalse` and `JTrue` as the two bool tags. +- Error/null/empty behavior: type-check helpers return false for null input. +- Ownership and lifetime: no special delete ownership behavior beyond common `JDelete`. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte. +- Performance shape: constant-time checks and switch cases. +- Security or parsing constraints: no parsing beyond the functions that assign/check the tag. + +## Direct Call Sites + +Source-inspected uses include `_parse_value`, `_print_value`, `JCreateFalse`, `JCreateBool`, `JIsFalse`, `JIsBool`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries the false boolean state through parsing, construction, printing, comparison, and helper classification. + +## Tests Observed + +Focused tests cover false classification and bool values in `JGetType_test.cpp`, `JType_test.cpp`, and `JBoolValue_test.cpp`. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:60:JFalse` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core parse/print/create/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L61__JTrue.md b/source-research/artifacts/macros/n_cjson_h__L61__JTrue.md new file mode 100644 index 00000000..60a184e7 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L61__JTrue.md @@ -0,0 +1,59 @@ +# `JTrue` + +## Status + +Finalized. Source-inspected cJSON true type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:61` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JTrue` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTrue (1 << 1)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a JSON boolean true value + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type`; true parse path also sets `valueint = 1` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the true boolean base type. Parse/create paths assign it for true values; print dispatch emits `true`; `JIsTrue` and `JIsBool` classify it through the low byte of `J.type`. + +## Important Boundaries + +- Preconditions and assumptions: boolean classification treats `JFalse` and `JTrue` as the two bool tags. +- Error/null/empty behavior: type-check helpers return false for null input. +- Ownership and lifetime: no special delete ownership behavior beyond common `JDelete`. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte. +- Performance shape: constant-time checks and switch cases. +- Security or parsing constraints: no parsing beyond the functions that assign/check the tag. + +## Direct Call Sites + +Source-inspected uses include `_parse_value`, `_print_value`, `JCreateTrue`, `JCreateBool`, `JIsTrue`, `JIsBool`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries the true boolean state through parsing, construction, printing, comparison, and helper classification. + +## Tests Observed + +Focused tests cover true classification and bool values in `JGetType_test.cpp`, `JType_test.cpp`, and `JBoolValue_test.cpp`. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:61:JTrue` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core parse/print/create/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L62__JNULL.md b/source-research/artifacts/macros/n_cjson_h__L62__JNULL.md new file mode 100644 index 00000000..4cf52322 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L62__JNULL.md @@ -0,0 +1,59 @@ +# `JNULL` + +## Status + +Finalized. Source-inspected cJSON null type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:62` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JNULL` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JNULL (1 << 2)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a JSON null value + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the JSON null base type. The parser assigns it for `null`, print dispatch emits `null`, and `JIsNull` checks it through the low byte of `J.type`. + +## Important Boundaries + +- Preconditions and assumptions: `JNULL` is a type tag, not a null pointer sentinel. +- Error/null/empty behavior: `JIsNull` returns false for null input. +- Ownership and lifetime: no special delete ownership behavior beyond common `JDelete`. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte. +- Performance shape: constant-time checks and switch cases. +- Security or parsing constraints: no parser behavior beyond assignment/checking of the tag. + +## Direct Call Sites + +Source-inspected uses include `_parse_value`, `_print_value`, `JIsNull`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries null state through parsing, printing, comparison, and helper classification. + +## Tests Observed + +Focused print tests cover null through parse/print fixtures. Gap: no `JCreateNull` or `JAddNull` production API was found. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:62:JNULL` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core parse/print/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L63__JNumber.md b/source-research/artifacts/macros/n_cjson_h__L63__JNumber.md new file mode 100644 index 00000000..9aad39a9 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L63__JNumber.md @@ -0,0 +1,59 @@ +# `JNumber` + +## Status + +Finalized. Source-inspected cJSON number type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:63` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JNumber` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JNumber (1 << 3)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a JSON number value whose numeric fields carry the value + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type`; paired with `valueint` and `valuenumber` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the JSON number base type. Number parse/create paths assign it, print dispatch sends the item through number printing, and type/helper APIs classify it as a number through `item->type & 0xFF`. + +## Important Boundaries + +- Preconditions and assumptions: numeric meaning also depends on `valueint` and `valuenumber` fields being populated consistently. +- Error/null/empty behavior: type-check helpers return false for null input. +- Ownership and lifetime: no heap ownership behavior tied to the tag. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte; numeric range depends on configured numeric typedefs. +- Performance shape: constant-time type checks, with printing/parsing costs in caller functions. +- Security or parsing constraints: no validation beyond parse/create paths that assign the tag. + +## Direct Call Sites + +Source-inspected uses include `_parse_number`, `_print_value`, `JCreateNumber`, `JCreateInteger`, `JIsNumber`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries number state through parsing, construction, printing, comparison, and helper classification. + +## Tests Observed + +Focused tests cover number classification in `JGetType_test.cpp` and `JType_test.cpp`; number printing/parsing tests exercise the target paths indirectly. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:63:JNumber` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core parse/print/create/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L64__JString.md b/source-research/artifacts/macros/n_cjson_h__L64__JString.md new file mode 100644 index 00000000..cabcc980 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L64__JString.md @@ -0,0 +1,59 @@ +# `JString` + +## Status + +Finalized. Source-inspected cJSON string type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:64` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JString` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JString (1 << 4)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a JSON string value whose `valuestring` field carries the value + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type`; may be combined with `JIsReference` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the JSON string base type. String parse/create paths assign it, string-reference creation ORs it with `JIsReference`, print dispatch emits a JSON string, and `JIsString`/`JGetStringValue` classify through the low byte. + +## Important Boundaries + +- Preconditions and assumptions: string meaning depends on `valuestring` storage and ownership flags. +- Error/null/empty behavior: type-check helpers return false for null input; `JGetStringValue` returns only for string items. +- Ownership and lifetime: plain `JString` values own `valuestring`; `JString | JIsReference` skips `valuestring` free in `JDelete`. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte. +- Performance shape: constant-time type checks; print/delete costs depend on string length/allocation. +- Security or parsing constraints: no escaping/parsing behavior outside caller functions. + +## Direct Call Sites + +Source-inspected uses include `_parse_string`, `_print_value`, `JCreateString`, `JCreateStringValue`, `JCreateStringReference`, `JIsString`, `JGetStringValue`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries string state through parsing, construction, printing, comparison, helper classification, and string getter behavior. + +## Tests Observed + +Focused tests cover string classification in `JType_test.cpp` and `JGetType_test.cpp`; `JAddBinaryToObject_test.cpp` exercises an allocated string-value ownership path. Source note: the `JCreateStringValue` header comment says its value string will not be freed, but the implementation sets plain `JString` without `JIsReference`. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:64:JString` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core parse/print/create/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L65__JArray.md b/source-research/artifacts/macros/n_cjson_h__L65__JArray.md new file mode 100644 index 00000000..1bac67fe --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L65__JArray.md @@ -0,0 +1,59 @@ +# `JArray` + +## Status + +Finalized. Source-inspected cJSON array type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:65` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JArray` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JArray (1 << 5)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a JSON array whose `child` chain carries elements + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type`; may be combined with `JIsReference` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the JSON array base type. Array parse/create paths assign it, array-reference creation ORs it with `JIsReference`, print/compare paths recurse over child elements, and `JIsArray` classifies it through the low byte. + +## Important Boundaries + +- Preconditions and assumptions: array meaning depends on a valid `child` linked list when elements are present. +- Error/null/empty behavior: type-check helpers return false for null input. +- Ownership and lifetime: plain arrays own child chains; `JArray | JIsReference` skips child deletion in `JDelete`. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte. +- Performance shape: type checks are constant-time; print/compare/delete recurse over children. +- Security or parsing constraints: parse depth is separately bounded by `N_CJSON_NESTING_LIMIT`. + +## Direct Call Sites + +Source-inspected uses include `_parse_array`, `_print_value`, `JCreateArray`, `JCreateArrayReference`, `JIsArray`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries array state through parsing, construction, printing, comparison, helper classification, and ownership decisions through reference flags. + +## Tests Observed + +Focused tests cover array classification in `JType_test.cpp` and `JGetType_test.cpp`. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:65:JArray` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core parse/print/create/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L66__JObject.md b/source-research/artifacts/macros/n_cjson_h__L66__JObject.md new file mode 100644 index 00000000..fc2278c6 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L66__JObject.md @@ -0,0 +1,59 @@ +# `JObject` + +## Status + +Finalized. Source-inspected cJSON object type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:66` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JObject` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JObject (1 << 6)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a JSON object whose `child` chain carries fields + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type`; may be combined with `JIsReference` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the JSON object base type. Object parse/create paths assign it, object-reference creation ORs it with `JIsReference`, print/compare paths traverse child fields, and `JIsObject` classifies it through the low byte. + +## Important Boundaries + +- Preconditions and assumptions: object meaning depends on a valid `child` linked list and object key strings when fields are present. +- Error/null/empty behavior: type-check helpers return false for null input. +- Ownership and lifetime: plain objects own child chains; `JObject | JIsReference` skips child deletion in `JDelete`. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte. +- Performance shape: type checks are constant-time; print/compare/delete recurse over fields. +- Security or parsing constraints: parse depth is separately bounded by `N_CJSON_NESTING_LIMIT`. + +## Direct Call Sites + +Source-inspected uses include `_parse_object`, `_print_value`, `JCreateObject`, `JCreateObjectReference`, `JIsObject`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries object state through parsing, construction, printing, comparison, helper classification, and ownership decisions through reference flags. + +## Tests Observed + +Focused tests cover object classification in `JType_test.cpp` and `JGetType_test.cpp`; several request/helper tests manually set fake return objects to `JObject`. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:66:JObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core parse/print/create/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L67__JRaw.md b/source-research/artifacts/macros/n_cjson_h__L67__JRaw.md new file mode 100644 index 00000000..8a5d3446 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L67__JRaw.md @@ -0,0 +1,59 @@ +# `JRaw` + +## Status + +Finalized. Source-inspected cJSON raw JSON type tag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:67` +- Declaration/interface: public `J.type` tag macro +- Public/exported names: `JRaw` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JRaw (1 << 7)` +- Visibility: public cJSON type constant +- Ownership/lifetime role: marks a raw JSON string payload + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: assigned to and compared against the low byte of `J.type` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines the raw JSON base type. `JCreateRaw` assigns it; print dispatch copies `valuestring` without normal JSON string escaping; `JIsRaw` checks it through the low byte. Helper classification treats raw as string-like. + +## Important Boundaries + +- Preconditions and assumptions: raw values should contain already-valid JSON text when printed. +- Error/null/empty behavior: type-check helpers return false for null input. +- Ownership and lifetime: plain raw values own `valuestring`; no parser path creates `JRaw`. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit constant in the low type byte. +- Performance shape: constant-time checks; printing cost depends on raw string length. +- Security or parsing constraints: raw output bypasses string escaping, so caller-provided raw text controls emitted JSON fragment. + +## Direct Call Sites + +Source-inspected uses include `_print_value`, `JCreateRaw`, `JIsRaw`, `JType`, `JGetItemType`, and `JCompare`. + +## Role In Callers + +Carries raw JSON state through construction, printing, comparison, and helper classification. + +## Tests Observed + +Focused tests cover raw classification in `JType_test.cpp` and `JGetType_test.cpp`. Gap: no parser path creates `JRaw`. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:67:JRaw` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from core print/create/check functions and helper classifiers. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L69__JIsReference.md b/source-research/artifacts/macros/n_cjson_h__L69__JIsReference.md new file mode 100644 index 00000000..94e95709 --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L69__JIsReference.md @@ -0,0 +1,59 @@ +# `JIsReference` + +## Status + +Finalized. Source-inspected cJSON reference ownership flag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:69` +- Declaration/interface: public `J.type` ownership flag macro +- Public/exported names: `JIsReference` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JIsReference 256` +- Visibility: public cJSON type/ownership flag +- Ownership/lifetime role: marks child/value storage as referenced rather than owned + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: ORed into `J.type`; checked by `JDelete` and cleared by `JDuplicate` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines an ownership flag above the low type byte. Reference constructors and `_create_reference` OR it into the base type. `JDelete` skips freeing `child` and `valuestring` when it is set, while `JDuplicate` clears the flag on duplicated items. + +## Important Boundaries + +- Preconditions and assumptions: base type remains in `item->type & 0xFF`; this flag only changes ownership behavior. +- Error/null/empty behavior: not a runtime function; delete/duplicate paths handle nulls independently. +- Ownership and lifetime: prevents `JDelete` from freeing referenced child/value storage; caller must ensure referenced storage outlives the `J` node. +- Concurrency/global state: none. +- Portability/platform constraints: integer flag outside the low type byte. +- Performance shape: constant-time bit tests/updates. +- Security or parsing constraints: misuse can create dangling references or leaks. + +## Direct Call Sites + +Source-inspected uses include `JDelete`, `_create_reference`, `JCreateStringReference`, `JCreateObjectReference`, `JCreateArrayReference`, and `JDuplicate`. Production code outside cJSON uses `JCreateStringReference` in the sleep-payload helper path. + +## Role In Callers + +Separates owned cJSON nodes from reference nodes so delete and duplicate behavior can preserve caller-owned storage. + +## Tests Observed + +No obvious focused unit test directly asserts reference delete/duplicate ownership. Reference constructor paths have indirect coverage through callers that use reference APIs. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:69:JIsReference` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from reference constructors, `JDelete`, `_create_reference`, and `JDuplicate`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cjson_h__L70__JStringIsConst.md b/source-research/artifacts/macros/n_cjson_h__L70__JStringIsConst.md new file mode 100644 index 00000000..1176ca7a --- /dev/null +++ b/source-research/artifacts/macros/n_cjson_h__L70__JStringIsConst.md @@ -0,0 +1,59 @@ +# `JStringIsConst` + +## Status + +Finalized. Source-inspected cJSON constant object-key ownership flag. + +## Identity + +- Kind: macro +- Definition: `n_cjson.h:70` +- Declaration/interface: public `J.type` ownership flag macro +- Public/exported names: `JStringIsConst` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JStringIsConst 512` +- Visibility: public cJSON type/ownership flag +- Ownership/lifetime role: marks an object key string as constant/referenced rather than owned + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: ORed into or cleared from `J.type`; checked for `J.string` ownership +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Defines an ownership flag above the low type byte for object key strings. Constant-string object insertion sets it; normal object insertion and replacement clear it. `JDelete` skips freeing `item->string` when it is set, and `JDuplicate` preserves the const key pointer rather than duplicating it. + +## Important Boundaries + +- Preconditions and assumptions: base type remains in `item->type & 0xFF`; this flag only changes key-string ownership behavior. +- Error/null/empty behavior: not a runtime function; delete/duplicate paths handle null pointers independently. +- Ownership and lifetime: when set, caller/static storage must keep the key string valid for the node lifetime. +- Concurrency/global state: none. +- Portability/platform constraints: integer flag outside the low type byte. +- Performance shape: constant-time bit tests/updates. +- Security or parsing constraints: misuse can create dangling key pointers or leaks. + +## Direct Call Sites + +Source-inspected uses include `JDelete`, `_add_item_to_object`, `_replace_item_in_object`, and `JDuplicate`. + +## Role In Callers + +Controls ownership of object key strings across add, replace, delete, and duplicate operations. + +## Tests Observed + +No obvious focused test directly asserts constant-key ownership behavior. + +## Graph Links + +- Graph node id: `macro:n_cjson.h:70:JStringIsConst` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from object add/replace helpers, `JDelete`, and `JDuplicate`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md b/source-research/artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md new file mode 100644 index 00000000..8e572a07 --- /dev/null +++ b/source-research/artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md @@ -0,0 +1,59 @@ +# `COBS_EOP_OVERHEAD` + +## Status + +Finalized. Source-inspected COBS encoded-length overhead constant. + +## Identity + +- Kind: macro +- Definition: `n_cobs.c:8` +- Declaration/interface: file-local preprocessor constant +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define COBS_EOP_OVERHEAD 1` +- Visibility: private to `n_cobs.c` +- Ownership/lifetime role: encoded-size accounting constant, not runtime storage + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by `_cobsEncodedMaxLength` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +Adds one byte to `_cobsEncodedMaxLength` for the encoded packet end-of-packet marker. `_cobsEncodedLength` reports encoded payload length without this EOP overhead. + +## Important Boundaries + +- Preconditions and assumptions: applies to max encoded buffer sizing, not to decode output length. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro private to portable COBS code. +- Performance shape: constant arithmetic. +- Security or parsing constraints: undersizing this constant would under-allocate encoded packets that include EOP. + +## Direct Call Sites + +Exact source search found the definition and use in `_cobsEncodedMaxLength` at `n_cobs.c:266`. No other direct production uses were found. + +## Role In Callers + +`_cobsEncodedMaxLength` adds this constant after data length and COBS code-byte count to return a buffer size that includes the EOP byte. + +## Tests Observed + +Focused max-length and fit tests cover lengths such as 0, 254, 508, and round-trip fit boundaries in `_cobsEncodedMaxLength_test.cpp`. Gap: `_cobsGuaranteedFit` uses equivalent hardcoded two-byte total overhead rather than this macro. + +## Graph Links + +- Graph node id: `macro:n_cobs.c:8:COBS_EOP_OVERHEAD` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `_cobsEncodedMaxLength`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md b/source-research/artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md new file mode 100644 index 00000000..963ad701 --- /dev/null +++ b/source-research/artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md @@ -0,0 +1,59 @@ +# `COBS_MAX_PACKET_SIZE` + +## Status + +Finalized. Source-inspected COBS maximum packet-block size constant. + +## Identity + +- Kind: macro +- Definition: `n_cobs.c:9` +- Declaration/interface: file-local preprocessor constant +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define COBS_MAX_PACKET_SIZE 254` +- Visibility: private to `n_cobs.c` +- Ownership/lifetime role: encoded-size code-byte grouping constant + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: used by `_cobsEncodedMaxLength` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +Defines the 254-byte COBS data block size used by `_cobsEncodedMaxLength` to compute code bytes as `(length / COBS_MAX_PACKET_SIZE) + 1`. Exact multiples of 254 still need an additional final code byte. + +## Important Boundaries + +- Preconditions and assumptions: applies to max-length accounting; other COBS internals use equivalent literal values such as `0xFF`, `255`, and `2`. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro private to portable COBS code. +- Performance shape: constant division in size computation. +- Security or parsing constraints: wrong value would under/overestimate encoded buffer requirements. + +## Direct Call Sites + +Exact source search found the definition and use in `_cobsEncodedMaxLength` at `n_cobs.c:265`. No other direct production uses of this macro were found. + +## Role In Callers + +`_cobsEncodedMaxLength` uses this constant to account for the initial code byte plus one code byte for every 254 source bytes. + +## Tests Observed + +Focused max-length tests cover 253, 254, 255, 508, 65536, and fit boundaries; encode/decode tests cover the 254-byte block break via `0xFF` and a second code byte. Gap: encoder and fit internals use hardcoded equivalent literals rather than this macro. + +## Graph Links + +- Graph node id: `macro:n_cobs.c:9:COBS_MAX_PACKET_SIZE` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `_cobsEncodedMaxLength`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md b/source-research/artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md new file mode 100644 index 00000000..6ede510f --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md @@ -0,0 +1,59 @@ +# `PRINT_F_QUOTE` + +## Status + +Finalized. Source-inspected floating formatter thousands-separator flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:26` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_QUOTE 0x0001` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for `fmtflt` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +When set, `fmtflt` enables thousands separators by computing separator count and emitting commas through `printsep` while writing the integer part. + +## Important Boundaries + +- Preconditions and assumptions: only meaningful in the internal formatter flag bitmask. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: adds separator counting and comma emission. +- Security or parsing constraints: no parsing; output formatting only. + +## Direct Call Sites + +Source search found the definition and `fmtflt` checks. No production caller currently sets this flag. + +## Role In Callers + +Dormant formatting option for grouped integer output inside `fmtflt`. + +## Tests Observed + +No focused test or production caller was found for thousands-separator behavior. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:26:PRINT_F_QUOTE` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md b/source-research/artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md new file mode 100644 index 00000000..964bdf56 --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md @@ -0,0 +1,59 @@ +# `PRINT_F_TYPE_E` + +## Status + +Finalized. Source-inspected floating formatter exponent-style flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:27` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_TYPE_E 0x0002` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for `fmtflt` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +When set, `fmtflt` selects exponent-style formatting by forcing `estyle`, computing an exponent, and emitting an exponent suffix. + +## Important Boundaries + +- Preconditions and assumptions: only meaningful in the internal formatter flag bitmask. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: enables exponent computation and suffix emission. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found the definition and `fmtflt` checks. No production caller currently sets this flag directly. + +## Role In Callers + +Dormant `%e`-style formatting option inside `fmtflt`; the public `JNtoA` path uses `%g`-style instead. + +## Tests Observed + +No direct `%e`/`PRINT_F_TYPE_E` focused test was found. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:27:PRINT_F_TYPE_E` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md b/source-research/artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md new file mode 100644 index 00000000..4e9641b6 --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md @@ -0,0 +1,59 @@ +# `PRINT_F_TYPE_G` + +## Status + +Finalized. Source-inspected floating formatter significant-digits flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:28` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_TYPE_G 0x0004` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: active formatting option bit used by `JNtoA` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: set in `JNtoA` and read by `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +`JNtoA` sets this flag before calling `fmtflt`. In `fmtflt`, it enables `%g`-like significant-digit behavior: precision counts significant digits, exponent-vs-fixed style is selected based on exponent and precision, and trailing fractional zeros are omitted unless `PRINT_F_NUM` is also set. + +## Important Boundaries + +- Preconditions and assumptions: public numeric printing path depends on this flag for JSON-compatible compact number text. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: can require a recalculation pass when `%g` chooses fixed style after exponent analysis. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found `JNtoA` sets this flag and `fmtflt` reads it. No other production setter was found. + +## Role In Callers + +This is the active flag behind note-c's public `JNtoA` number-to-string conversion. + +## Tests Observed + +JSON number handling tests indirectly verify lowercase exponent output and compact number printing. `JNtoA_test` calls `JNtoA`; source inspection noted a test assertion pattern that appears to parse the expected string rather than the produced buffer in at least one path. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:28:PRINT_F_TYPE_G` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JNtoA` and `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md b/source-research/artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md new file mode 100644 index 00000000..332a3e2b --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md @@ -0,0 +1,59 @@ +# `PRINT_F_NUM` + +## Status + +Finalized. Source-inspected floating formatter force-decimal flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:29` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_NUM 0x0008` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for `fmtflt` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +When set, `fmtflt` prevents `%g` trailing-zero omission and forces decimal-point emission even when fractional precision would otherwise be omitted. + +## Important Boundaries + +- Preconditions and assumptions: only meaningful in the internal formatter flag bitmask. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: affects formatting branches only. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found the definition and `fmtflt` checks. No production caller currently sets this flag. + +## Role In Callers + +Dormant `#`-style formatting option inside `fmtflt`. + +## Tests Observed + +No focused test or production caller was found for forced-decimal behavior. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:29:PRINT_F_NUM` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md b/source-research/artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md new file mode 100644 index 00000000..0d6df38e --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md @@ -0,0 +1,59 @@ +# `PRINT_F_PLUS` + +## Status + +Finalized. Source-inspected floating formatter explicit-plus flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:30` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_PLUS 0x0010` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for `fmtflt` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +When set and the value is nonnegative, `fmtflt` emits a leading `+` sign. + +## Important Boundaries + +- Preconditions and assumptions: only meaningful in the internal formatter flag bitmask. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: one sign-branch effect. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found the definition and `fmtflt` check. No production caller currently sets this flag. + +## Role In Callers + +Dormant sign-formatting option inside `fmtflt`. + +## Tests Observed + +No focused test or production caller was found for explicit-plus output. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:30:PRINT_F_PLUS` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md b/source-research/artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md new file mode 100644 index 00000000..bbf6b4b6 --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md @@ -0,0 +1,59 @@ +# `PRINT_F_MINUS` + +## Status + +Finalized. Source-inspected formatter left-justify flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:31` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_MINUS 0x0020` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for numeric and string formatting helpers + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` and `fmtstr` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +When set, `fmtflt` and `fmtstr` left-justify output by making padding negative and emitting trailing spaces after content. + +## Important Boundaries + +- Preconditions and assumptions: only meaningful in the internal formatter flag bitmask. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable formatting code. +- Performance shape: affects padding branches only. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found the definition and checks in `fmtflt` and `fmtstr`. No production caller currently sets this flag. + +## Role In Callers + +Dormant left-justify formatting option for both numeric and string helper paths. + +## Tests Observed + +No focused padding test or production caller was found for this flag. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:31:PRINT_F_MINUS` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `fmtflt` and `fmtstr`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md b/source-research/artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md new file mode 100644 index 00000000..ba96d881 --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md @@ -0,0 +1,59 @@ +# `PRINT_F_ZERO` + +## Status + +Finalized. Source-inspected floating formatter zero-padding flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:32` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_ZERO 0x0040` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for `fmtflt` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +When set and left-justify is not set, `fmtflt` emits leading zero padding after any sign character. + +## Important Boundaries + +- Preconditions and assumptions: ignored when `PRINT_F_MINUS` left-justify handling is active. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: affects padding branches only. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found the definition and `fmtflt` check. No production caller currently sets this flag. + +## Role In Callers + +Dormant zero-padding formatting option inside `fmtflt`. + +## Tests Observed + +No focused padding test or production caller was found for this flag. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:32:PRINT_F_ZERO` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md b/source-research/artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md new file mode 100644 index 00000000..59dbab0c --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md @@ -0,0 +1,59 @@ +# `PRINT_F_SPACE` + +## Status + +Finalized. Source-inspected floating formatter leading-space sign flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:33` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_SPACE 0x0080` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for `fmtflt` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +When set and the value is nonnegative, `fmtflt` emits a leading space sign unless `PRINT_F_PLUS` takes precedence. + +## Important Boundaries + +- Preconditions and assumptions: only meaningful in the internal formatter flag bitmask. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: one sign-branch effect. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found the definition and `fmtflt` check. No production caller currently sets this flag. + +## Role In Callers + +Dormant sign-formatting option inside `fmtflt`. + +## Tests Observed + +No focused test or production caller was found for leading-space sign output. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:33:PRINT_F_SPACE` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md b/source-research/artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md new file mode 100644 index 00000000..2b74fa64 --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md @@ -0,0 +1,59 @@ +# `PRINT_F_UP` + +## Status + +Finalized. Source-inspected floating formatter uppercase-output flag. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:34` +- Declaration/interface: file-local preprocessor flag +- Public/exported names: none +- Macro aliases/wrappers: none found +- Signature/API shape: `#define PRINT_F_UP 0x0100` +- Visibility: private to `n_ftoa.c` +- Ownership/lifetime role: formatting option bit for `fmtflt` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: read from the `flags` bitmask in `fmtflt` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +When set, `fmtflt` emits uppercase `NAN`/`INF` and uppercase exponent marker `E`; when clear, it emits lowercase `nan`/`inf` and `e`. + +## Important Boundaries + +- Preconditions and assumptions: only meaningful in the internal formatter flag bitmask. +- Error/null/empty behavior: not a runtime function. +- Ownership and lifetime: no ownership. +- Concurrency/global state: none. +- Portability/platform constraints: integer bit flag private to portable numeric formatting code. +- Performance shape: affects constant string and exponent character selection. +- Security or parsing constraints: output formatting only. + +## Direct Call Sites + +Source search found the definition and `fmtflt` checks. The current `JNtoA` path leaves this flag unset. + +## Role In Callers + +Dormant uppercase-formatting option inside `fmtflt`; note-c's public JSON number output uses lowercase exponent markers. + +## Tests Observed + +JSON number handling tests indirectly expect lowercase exponent output. No direct uppercase, NaN, or Inf `JNtoA` test was found; JSON printing converts NaN/Inf to `null` before `JNtoA`. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:34:PRINT_F_UP` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `fmtflt`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ftoa_c__L45__OUTCHAR.md b/source-research/artifacts/macros/n_ftoa_c__L45__OUTCHAR.md new file mode 100644 index 00000000..82411e92 --- /dev/null +++ b/source-research/artifacts/macros/n_ftoa_c__L45__OUTCHAR.md @@ -0,0 +1,53 @@ +# `OUTCHAR` + +## Status + +Finalized. Source-inspected bounded output macro for the formatter. + +## Identity + +- Kind: macro +- Definition: `n_ftoa.c:45` +- Declaration/interface: file-local macro +- Signature/API shape: `OUTCHAR(str, len, size, ch)` +- Visibility: internal to `n_ftoa.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: mutates caller-provided output buffer and length counter + +## Behavior + +Writes `ch` to `str[len]` only when `len + 1 < size`, preserving room for a later terminator, and increments `len` regardless of whether a byte was written. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a writable buffer and an lvalue length expression. +- Error/null/empty behavior: no null checks or error channel. +- Ownership and lifetime: no allocation; writes into caller-owned storage. +- Concurrency/global state: no global state. +- Performance shape: O(1), may evaluate arguments with macro semantics. + +## Direct Call Sites + +Exact source search found uses in `fmtflt`, `fmtstr`, and `printsep`. + +## Role In Callers + +The formatter helpers use `OUTCHAR` as their single byte-emission primitive while counting logical output length. + +## Tests Observed + +Focused JSON number handling and weak direct `JNtoA` tests exercise this indirectly. + +## Graph Links + +- Graph node id: `macro:n_ftoa.c:45:OUTCHAR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_helpers_c__L71__daysByMonth.md b/source-research/artifacts/macros/n_helpers_c__L71__daysByMonth.md new file mode 100644 index 00000000..7eda537a --- /dev/null +++ b/source-research/artifacts/macros/n_helpers_c__L71__daysByMonth.md @@ -0,0 +1,61 @@ +# `daysByMonth` + +## Status + +Finalized. Source-inspected calendar month-offset macro. + +## Identity + +- Kind: macro +- Definition: `n_helpers.c:71` +- Declaration/interface: private macro in `n_helpers.c` +- Signature/API shape: `daysByMonth(y)` +- Visibility: file-local macro +- Public/exported names: none +- Macro aliases/wrappers: none +- Ownership/lifetime role: selects static cumulative-day table + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: reads static tables `normalYearDaysByMonth` and `leapYearDaysByMonth` +- Artifact coverage: generated artifact exists + +## Behavior + +Expands to `normalYearDaysByMonth` when `(y & 03)` is nonzero or `y == 0`; otherwise expands to `leapYearDaysByMonth`. The tables contain cumulative days at the start of months for normal and leap years. + +## Important Boundaries + +- Preconditions and assumptions: `y` is the internal year offset used by the local-time conversion logic, not a full calendar year. +- Error/null/empty behavior: `y == 0` is forced to the normal-year table even though `0 & 03` is zero. +- Ownership and lifetime: returns pointers to static arrays; callers must not free or mutate them. +- Concurrency/global state: reads static arrays only. +- Portability/platform constraints: uses bitwise leap approximation already baked into this date conversion algorithm. +- Performance shape: O(1). +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact source search found direct callers: + +- `n_helpers.c:1077` `NoteLocalTimeST` maps day-of-year to month/day. +- `n_helpers.c:1127` `_yToDays` adds the year-start month offset, which is currently table index 0. + +## Role In Callers + +This macro supplies the calendar month lookup table for local-time conversion. + +## Tests Observed + +Focused `test/src/NoteLocalTimeST_test.cpp` covers a normal 2023 local-time conversion through this macro. No direct leap-boundary test was found. + +## Graph Links + +- Graph node id: `macro:n_helpers.c:71:daysByMonth` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. Leap-boundary behavior is not directly tested. diff --git a/source-research/artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md b/source-research/artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md new file mode 100644 index 00000000..4eafd961 --- /dev/null +++ b/source-research/artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md @@ -0,0 +1,59 @@ +# `NOTE_C_SHOW_MALLOC` + +## Status + +Finalized. Source-inspected malloc/free debug logging compile-time switch. + +## Identity + +- Kind: macro +- Definition: `n_hooks.c:33` +- Declaration/interface: file-local default guarded by `#ifndef NOTE_C_SHOW_MALLOC` +- Public/exported names: build option `NOTE_C_SHOW_MALLOC` +- Macro aliases/wrappers: CMake option of the same name adds a compile definition when enabled +- Signature/API shape: `#define NOTE_C_SHOW_MALLOC false` +- Visibility: compile-time configuration macro consumed in `n_hooks.c` +- Ownership/lifetime role: controls whether malloc/free hook operations emit debug messages + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: `static_assert` and pointer-size assumption in the enabled branch; `string.h` is included when enabled +- Data/type/global dependencies: guards `_n_ptoa32`, `NoteMalloc` logging, and `NoteFree` logging +- Artifact coverage: source-inspected artifact with verified incoming compile-guard edges + +## Behavior + +Defaults to false unless supplied by the build. When enabled, `n_hooks.c` includes extra code that logs `malloc` and `free` hook activity through `hookDebugOutput` when debug output is active. The malloc path logs requested size, failure state, and pointer value; the free path logs the pointer value. In `NOTE_C_LOW_MEM` builds, the `NoteMalloc`/`NoteFree` logging blocks are suppressed even if the macro is set. + +## Important Boundaries + +- Preconditions and assumptions: enabled pointer logging statically asserts `sizeof(void *) == sizeof(uint32_t)` and converts pointers through `_n_ptoa32`. +- Error/null/empty behavior: not a runtime function; when disabled, logging code is not compiled. +- Ownership and lifetime: does not change allocation/free ownership semantics. +- Concurrency/global state: reads debug hook state and emits through `hookDebugOutput` only when active. +- Portability/platform constraints: enabled pointer logging assumes 32-bit pointers, which can reject builds on wider-pointer platforms. +- Performance shape: disabled branch compiles out; enabled branch adds debug checks, integer/pointer formatting, and hook output calls. +- Security or parsing constraints: enabled logging exposes allocation sizes and pointer values to the configured debug output. + +## Direct Call Sites + +Exact source search found the default definition, CMake option/compile-definition handling, the include guard for `string.h`, the conditional `_n_ptoa32` helper, and conditional blocks in `NoteMalloc` and `NoteFree`. + +## Role In Callers + +`NoteMalloc` and `NoteFree` keep their allocation semantics but optionally emit diagnostic allocation traces when this compile-time switch is active and low-memory mode is not active. + +## Tests Observed + +No focused source test references were found outside test documentation prose. Gap: no focused test asserts enabled logging output, disabled compilation, low-memory suppression, or the 32-bit pointer-size guard. + +## Graph Links + +- Graph node id: `macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `_n_ptoa32`, `NoteMalloc`, and `NoteFree`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md b/source-research/artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md new file mode 100644 index 00000000..c8cf02de --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md @@ -0,0 +1,55 @@ +# `CARD_RESET_SYNC_RETRIES` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:104` +- Declaration/interface: reset sync retry macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `10` sync attempts. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I2C and serial reset paths. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Caps how many reset-sync newline/drain attempts the I/O reset paths make before giving up. + +## Important Boundaries + +- Compile-time constant. +- Applied independently in I2C and serial reset loops. +- Successful sync breaks before the cap. + +## Direct Call Sites + +Used by `_i2cNoteReset` and `_serialNoteReset` retry loops. + +## Role In Callers + +Bounds reset recovery work so a missing or unsynchronized Notecard does not loop forever. + +## Tests Observed + +Focused I2C and serial reset tests exercise retry limits. + +## Graph Links + +- Graph node id: `macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_i2cNoteReset` and `_serialNoteReset`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md b/source-research/artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md new file mode 100644 index 00000000..6b509bd5 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md @@ -0,0 +1,55 @@ +# `ALLOC_CHUNK` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:111` +- Declaration/interface: allocation chunk macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `64` bytes; `NOTE_C_LOW_MEM` branch. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I/O and cJSON allocation paths including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Sets the allocation growth quantum for response buffers and cJSON print buffers in the `NOTE_C_LOW_MEM` branch. I2C and serial receive buffers round up or grow by multiples of this value; cJSON print reallocation also rounds needed size to a chunk multiple. + +## Important Boundaries + +- Compile-time configuration branch; only one `ALLOC_CHUNK` definition is active. +- Callers add space for null termination where JSON parsing requires it. +- Smaller low-memory branch trades allocation granularity for constrained targets. + +## Direct Call Sites + +Used by `_i2cNoteTransaction`, `_i2cNoteReset`, `_serialNoteTransaction`, and `_ensure` in `n_cjson.c`. + +## Role In Callers + +Reduces heap fragmentation by growing buffers in fixed chunks while keeping the SDK portable across memory profiles. + +## Tests Observed + +Focused transport and cJSON print tests exercise allocation/growth paths; no test asserts the exact chunk literal independently. + +## Graph Links + +- Graph node id: `macro:n_lib.h:111:ALLOC_CHUNK` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from the active allocation users to this compile branch. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md b/source-research/artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md new file mode 100644 index 00000000..e93bb8d8 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md @@ -0,0 +1,55 @@ +# `ALLOC_CHUNK` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:113` +- Declaration/interface: allocation chunk macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `128` bytes; default branch. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I/O and cJSON allocation paths including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Sets the allocation growth quantum for response buffers and cJSON print buffers in the default branch. I2C and serial receive buffers round up or grow by multiples of this value; cJSON print reallocation also rounds needed size to a chunk multiple. + +## Important Boundaries + +- Compile-time configuration branch; only one `ALLOC_CHUNK` definition is active. +- Callers add space for null termination where JSON parsing requires it. +- Smaller low-memory branch trades allocation granularity for constrained targets. + +## Direct Call Sites + +Used by `_i2cNoteTransaction`, `_i2cNoteReset`, `_serialNoteTransaction`, and `_ensure` in `n_cjson.c`. + +## Role In Callers + +Reduces heap fragmentation by growing buffers in fixed chunks while keeping the SDK portable across memory profiles. + +## Tests Observed + +Focused transport and cJSON print tests exercise allocation/growth paths; no test asserts the exact chunk literal independently. + +## Graph Links + +- Graph node id: `macro:n_lib.h:113:ALLOC_CHUNK` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from the active allocation users to this compile branch. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L174__c_bad_len.md b/source-research/artifacts/macros/n_lib_h__L174__c_bad_len.md new file mode 100644 index 00000000..30240f48 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L174__c_bad_len.md @@ -0,0 +1,55 @@ +# `c_bad_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:174` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `3`, paired with `c_bad = "bad"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used for bad-request error tokens. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used for bad-request error tokens. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:174:c_bad_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L177__c_badbinerr_len.md b/source-research/artifacts/macros/n_lib_h__L177__c_badbinerr_len.md new file mode 100644 index 00000000..1bf9ff9c --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L177__c_badbinerr_len.md @@ -0,0 +1,55 @@ +# `c_badbinerr_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:177` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `9`, paired with `c_badbinerr = "{bad-bin}"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used to classify bad binary responses. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used to classify bad binary responses. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:177:c_badbinerr_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L180__c_cmd_len.md b/source-research/artifacts/macros/n_lib_h__L180__c_cmd_len.md new file mode 100644 index 00000000..931bfbd6 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L180__c_cmd_len.md @@ -0,0 +1,55 @@ +# `c_cmd_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:180` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `3`, paired with `c_cmd = "cmd"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used as the command field key. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used as the command field key. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:180:c_cmd_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L183__c_err_len.md b/source-research/artifacts/macros/n_lib_h__L183__c_err_len.md new file mode 100644 index 00000000..6095b279 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L183__c_err_len.md @@ -0,0 +1,55 @@ +# `c_err_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:183` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `3`, paired with `c_err = "err"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used as the error field key. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used as the error field key. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:183:c_err_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L186__c_false_len.md b/source-research/artifacts/macros/n_lib_h__L186__c_false_len.md new file mode 100644 index 00000000..1332fafc --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L186__c_false_len.md @@ -0,0 +1,55 @@ +# `c_false_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:186` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `5`, paired with `c_false = "false"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. Used by `_parse_value` to match `false` and by `_print_value` to allocate/copy the printed token. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +Used by `_parse_value` to match `false` and by `_print_value` to allocate/copy the printed token. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +Focused cJSON parse/print tests exercise these JSON literal tokens. + +## Graph Links + +- Graph node id: `macro:n_lib.h:186:c_false_len` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_parse_value` and `_print_value`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L189__c_heartbeat_len.md b/source-research/artifacts/macros/n_lib_h__L189__c_heartbeat_len.md new file mode 100644 index 00000000..3e1bdff5 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L189__c_heartbeat_len.md @@ -0,0 +1,55 @@ +# `c_heartbeat_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:189` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `11`, paired with `c_heartbeat = "{heartbeat}"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used to classify heartbeat responses. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used to classify heartbeat responses. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:189:c_heartbeat_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L192__c_iobad_len.md b/source-research/artifacts/macros/n_lib_h__L192__c_iobad_len.md new file mode 100644 index 00000000..3ee3bc6c --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L192__c_iobad_len.md @@ -0,0 +1,55 @@ +# `c_iobad_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:192` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `8`, paired with `c_iobad = "bad {io}"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used for I/O badness error tags. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used for I/O badness error tags. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:192:c_iobad_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L195__c_ioerr_len.md b/source-research/artifacts/macros/n_lib_h__L195__c_ioerr_len.md new file mode 100644 index 00000000..6985d199 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L195__c_ioerr_len.md @@ -0,0 +1,55 @@ +# `c_ioerr_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:195` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `4`, paired with `c_ioerr = "{io}"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used for I/O error tags. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used for I/O error tags. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:195:c_ioerr_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L198__c_iotimeout_len.md b/source-research/artifacts/macros/n_lib_h__L198__c_iotimeout_len.md new file mode 100644 index 00000000..a7045336 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L198__c_iotimeout_len.md @@ -0,0 +1,55 @@ +# `c_iotimeout_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:198` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `12`, paired with `c_iotimeout = "timeout {io}"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used for timeout error tags. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used for timeout error tags. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:198:c_iotimeout_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L201__c_mem_len.md b/source-research/artifacts/macros/n_lib_h__L201__c_mem_len.md new file mode 100644 index 00000000..361fc75e --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L201__c_mem_len.md @@ -0,0 +1,55 @@ +# `c_mem_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:201` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `3`, paired with `c_mem = "mem"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used for memory error tags. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used for memory error tags. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:201:c_mem_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L204__c_newline_len.md b/source-research/artifacts/macros/n_lib_h__L204__c_newline_len.md new file mode 100644 index 00000000..328a5cd2 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L204__c_newline_len.md @@ -0,0 +1,55 @@ +# `c_newline_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:204` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `2`, paired with `c_newline = "\r\n"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. Used by `_serialNoteTransaction` when appending CRLF after serial request transmission. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +Used by `_serialNoteTransaction` when appending CRLF after serial request transmission. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +Focused serial transaction tests assert CRLF transmit behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:204:c_newline_len` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_serialNoteTransaction`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L207__c_null_len.md b/source-research/artifacts/macros/n_lib_h__L207__c_null_len.md new file mode 100644 index 00000000..c914180f --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L207__c_null_len.md @@ -0,0 +1,55 @@ +# `c_null_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:207` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `4`, paired with `c_null = "null"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. Used by `_parse_value` to match `null` and by `_print_value` to allocate/copy the printed token. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +Used by `_parse_value` to match `null` and by `_print_value` to allocate/copy the printed token. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +Focused cJSON parse/print tests exercise these JSON literal tokens. + +## Graph Links + +- Graph node id: `macro:n_lib.h:207:c_null_len` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_parse_value` and `_print_value`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L210__c_nullstring_len.md b/source-research/artifacts/macros/n_lib_h__L210__c_nullstring_len.md new file mode 100644 index 00000000..75b922f2 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L210__c_nullstring_len.md @@ -0,0 +1,55 @@ +# `c_nullstring_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:210` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `0`, paired with `c_nullstring = ""`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired empty string is returned by `JGetString` for missing/null/non-string values. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired empty string is returned by `JGetString` for missing/null/non-string values. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:210:c_nullstring_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L213__c_req_len.md b/source-research/artifacts/macros/n_lib_h__L213__c_req_len.md new file mode 100644 index 00000000..5f04456f --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L213__c_req_len.md @@ -0,0 +1,55 @@ +# `c_req_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:213` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `3`, paired with `c_req = "req"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used as the request field key. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used as the request field key. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:213:c_req_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L216__c_status_len.md b/source-research/artifacts/macros/n_lib_h__L216__c_status_len.md new file mode 100644 index 00000000..87a12102 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L216__c_status_len.md @@ -0,0 +1,55 @@ +# `c_status_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:216` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `6`, paired with `c_status = "status"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used as the status field key. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used as the status field key. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:216:c_status_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L219__c_true_len.md b/source-research/artifacts/macros/n_lib_h__L219__c_true_len.md new file mode 100644 index 00000000..daa02b25 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L219__c_true_len.md @@ -0,0 +1,55 @@ +# `c_true_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:219` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `4`, paired with `c_true = "true"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. Used by `_parse_value` to match `true` and by `_print_value` to allocate/copy the printed token. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +Used by `_parse_value` to match `true` and by `_print_value` to allocate/copy the printed token. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +Focused cJSON parse/print tests exercise these JSON literal tokens. + +## Graph Links + +- Graph node id: `macro:n_lib.h:219:c_true_len` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_parse_value` and `_print_value`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L222__c_unsupported_len.md b/source-research/artifacts/macros/n_lib_h__L222__c_unsupported_len.md new file mode 100644 index 00000000..5a93e941 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L222__c_unsupported_len.md @@ -0,0 +1,55 @@ +# `c_unsupported_len` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:222` +- Declaration/interface: shared internal string-length macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `15`, paired with `c_unsupported = "{not-supported}"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time byte length for the paired global constant string declared in `n_lib.h` and defined in `n_const.c`. No exact production `_len` call sites found; paired string is used to distinguish unsupported errors from retryable I/O errors. + +## Important Boundaries + +- Compile-time literal; no storage or ownership. +- Must stay synchronized with the paired `c_*` string definition in `n_const.c`. +- Exact search separated `_len` use from paired string use. + +## Direct Call Sites + +No exact production `_len` call sites found; paired string is used to distinguish unsupported errors from retryable I/O errors. + +## Role In Callers + +Avoids repeated runtime length computation for shared strings where callers need exact token lengths. + +## Tests Observed + +No focused test asserts this `_len` macro directly. + +## Graph Links + +- Graph node id: `macro:n_lib.h:222:c_unsupported_len` +- Structured graph: `inventory/dependency-graph.json` +- Exact source search found no production `_len` consumer edge for this macro. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L226__LockNote.md b/source-research/artifacts/macros/n_lib_h__L226__LockNote.md new file mode 100644 index 00000000..2733747d --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L226__LockNote.md @@ -0,0 +1,70 @@ +# `_LockNote` + +## Status + +Finalized. Macro definition, expansion target, target implementation, and production call sites were inspected from source. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:226` +- Declaration/interface: internal wrapper macro in `n_lib.h`. +- Public/exported names: none. +- Macro aliases/wrappers: expands directly to `_noteLockNote`. +- Signature/API shape: object-like macro used as a no-argument function call, `_LockNote()`. +- Visibility: project-internal to translation units including `n_lib.h`. +- Ownership/lifetime role: provides the canonical internal spelling for Notecard-wide lock acquisition; no allocation or ownership transfer. + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:657:_noteLockNote` (expands_to, medium, verified=False) +- External/system dependencies: none directly. +- Data/type/global dependencies: through `_noteLockNote`, reads the `hookLockNote` global function pointer and dispatches a platform `mutexFn` when set. +- Artifact coverage: `_noteLockNote` target artifact finalized at `artifacts/functions/n_hooks_c__L657__noteLockNote.md`. + +## Behavior + +`_LockNote` is a readability macro. The preprocessor replaces `_LockNote` with `_noteLockNote`, so every `_LockNote()` call executes the hook-dispatch function implemented at `n_hooks.c:657`. If the platform has registered a note mutex hook, that hook is invoked; otherwise locking is a no-op. + +## Important Boundaries + +- Preconditions and assumptions: callers use this before touching Notecard transport or global hook state that should be serialized. +- Error/null/empty behavior: no error path; absent hook means no-op. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: the macro participates in optional platform-provided synchronization; if no hook is registered, callers are not serialized by note-c itself. +- Portability/platform constraints: portable macro over a function-pointer hook dispatch. +- Performance shape: one macro expansion plus O(1) function-pointer check in `_noteLockNote`. +- Security or parsing constraints: none directly. + +## Direct Call Sites + +Exact production search `rg -n "\b_LockNote\b" n_hooks.c n_request.c n_helpers.c n_lib.h` found: + +- Definition: `n_lib.h:226`. +- Hook/global-state setters: `n_hooks.c:243`, `n_hooks.c:250`, `n_hooks.c:269`, `n_hooks.c:287`, `n_hooks.c:296`, `n_hooks.c:315`, `n_hooks.c:344`, `n_hooks.c:359`, `n_hooks.c:385`, `n_hooks.c:403`, `n_hooks.c:436`. +- Hook/global-state getters: `n_hooks.c:727`, `n_hooks.c:777`, `n_hooks.c:796`, `n_hooks.c:816`. +- Request/transaction paths: `n_request.c:295`, `n_request.c:527`, `n_request.c:767`, `n_request.c:892`. +- Binary helper paths: `n_helpers.c:380`, `n_helpers.c:639`. + +## Role In Callers + +- Hook APIs use `_LockNote` to protect active interface, default hook installation, serial/I2C hook installation, transaction hook configuration, debug hook configuration, and hook reads. +- Request APIs use `_LockNote` to serialize JSON transaction execution, reset, and ping. +- Binary helper APIs use `_LockNote` before issuing binary get/put transactions and then call `_noteTransactionShouldLock(..., false)` to avoid taking the same note lock again. + +## Tests Observed + +None. Tests were not needed to verify this internal alias and its production call sites. + +## Graph Links + +- Graph node id: `macro:n_lib.h:226:_LockNote` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: `artifacts/functions/n_hooks_c__L657__noteLockNote.md`. +- Caller artifact candidates: hook setter/getter nodes in `n_hooks.c`, request transaction nodes in `n_request.c`, and binary helper nodes in `n_helpers.c`. +- Upstream public behavior candidates: `function:n_request.c:220:NoteRequestResponse`, `function:n_request.c:766:NoteReset`, `function:n_hooks.c:241:NoteSetActiveInterface`, and binary helper APIs in `n_helpers.c`. + +## Evidence Gaps + +The alias is finalized, but many callers remain preliminary. Dynamic target of the platform mutex hook remains unresolved by design; it is supplied by embedding code outside this repository. diff --git a/source-research/artifacts/macros/n_lib_h__L227__UnlockNote.md b/source-research/artifacts/macros/n_lib_h__L227__UnlockNote.md new file mode 100644 index 00000000..f55e4a26 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L227__UnlockNote.md @@ -0,0 +1,55 @@ +# `_UnlockNote` + +## Status + +Finalized. Source-inspected Notecard unlock macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:227` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_UnlockNote` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:669:_noteUnlockNote` finalized +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Expands directly to `_noteUnlockNote`. + +## Important Boundaries + +- Preconditions and assumptions: function-like calls through the alias use `_noteUnlockNote` semantics. +- Error/null/empty behavior: null hook is a no-op in the target. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows target hook state. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: platform behavior remains behind hook target. + +## Direct Call Sites + +Exact source search found transaction and reset paths call `_UnlockNote`. + +## Role In Callers + +`_noteTransactionShouldLock` releases the Notecard lock through this alias when `lockNotecard` is true. + +## Tests Observed + +Transaction hook tests cover unlock behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:227:_UnlockNote` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L228__TransactionStart.md b/source-research/artifacts/macros/n_lib_h__L228__TransactionStart.md new file mode 100644 index 00000000..b8b4e6d9 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L228__TransactionStart.md @@ -0,0 +1,55 @@ +# `_TransactionStart` + +## Status + +Finalized. Source-inspected transaction-start macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:228` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_TransactionStart` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:681:_noteTransactionStart` finalized +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Expands directly to `_noteTransactionStart`. + +## Important Boundaries + +- Preconditions and assumptions: timeout argument is forwarded to the target. +- Error/null/empty behavior: target returns true when no hook is set. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows target hook state. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: platform readiness remains behind hook target. + +## Direct Call Sites + +Exact source search found request, raw JSON, and ping transaction paths call `_TransactionStart`. + +## Role In Callers + +`_noteTransactionShouldLock` aborts before I/O when this alias returns false. + +## Tests Observed + +Transaction hook and start-failure tests cover this alias. + +## Graph Links + +- Graph node id: `macro:n_lib.h:228:_TransactionStart` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L229__TransactionStop.md b/source-research/artifacts/macros/n_lib_h__L229__TransactionStop.md new file mode 100644 index 00000000..dcb0a324 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L229__TransactionStop.md @@ -0,0 +1,55 @@ +# `_TransactionStop` + +## Status + +Finalized. Source-inspected transaction-stop macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:229` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_TransactionStop` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:694:_noteTransactionStop` finalized +- External/system dependencies: none +- Data/type/global dependencies: none + +## Behavior + +Expands directly to `_noteTransactionStop`. + +## Important Boundaries + +- Preconditions and assumptions: target hook is optional. +- Error/null/empty behavior: null hook is a no-op in the target. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows target hook state. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: platform transaction-end behavior remains behind hook target. + +## Direct Call Sites + +Exact source search found request, raw JSON, and ping paths call `_TransactionStop`. + +## Role In Callers + +`_noteTransactionShouldLock` calls this alias after a transaction has successfully started and is exiting. + +## Tests Observed + +Transaction hook tests cover stop behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:229:_TransactionStop` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L230__SerialReset.md b/source-research/artifacts/macros/n_lib_h__L230__SerialReset.md new file mode 100644 index 00000000..30e87af8 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L230__SerialReset.md @@ -0,0 +1,67 @@ +# `_SerialReset` + +## Status + +Finalized. Source-inspected serial reset alias, finalized expansion target, direct caller sites, and focused target/caller tests. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:230` +- Declaration/interface: internal readability wrapper in `n_lib.h` +- Public/exported names: none +- Macro aliases/wrappers: expands directly to `_noteSerialReset` +- Signature/API shape: `_SerialReset` +- Visibility: project-internal macro for translation units including `n_lib.h` +- Ownership/lifetime role: no allocation or ownership transfer; aliases a serial reset hook wrapper + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:855:_noteSerialReset` finalized +- External/system dependencies: optional platform serial reset hook through the expansion target +- Data/type/global dependencies: inherited from `_noteSerialReset`: active-interface state and `hookSerialReset` +- Artifact coverage: macro definition, expansion target, direct callers, and focused tests inspected + +## Behavior + +Expands directly to `_noteSerialReset`. Behavior is inherited from the finalized target: when serial is the active interface and a serial reset hook is registered, it returns that hook's bool result; otherwise it returns true. + +## Important Boundaries + +- Preconditions and assumptions: active interface and serial reset hook configuration are managed by hook setup APIs. +- Error/null/empty behavior: inactive interface or missing serial reset hook maps to success through the target wrapper. +- Ownership and lifetime: no allocation and no ownership transfer. +- Concurrency/global state: follows target global hook state; callers handle higher-level synchronization. +- Portability/platform constraints: adapter-specific reset behavior remains behind the platform hook. +- Performance shape: preprocessor alias plus O(1) target dispatch. +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact production search found: + +- `n_lib.h:230` macro definition. +- `n_serial.c:159` `_serialNoteReset` exits immediately if the initial `_SerialReset()` fails. +- `n_serial.c:209` `_serialNoteReset` retries `_SerialReset()` after failed drain/resync attempts and exits if the retry reset fails. + +## Role In Callers + +`_serialNoteReset` uses the alias as the low-level bus reset step before and during serial resynchronization. A false target result aborts the higher-level serial reset path. + +## Tests Observed + +`test/src/_noteSerialReset_test.cpp` directly covers the expansion target's active-interface and null-hook behavior. `test/src/_serialNoteReset_test.cpp` fakes `_noteSerialReset` to verify higher-level caller failure, retry, and success paths through the alias target. + +## Test Coverage Notes + +Focused tests do not exercise the preprocessor alias spelling separately from its target expansion. + +## Graph Links + +- Graph node id: `macro:n_lib.h:230:_SerialReset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L231__SerialTransmit.md b/source-research/artifacts/macros/n_lib_h__L231__SerialTransmit.md new file mode 100644 index 00000000..d9acd37d --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L231__SerialTransmit.md @@ -0,0 +1,59 @@ +# `_SerialTransmit` + +## Status + +Final. Macro expansion target, behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:231` +- Declaration/interface: internal macro in `n_lib.h:231` +- Public/exported names: none; target helper `_noteSerialTransmit` is internal +- Macro aliases/wrappers: `_SerialTransmit` expands to `_noteSerialTransmit` +- Signature/API shape: `_SerialTransmit(buffer, len, flush)` macro returning void +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases serial transmit dispatch helper + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:871:_noteSerialTransmit` (expands_to, verified) +- External/system dependencies: platform serial transmit hook through target helper +- Data/type/global dependencies: target reads `hookActiveInterface` and `hookSerialTransmit` +- Artifact coverage: generated artifact exists + +## Behavior + +Readability macro for `_noteSerialTransmit`. It inherits target behavior: active serial plus transmit hook forwards buffer/length/flush; inactive or missing hook is a no-op. + +## Important Boundaries + +- Preconditions and assumptions: serial interface and transmit hook should be configured before callers depend on output +- Error/null/empty behavior: no-op when inactive or hook missing; no error channel +- Ownership and lifetime: none +- Concurrency/global state: inherits target global hook/interface behavior +- Portability/platform constraints: platform transmit behavior remains behind hook +- Performance shape: preprocessor alias to function call +- Security or parsing constraints: no parsing; buffer safety depends on caller and hook honoring length + +## Direct Call Sites + +Verified direct production callers: `n_serial.c:58`, `n_serial.c:176`, and `n_serial.c:321`. + +## Role In Callers + +Serial transmit primitive used by serial transaction, reset, and chunked transmit paths. + +## Tests Observed + +Focused evidence comes through `_noteSerialTransmit_test.cpp`; higher-level serial tests fake `_noteSerialTransmit` for transaction/reset/chunk behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:231:_SerialTransmit` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this macro. diff --git a/source-research/artifacts/macros/n_lib_h__L232__SerialAvailable.md b/source-research/artifacts/macros/n_lib_h__L232__SerialAvailable.md new file mode 100644 index 00000000..6e00aa85 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L232__SerialAvailable.md @@ -0,0 +1,59 @@ +# `_SerialAvailable` + +## Status + +Final. Macro expansion target, behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:232` +- Declaration/interface: internal macro in `n_lib.h:232` +- Public/exported names: none; target helper `_noteSerialAvailable` is internal +- Macro aliases/wrappers: `_SerialAvailable` expands to `_noteSerialAvailable` +- Signature/API shape: `_SerialAvailable()` macro returning `bool` +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases serial availability dispatch helper + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:887:_noteSerialAvailable` (expands_to, verified) +- External/system dependencies: platform serial availability hook through target helper +- Data/type/global dependencies: target reads `hookActiveInterface` and `hookSerialAvailable` +- Artifact coverage: generated artifact exists + +## Behavior + +Readability macro for `_noteSerialAvailable`. It inherits target behavior: active serial plus availability hook returns hook result; inactive or missing hook returns `false`. + +## Important Boundaries + +- Preconditions and assumptions: serial interface and availability hook should be configured before callers depend on true availability +- Error/null/empty behavior: inactive or missing hook returns `false` +- Ownership and lifetime: none +- Concurrency/global state: inherits target global hook/interface behavior +- Portability/platform constraints: platform availability behavior remains behind hook +- Performance shape: preprocessor alias to function call +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Verified direct production callers: `n_serial.c:70`, `n_serial.c:185`, `n_serial.c:243`, and `n_request.c:802`. + +## Role In Callers + +Serial availability primitive used by serial response wait, reset drain, chunked receive, and ping-drain paths. + +## Tests Observed + +Focused evidence comes through `_noteSerialAvailable_test.cpp`; higher-level serial tests fake `_noteSerialAvailable` for transaction/reset/chunk behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:232:_SerialAvailable` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this macro. diff --git a/source-research/artifacts/macros/n_lib_h__L233__SerialReceive.md b/source-research/artifacts/macros/n_lib_h__L233__SerialReceive.md new file mode 100644 index 00000000..cc1ae42d --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L233__SerialReceive.md @@ -0,0 +1,59 @@ +# `_SerialReceive` + +## Status + +Final. Macro expansion target, behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:233` +- Declaration/interface: internal macro in `n_lib.h:233` +- Public/exported names: none; target helper `_noteSerialReceive` is internal +- Macro aliases/wrappers: `_SerialReceive` expands to `_noteSerialReceive` +- Signature/API shape: `_SerialReceive()` macro returning `char` +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases serial receive dispatch helper + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:902:_noteSerialReceive` (expands_to, verified) +- External/system dependencies: platform serial receive hook through target helper +- Data/type/global dependencies: target reads `hookActiveInterface` and `hookSerialReceive` +- Artifact coverage: generated artifact exists + +## Behavior + +Readability macro for `_noteSerialReceive`. It inherits target behavior: active serial plus receive hook returns one hook byte; inactive or missing hook returns `'\0'`. + +## Important Boundaries + +- Preconditions and assumptions: callers generally check `_SerialAvailable()` before receiving +- Error/null/empty behavior: inactive or missing hook returns NUL character +- Ownership and lifetime: none +- Concurrency/global state: inherits target global hook/interface behavior +- Portability/platform constraints: platform receive behavior remains behind hook +- Performance shape: preprocessor alias to function call +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Verified direct production callers: `n_serial.c:190`, `n_serial.c:263`, and `n_request.c:803`. + +## Role In Callers + +Serial receive primitive used by reset drain, chunked receive, and ping-drain paths. + +## Tests Observed + +Focused evidence comes through `_noteSerialReceive_test.cpp`; higher-level serial tests fake `_noteSerialReceive` for transaction/reset/chunk behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:233:_SerialReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this macro. diff --git a/source-research/artifacts/macros/n_lib_h__L234__I2CReset.md b/source-research/artifacts/macros/n_lib_h__L234__I2CReset.md new file mode 100644 index 00000000..f8f8c320 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L234__I2CReset.md @@ -0,0 +1,64 @@ +# `_I2CReset` + +## Status + +Finalized. Source-inspected I2C reset macro alias, target behavior, direct call sites, and focused tests. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:234` +- Declaration/interface: internal macro in `n_lib.h:234` +- Public/exported names: none; target helper `_noteI2CReset` is internal +- Macro aliases/wrappers: `_I2CReset` expands to `_noteI2CReset` +- Signature/API shape: `_I2CReset(address)` returning `bool` +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases I2C reset hook dispatcher + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:916:_noteI2CReset` finalized in this slice +- External/system dependencies: platform I2C reset hook through target helper +- Data/type/global dependencies: target reads `hookActiveInterface` and `hookI2CReset` +- Artifact coverage: macro definition, target helper, direct production callers, and focused tests inspected + +## Behavior + +Readability macro for `_noteI2CReset`. It inherits target behavior: when I2C is active and a reset hook is configured, call that hook with the supplied address and return its boolean result; otherwise return true as no-op success. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies effective I2C address, usually through `_I2CAddress()`. +- Error/null/empty behavior: missing hook/inactive interface is success through the target helper. +- Ownership and lifetime: none. +- Concurrency/global state: no lock in the macro or target; callers own locking. +- Portability/platform constraints: platform reset behavior remains behind the configured hook. +- Performance shape: preprocessor alias to O(1) dispatcher plus hook cost. +- Security or parsing constraints: no parsing; address narrowing follows target's `uint16_t` parameter. + +## Direct Call Sites + +Exact production callers: + +- `n_i2c.c:205` `_i2cNoteReset` performs the initial bus reset while holding the I2C lock; false return logs, unlocks, and fails reset. +- `n_i2c.c:298` `_i2cNoteReset` retries a bus reset after a reset-sync attempt finds no response; false return logs and exits the retry loop. +- `n_i2c.c:494` `_i2cChunkedTransmit` invokes a best-effort reset after `_I2CTransmit` returns an error; the reset result is ignored and the original transmit error is returned. + +## Role In Callers + +Shared internal reset primitive for I2C reset and transmit-error recovery paths. Its no-op success behavior lets platforms omit a reset hook, while callers that do receive false decide whether failure is fatal. + +## Tests Observed + +Focused evidence includes `_noteI2CReset_test.cpp` for target dispatch, `_i2cNoteReset_test.cpp` for reset-call address/locking/retry behavior, `_i2cChunkedTransmit_test.cpp` for transmit-error reset invocation, and `_noteSetActiveInterface_test.cpp` for I2C reset dispatch wiring. + +## Graph Links + +- Graph node id: `macro:n_lib.h:234:_I2CReset` +- Structured graph: `inventory/dependency-graph.json` +- Verified expands-to target: `_noteI2CReset` + +## Evidence Gaps + +No unresolved source gaps for this node. No focused test was observed for `_i2cChunkedTransmit` behavior when the best-effort reset itself returns false; source ignores that result. diff --git a/source-research/artifacts/macros/n_lib_h__L235__I2CTransmit.md b/source-research/artifacts/macros/n_lib_h__L235__I2CTransmit.md new file mode 100644 index 00000000..6bad0ea6 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L235__I2CTransmit.md @@ -0,0 +1,63 @@ +# `_I2CTransmit` + +## Status + +Finalized. Source-inspected I2C transmit macro alias, target behavior, direct call sites, and focused tests. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:235` +- Declaration/interface: internal macro in `n_lib.h:235` +- Public/exported names: none; target helper `_noteI2CTransmit` is internal +- Macro aliases/wrappers: `_I2CTransmit` expands to `_noteI2CTransmit` +- Signature/API shape: `_I2CTransmit(address, buffer, size)` returning `const char *` +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases I2C transmit hook dispatcher + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:934:_noteI2CTransmit` finalized in this slice +- External/system dependencies: platform I2C transmit hook through target helper +- Data/type/global dependencies: target reads `hookActiveInterface` and `hookI2CTransmit` +- Artifact coverage: macro definition, target helper, direct production callers, and focused tests inspected + +## Behavior + +Readability macro for `_noteI2CTransmit`. It inherits target behavior: active I2C with a transmit hook forwards address, buffer, and size to the hook; otherwise returns `"i2c not active"`. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies effective I2C address, buffer pointer, and size that fits the target `uint16_t`. +- Error/null/empty behavior: inactive interface or missing hook returns an error string through the target; hook errors are returned unchanged. +- Ownership and lifetime: none; caller owns the buffer. +- Concurrency/global state: no lock in the macro or target; callers own locking. +- Portability/platform constraints: platform transmit behavior remains behind the configured hook. +- Performance shape: preprocessor alias to O(1) dispatcher plus hook cost. +- Security or parsing constraints: no parsing; target casts away `const` for legacy hook typedef compatibility. + +## Direct Call Sites + +Exact production callers: + +- `n_i2c.c:223` `_i2cNoteReset` sends a stack newline byte during reset/resync while holding the I2C lock. +- `n_i2c.c:492` `_i2cChunkedTransmit` sends each capped transmit chunk. + +## Role In Callers + +Shared internal I2C transmit primitive for reset resynchronization and chunked request/binary transmit paths. + +## Tests Observed + +Focused evidence includes `_noteI2CTransmit_test.cpp` for target dispatch, `_i2cNoteReset_test.cpp` for reset newline transmit behavior, `_i2cChunkedTransmit_test.cpp` for chunk transmit behavior, and `_i2cNoteTransaction_test.cpp` for request transmit error propagation. + +## Graph Links + +- Graph node id: `macro:n_lib.h:235:_I2CTransmit` +- Structured graph: `inventory/dependency-graph.json` +- Verified expands-to target: `_noteI2CTransmit` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L236__I2CReceive.md b/source-research/artifacts/macros/n_lib_h__L236__I2CReceive.md new file mode 100644 index 00000000..901ec77d --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L236__I2CReceive.md @@ -0,0 +1,59 @@ +# `_I2CReceive` + +## Status + +Final. Macro expansion target, behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:236` +- Declaration/interface: internal macro in `n_lib.h:236` +- Public/exported names: none; target helper `_noteI2CReceive` is internal +- Macro aliases/wrappers: `_I2CReceive` expands to `_noteI2CReceive` +- Signature/API shape: `_I2CReceive(addr, buffer, size, available)` returning `const char *` +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases I2C receive dispatch helper + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:955:_noteI2CReceive` (expands_to, verified) +- External/system dependencies: platform receive hook through target helper +- Data/type/global dependencies: target reads `hookActiveInterface` and `hookI2CReceive` +- Artifact coverage: generated artifact exists + +## Behavior + +Readability macro for `_noteI2CReceive`. It inherits target behavior: active I2C plus receive hook forwards all parameters to the platform hook; otherwise returns `"i2c not active"`. + +## Important Boundaries + +- Preconditions and assumptions: I2C interface and receive hook should be configured before callers depend on successful receive +- Error/null/empty behavior: inactive/missing hook returns `"i2c not active"`; active path passes pointers directly to hook +- Ownership and lifetime: none +- Concurrency/global state: inherits target global hook/interface behavior +- Portability/platform constraints: platform receive behavior remains behind hook +- Performance shape: preprocessor alias to function call +- Security or parsing constraints: no parsing; buffer safety depends on callers and hook honoring size + +## Direct Call Sites + +Verified direct production callers: `n_i2c.c:55`, `n_i2c.c:253`, `n_i2c.c:382`, `n_request.c:823`, and `n_request.c:831`. + +## Role In Callers + +I2C receive primitive used by query, reset/drain, chunk receive, and ping-drain paths. + +## Tests Observed + +Focused evidence comes through `_noteI2CReceive_test.cpp`; higher-level I2C tests fake `_noteI2CReceive` and assert receive sizing/address behavior in query/reset/chunk paths. + +## Graph Links + +- Graph node id: `macro:n_lib.h:236:_I2CReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this macro. diff --git a/source-research/artifacts/macros/n_lib_h__L237__Reset.md b/source-research/artifacts/macros/n_lib_h__L237__Reset.md new file mode 100644 index 00000000..d763dbc7 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L237__Reset.md @@ -0,0 +1,55 @@ +# `_Reset` + +## Status + +Finalized. Source-inspected reset macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:237` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_Reset` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:1015:_noteHardReset` finalized +- External/system dependencies: none +- Data/type/global dependencies: active interface dispatch state through target + +## Behavior + +Expands directly to `_noteHardReset`. + +## Important Boundaries + +- Preconditions and assumptions: active reset target is selected elsewhere. +- Error/null/empty behavior: target returns true if no reset hook is selected. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows active-interface dispatch state. +- Performance shape: O(1) plus adapter reset cost. +- Portability/platform constraints: adapter-specific reset remains behind hook target. + +## Direct Call Sites + +Exact source search found transaction and public reset paths call `_Reset`. + +## Role In Callers + +`_noteTransactionShouldLock` uses this alias before I/O when reset is required and during retry after I/O errors. + +## Tests Observed + +Reset and transaction retry tests cover this alias. + +## Graph Links + +- Graph node id: `macro:n_lib.h:237:_Reset` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L238__Transaction.md b/source-research/artifacts/macros/n_lib_h__L238__Transaction.md new file mode 100644 index 00000000..087448e6 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L238__Transaction.md @@ -0,0 +1,55 @@ +# `_Transaction` + +## Status + +Finalized. Source-inspected JSON transaction macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:238` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_Transaction` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:1042:_noteJSONTransaction` finalized +- External/system dependencies: none +- Data/type/global dependencies: active interface dispatch state through target + +## Behavior + +Expands directly to `_noteJSONTransaction`. + +## Important Boundaries + +- Preconditions and assumptions: request/length/response/timeout are forwarded to the active adapter target. +- Error/null/empty behavior: target returns an error string if no valid interface is selected. +- Ownership and lifetime: response ownership follows the selected adapter target. +- Concurrency/global state: follows active-interface dispatch state. +- Performance shape: O(1) plus adapter transaction cost. +- Portability/platform constraints: serial/I2C behavior remains behind hook target. + +## Direct Call Sites + +Exact source search found request, raw JSON, and ping paths call `_Transaction`. + +## Role In Callers + +`_noteTransactionShouldLock` uses this alias for command and request I/O inside the retry loop. + +## Tests Observed + +JSON transaction, serial/I2C adapter, and transaction retry tests cover this alias. + +## Graph Links + +- Graph node id: `macro:n_lib.h:238:_Transaction` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L239__ChunkedReceive.md b/source-research/artifacts/macros/n_lib_h__L239__ChunkedReceive.md new file mode 100644 index 00000000..05ec6015 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L239__ChunkedReceive.md @@ -0,0 +1,55 @@ +# `_ChunkedReceive` + +## Status + +Finalized. Source-inspected chunked receive macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:239` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_ChunkedReceive` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:1068:_noteChunkedReceive` finalized +- External/system dependencies: none +- Data/type/global dependencies: active interface dispatch state through target + +## Behavior + +Expands directly to `_noteChunkedReceive`. + +## Important Boundaries + +- Preconditions and assumptions: buffer/size/delay/timeout/available arguments are forwarded to the active adapter target. +- Error/null/empty behavior: target returns an error string if no valid interface is selected. +- Ownership and lifetime: no allocation in alias or dispatcher. +- Concurrency/global state: follows active-interface dispatch state. +- Performance shape: O(1) plus adapter receive cost. +- Portability/platform constraints: serial/I2C behavior remains behind hook target. + +## Direct Call Sites + +Exact source search found `NoteBinaryStoreReceive` as the active slice caller. + +## Role In Callers + +`NoteBinaryStoreReceive` uses this alias to receive the raw binary payload after validating the Notecard response fields. + +## Tests Observed + +`NoteBinaryStoreReceive_test.cpp` and `_noteChunkedReceive_test.cpp` cover receive error and forwarding behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:239:_ChunkedReceive` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L240__ChunkedTransmit.md b/source-research/artifacts/macros/n_lib_h__L240__ChunkedTransmit.md new file mode 100644 index 00000000..8dac1fe5 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L240__ChunkedTransmit.md @@ -0,0 +1,66 @@ +# `_ChunkedTransmit` + +## Status + +Finalized. Source-inspected chunked transmit alias, finalized active-interface dispatcher target, direct caller, and focused target/caller tests. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:240` +- Declaration/interface: internal readability wrapper in `n_lib.h` +- Public/exported names: none +- Macro aliases/wrappers: expands directly to `_noteChunkedTransmit` +- Signature/API shape: `_ChunkedTransmit` +- Visibility: project-internal macro for translation units including `n_lib.h` +- Ownership/lifetime role: no allocation or ownership transfer; aliases active-interface chunked transmit dispatch + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:1087:_noteChunkedTransmit` finalized +- External/system dependencies: serial/I2C platform transmit behavior through the dispatcher-selected callback +- Data/type/global dependencies: inherited from `_noteChunkedTransmit`: active-interface state and `notecardChunkedTransmit` +- Artifact coverage: macro definition, finalized expansion target, direct caller, registration paths, and focused tests inspected + +## Behavior + +Expands directly to `_noteChunkedTransmit`. Behavior is inherited from the finalized target: no installed callback or `NOTE_C_INTERFACE_NONE` returns `"a valid interface must be selected"`; otherwise the target forwards `buffer`, `size`, and `delay` to the active serial or I2C chunked transmit callback and returns that callback's result. + +## Important Boundaries + +- Preconditions and assumptions: active interface must be configured for successful dispatch; buffer validity is delegated to the selected transport callback. +- Error/null/empty behavior: inherited from the dispatcher and active callback. +- Ownership and lifetime: no allocation or ownership transfer; forwards borrowed buffer pointer. +- Concurrency/global state: follows active-interface dispatch state; callers handle surrounding locks. +- Portability/platform constraints: selected serial/I2C transport behavior remains behind adapter and platform hooks. +- Performance shape: preprocessor alias plus dispatcher and active callback cost. +- Security or parsing constraints: raw bytes are forwarded; no parsing. + +## Direct Call Sites + +Exact source search found: + +- `n_lib.h:240` macro definition. +- `n_helpers.c:683` `NoteBinaryStoreTransmit` sends encoded binary data through `_ChunkedTransmit(encodedData, encLen + 1, false)`. + +## Role In Callers + +`NoteBinaryStoreTransmit` relies on this alias to send the binary payload after a successful setup transaction. It treats a non-null returned error as transfer failure, decodes the input buffer back to its original form, and returns the error. + +## Tests Observed + +`test/src/_noteChunkedTransmit_test.cpp` covers the expansion target's active-interface/no-interface behavior and parameter forwarding. `_noteSetActiveInterface_test.cpp` verifies serial/I2C callback registration and clearing. `NoteBinaryStoreTransmit_test.cpp` fakes `_noteChunkedTransmit` to verify caller failure handling through the alias target. + +## Test Coverage Notes + +Focused tests do not exercise macro expansion separately from the target function and do not run a full binary transmit through real serial/I2C adapters in one path. + +## Graph Links + +- Graph node id: `macro:n_lib.h:240:_ChunkedTransmit` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L241__Malloc.md b/source-research/artifacts/macros/n_lib_h__L241__Malloc.md new file mode 100644 index 00000000..1f8f9dea --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L241__Malloc.md @@ -0,0 +1,60 @@ +# `_Malloc` + +## Status + +Finalized. Source-inspected transparent allocation macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:241` +- Signature/API shape: `#define _Malloc NoteMalloc` +- Visibility: private/internal alias in `n_lib.h` +- Public/exported names: none; public implementation is `NoteMalloc` +- Macro aliases/wrappers: transparent alias, no argument adaptation + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:569:NoteMalloc` finalized +- External/system dependencies: inherited platform allocation hook +- Data/type/global dependencies: inherited from `NoteMalloc` + +## Behavior + +Expands internal `_Malloc(...)` calls directly to `NoteMalloc(...)`. It does not change arguments, ownership, return value, or error behavior. + +## Important Boundaries + +- Preconditions and assumptions: same as `NoteMalloc`. +- Error/null/empty behavior: same as `NoteMalloc`; returns `NULL` if no allocator hook exists or allocation fails. +- Ownership and lifetime: allocated memory ownership transfers to caller. +- Concurrency/global state: same hook-global boundary as `NoteMalloc`. +- Portability/platform constraints: keeps internal allocation calls behind SDK hook API. + +## Direct Call Sites + +Exact source search found `_Malloc` use in: + +- `n_cjson.c` for string duplication, item allocation, parse/print buffers, and object replacement. +- `n_request.c` for request/response JSON buffers and CRC augmentation. +- `n_i2c.c` and `n_serial.c` for transaction JSON buffers. +- `n_helpers.c` for payload/base64 and memory-availability helper structures. + +## Role In Callers + +Internal modules use `_Malloc` as the portable allocation boundary. In the active JSON slice, `_j_strdup` and `_jNew_Item` depend on this alias to allocate duplicated object keys and `J` nodes. + +## Tests Observed + +None. Tests were not researched as standalone allocator targets. + +## Graph Links + +- Graph node id: `macro:n_lib.h:241:_Malloc` +- Structured graph: `inventory/dependency-graph.json` +- Verified expansion edge to `function:n_hooks.c:569:NoteMalloc`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L242__Free.md b/source-research/artifacts/macros/n_lib_h__L242__Free.md new file mode 100644 index 00000000..6c8db0c9 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L242__Free.md @@ -0,0 +1,61 @@ +# `_Free` + +## Status + +Finalized. Source-inspected transparent deallocation macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:242` +- Signature/API shape: `#define _Free NoteFree` +- Visibility: private/internal alias in `n_lib.h` +- Public/exported names: none; public implementation is `NoteFree` +- Macro aliases/wrappers: transparent alias, no argument adaptation + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:595:NoteFree` finalized +- External/system dependencies: inherited platform free hook +- Data/type/global dependencies: inherited from `NoteFree` + +## Behavior + +Expands internal `_Free(...)` calls directly to `NoteFree(...)`. It does not change arguments, return behavior, or ownership semantics. + +## Important Boundaries + +- Preconditions and assumptions: same as `NoteFree`. +- Error/null/empty behavior: same as `NoteFree`; missing hook is a silent no-op. +- Ownership and lifetime: releases caller-provided memory according to the registered hook. +- Concurrency/global state: same hook-global boundary as `NoteFree`. +- Portability/platform constraints: keeps internal deallocation calls behind SDK hook API. + +## Direct Call Sites + +Exact source search found `_Free` use in: + +- `n_cjson.c` for JSON string/node/buffer cleanup and object replacement. +- `n_request.c` for request/response JSON buffers. +- `n_i2c.c` and `n_serial.c` for transport JSON buffers. +- `n_helpers.c` for payload/base64, memory-availability, and payload segment cleanup. +- `n_cjson_helpers.c` for binary/base64 helper cleanup. + +## Role In Callers + +In the active JSON add path, `_add_item_to_object` uses `_Free` to release an existing non-constant `item->string` before replacing it with the new object key. + +## Tests Observed + +None. Tests were not researched as standalone deallocator targets. + +## Graph Links + +- Graph node id: `macro:n_lib.h:242:_Free` +- Structured graph: `inventory/dependency-graph.json` +- Verified expansion edge to `function:n_hooks.c:595:NoteFree`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L243__GetMs.md b/source-research/artifacts/macros/n_lib_h__L243__GetMs.md new file mode 100644 index 00000000..b27a892b --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L243__GetMs.md @@ -0,0 +1,57 @@ +# `_GetMs` + +## Status + +Finalized. Source-inspected millisecond hook macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:243` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_GetMs` +- Visibility: internal macro +- Public/exported names: none +- Macro aliases/wrappers: expands to `NoteGetMs` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:520:NoteGetMs` finalized +- External/system dependencies: none +- Data/type/global dependencies: `hookGetMs` through `NoteGetMs` +- Graph repair: verified existing `_GetMs` -> `NoteGetMs` macro-alias edge from source + +## Behavior + +Expands directly to `NoteGetMs`. All null-hook and dispatch behavior is inherited from the finalized target: unset timing hook returns `0`; set timing hook is called and its return value is forwarded. + +## Important Boundaries + +- Preconditions and assumptions: function-like calls through the alias rely on `NoteGetMs` hook semantics. +- Error/null/empty behavior: unset hook returns `0` through the target. +- Ownership and lifetime: no allocation. +- Concurrency/global state: reads the timing hook via `NoteGetMs`. +- Performance shape: O(1) plus hook cost. +- Portability/platform constraints: portable alias; platform timing remains behind the hook target. + +## Direct Call Sites + +Exact source search found production callers in request retry/ping paths (`n_request.c`), serial transport loops (`n_serial.c`), I2C transport loops (`n_i2c.c`), time helpers and suppression timers (`n_helpers.c`), and debug-sync polling (`n_helpers.c`). + +## Role In Callers + +Supplies elapsed-time values for timeout loops, retry deadlines, reset drains, time-base maintenance, suppression timers, and polling intervals. `_timerExpiredSecs` uses this alias to decide when cached helper state should be refreshed. + +## Tests Observed + +`NoteGetMs_test.cpp` covers target hook behavior. Focused caller tests fake `NoteGetMs` in retry, time, serial, I2C, and debug-sync paths. + +## Graph Links + +- Graph node id: `macro:n_lib.h:243:_GetMs` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L244__DelayMs.md b/source-research/artifacts/macros/n_lib_h__L244__DelayMs.md new file mode 100644 index 00000000..87d0dafa --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L244__DelayMs.md @@ -0,0 +1,55 @@ +# `_DelayMs` + +## Status + +Finalized. Source-inspected delay macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:244` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_DelayMs` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:528:NoteDelayMs` finalized +- External/system dependencies: none +- Data/type/global dependencies: delay hook state through target + +## Behavior + +Expands directly to `NoteDelayMs`. + +## Important Boundaries + +- Preconditions and assumptions: delay value is forwarded unchanged. +- Error/null/empty behavior: target is a no-op if no delay hook is set. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows delay hook state. +- Performance shape: O(1) plus hook delay. +- Portability/platform constraints: platform delay remains behind hook target. + +## Direct Call Sites + +Exact source search found retry paths and adapter code call `_DelayMs`. + +## Role In Callers + +`_noteTransactionShouldLock` uses this alias for retry backoff. + +## Tests Observed + +`NoteDelayMs_test.cpp` and transaction retry tests cover delay behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:244:_DelayMs` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L245__LockI2C.md b/source-research/artifacts/macros/n_lib_h__L245__LockI2C.md new file mode 100644 index 00000000..4981db24 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L245__LockI2C.md @@ -0,0 +1,59 @@ +# `_LockI2C` + +## Status + +Final. Macro expansion target, behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:245` +- Declaration/interface: internal macro in `n_lib.h:245` +- Public/exported names: none; target function `NoteLockI2C` is public +- Macro aliases/wrappers: `_LockI2C` expands to `NoteLockI2C` +- Signature/API shape: `_LockI2C()` macro with no arguments +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases I2C lock hook invocation + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:616:NoteLockI2C` (expands_to, verified) +- External/system dependencies: platform lock hook through target function +- Data/type/global dependencies: target reads `hookLockI2C` +- Artifact coverage: generated artifact exists + +## Behavior + +Readability macro for `NoteLockI2C()`. It inherits target behavior: call registered I2C lock hook when set, no-op otherwise. + +## Important Boundaries + +- Preconditions and assumptions: caller expects I2C critical section semantics supplied by registered hook +- Error/null/empty behavior: no error channel; unset hook is no-op through `NoteLockI2C` +- Ownership and lifetime: none +- Concurrency/global state: inherits target global hook behavior +- Portability/platform constraints: platform behavior remains behind hook +- Performance shape: preprocessor alias to function call +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Verified direct production callers: `n_i2c.c:92`, `n_i2c.c:200`, `n_i2c.c:340`, `n_i2c.c:458`, and `n_request.c:822`. + +## Role In Callers + +I2C lock primitive used by higher-level transaction/reset/chunk wrappers and ping-drain. + +## Tests Observed + +Focused evidence comes through `NoteLockI2C` tests and I2C transport tests that fake the macro target and assert balanced lock/unlock calls. + +## Graph Links + +- Graph node id: `macro:n_lib.h:245:_LockI2C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this macro. diff --git a/source-research/artifacts/macros/n_lib_h__L246__UnlockI2C.md b/source-research/artifacts/macros/n_lib_h__L246__UnlockI2C.md new file mode 100644 index 00000000..f50f9854 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L246__UnlockI2C.md @@ -0,0 +1,59 @@ +# `_UnlockI2C` + +## Status + +Final. Macro expansion target, behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:246` +- Declaration/interface: internal macro in `n_lib.h:246` +- Public/exported names: none; target function `NoteUnlockI2C` is public +- Macro aliases/wrappers: `_UnlockI2C` expands to `NoteUnlockI2C` +- Signature/API shape: `_UnlockI2C()` macro with no arguments +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases I2C unlock hook invocation + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:628:NoteUnlockI2C` (expands_to, verified) +- External/system dependencies: platform unlock hook through target function +- Data/type/global dependencies: target reads `hookUnlockI2C` +- Artifact coverage: generated artifact exists + +## Behavior + +Readability macro for `NoteUnlockI2C()`. It inherits target behavior: call registered I2C unlock hook when set, no-op otherwise. + +## Important Boundaries + +- Preconditions and assumptions: caller expects it to balance a preceding `_LockI2C()` on paths that took the lock +- Error/null/empty behavior: no error channel; unset hook is no-op through `NoteUnlockI2C` +- Ownership and lifetime: none +- Concurrency/global state: inherits target global hook behavior +- Portability/platform constraints: platform behavior remains behind hook +- Performance shape: preprocessor alias to function call +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Verified direct production callers are I2C unlock paths in `n_i2c.c` and ping drain in `n_request.c:824`, `n_request.c:832`, `n_request.c:836`. + +## Role In Callers + +I2C unlock primitive used by higher-level transaction/reset/chunk wrappers and ping-drain. + +## Tests Observed + +Focused evidence comes through `NoteUnlockI2C` tests and I2C transport tests that fake the macro target and assert balanced lock/unlock calls. + +## Graph Links + +- Graph node id: `macro:n_lib.h:246:_UnlockI2C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this macro. diff --git a/source-research/artifacts/macros/n_lib_h__L247__I2CAddress.md b/source-research/artifacts/macros/n_lib_h__L247__I2CAddress.md new file mode 100644 index 00000000..920490f4 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L247__I2CAddress.md @@ -0,0 +1,59 @@ +# `_I2CAddress` + +## Status + +Final. Macro expansion target, behavior, direct call sites, and focused tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:247` +- Declaration/interface: internal macro in `n_lib.h:247` +- Public/exported names: none; target function `NoteI2CAddress` is public +- Macro aliases/wrappers: `_I2CAddress` expands to `NoteI2CAddress` +- Signature/API shape: `_I2CAddress()` macro with no arguments returning `uint32_t` +- Visibility: internal transport macro +- Ownership/lifetime role: no ownership; aliases effective I2C address accessor + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:969:NoteI2CAddress` (expands_to, verified) +- External/system dependencies: none +- Data/type/global dependencies: target reads `i2cAddress` +- Artifact coverage: generated artifact exists + +## Behavior + +Readability macro for `NoteI2CAddress()`. It returns the target's effective I2C address, using the default address when stored address is zero. + +## Important Boundaries + +- Preconditions and assumptions: address state is configured by I2C setters +- Error/null/empty behavior: zero address maps to default through target function +- Ownership and lifetime: none +- Concurrency/global state: inherits target global state behavior +- Portability/platform constraints: default address is SDK constant +- Performance shape: preprocessor alias to function call +- Security or parsing constraints: no parsing + +## Direct Call Sites + +Verified direct production callers in `n_i2c.c`: query, transaction reset/transmit/receive/reset retry/chunk transmit paths; and in `n_request.c` ping-drain receive calls. + +## Role In Callers + +Effective address primitive for all I2C platform hook calls. + +## Tests Observed + +Focused evidence comes through `NoteI2CAddress_test.cpp` and I2C reset tests that assert hook calls receive `NoteI2CAddress()`. + +## Graph Links + +- Graph node id: `macro:n_lib.h:247:_I2CAddress` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this macro. diff --git a/source-research/artifacts/macros/n_lib_h__L248__I2CMax.md b/source-research/artifacts/macros/n_lib_h__L248__I2CMax.md new file mode 100644 index 00000000..e1ccd978 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L248__I2CMax.md @@ -0,0 +1,64 @@ +# `_I2CMax` + +## Status + +Finalized. Source-inspected I2C MTU macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:248` +- Declaration/interface: internal macro alias in `n_lib.h` +- Signature/API shape: `_I2CMax` +- Visibility: internal macro +- Public/exported names: none +- Expands to: `NoteI2CMax` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:994:NoteI2CMax` finalized +- External/system dependencies: none +- Data/type/global dependencies: inherits `NoteI2CMax` access to `i2cMax` +- Artifact coverage: macro definition, target function, direct callers, and tests inspected + +## Behavior + +Expands directly to `NoteI2CMax`, preserving all MTU defaulting and clamping behavior. + +## Important Boundaries + +- Preconditions and assumptions: none beyond target function state. +- Error/null/empty behavior: unset MTU resolves to default through target. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows `NoteI2CMax` global-state behavior. +- Portability/platform constraints: follows target compile-time MTU macros. +- Performance shape: O(1). +- Security or parsing constraints: none. + +## Direct Call Sites + +Exact production callers: + +- `n_i2c.c:252` `_i2cNoteReset` receive chunk cap. +- `n_i2c.c:375` `_i2cChunkedReceive` initial read cap. +- `n_i2c.c:400` `_i2cChunkedReceive` follow-up read cap. +- `n_i2c.c:487` `_i2cChunkedTransmit` transmit chunk cap. + +## Role In Callers + +Keeps I2C transport code readable while routing MTU lookup through the public hook/helper function. + +## Tests Observed + +`NoteI2CMax_test.cpp` covers the target behavior, and `_i2cNoteReset_test.cpp` covers reset caller chunk caps. + +## Graph Links + +- Graph node id: `macro:n_lib.h:248:_I2CMax` +- Structured graph: `inventory/dependency-graph.json` +- Verified expands-to target: `NoteI2CMax` + +## Evidence Gaps + +No unresolved source gaps for this alias. diff --git a/source-research/artifacts/macros/n_lib_h__L256__Debug.md b/source-research/artifacts/macros/n_lib_h__L256__Debug.md new file mode 100644 index 00000000..1eeda84c --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L256__Debug.md @@ -0,0 +1,55 @@ +# `_Debug` + +## Status + +Finalized. Source-inspected debug macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:256` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_Debug(x)` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:474:NoteDebug` finalized when debugging is enabled +- External/system dependencies: none +- Data/type/global dependencies: `NOTE_NODEBUG` + +## Behavior + +Expands to nothing under `NOTE_NODEBUG`; otherwise expands to `NoteDebug(x)`. + +## Important Boundaries + +- Preconditions and assumptions: macro argument behavior depends on compile mode. +- Error/null/empty behavior: nodebug builds suppress output completely. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows `NoteDebug`. +- Performance shape: O(1) plus debug hook cost when enabled. +- Portability/platform constraints: compile-time debug mode changes expansion. + +## Direct Call Sites + +Exact source search found debug helper functions and debug/log paths use this macro. + +## Role In Callers + +`NoteDebugWithLevel` uses `_Debug` after runtime log-level filtering. + +## Tests Observed + +`NoteDebug_test.cpp` covers debug output behavior in enabled and disabled configurations. + +## Graph Links + +- Graph node id: `macro:n_lib.h:256:_Debug` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L257__Debugln.md b/source-research/artifacts/macros/n_lib_h__L257__Debugln.md new file mode 100644 index 00000000..2bd798a4 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L257__Debugln.md @@ -0,0 +1,59 @@ +# `_Debugln` + +## Status + +Final. Macro definitions, public target, direct call sites, and focused debug tests have been inspected. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:257` +- Declaration/interface: public debug function `NoteDebugln` is declared at `note.h:936` +- Public/exported names: internal macro `_Debugln` +- Macro aliases/wrappers: expands to nothing under `NOTE_NODEBUG`; otherwise expands to `NoteDebugln(x)` +- Signature/API shape: `_Debugln(x)` expression-like macro with one message argument +- Visibility: internal helper macro in `n_lib.h` +- Ownership/lifetime role: forwards/omits debug output; no ownership + +## Dependency Status + +- Project-local dependencies: +- `function:n_hooks.c:464:NoteDebugln` through macro expansion when `NOTE_NODEBUG` is not defined (source target declared in `note.h:936`) +- External/system dependencies: configured debug output hook behind `NoteDebugln` +- Data/type/global dependencies: depends on compile-time `NOTE_NODEBUG` +- Artifact coverage: generated artifact exists + +## Behavior + +Internal debug-line macro. With `NOTE_NODEBUG` defined, `_Debugln(x)` expands to an empty statement-like macro and produces no output. Otherwise it forwards to `NoteDebugln(x)`, which appends a newline through the configured debug output path. + +## Important Boundaries + +- Preconditions and assumptions: caller supplies a valid debug string when debug is enabled +- Error/null/empty behavior: macro itself performs no validation +- Ownership and lifetime: does not allocate or retain the message +- Concurrency/global state: output behavior is determined by global debug hook/log configuration in `NoteDebugln` +- Portability/platform constraints: compile-time no-debug builds erase this call +- Performance shape: zero runtime cost under `NOTE_NODEBUG`; otherwise a direct debug call +- Security or parsing constraints: no parsing; debug output can expose caller-provided strings + +## Direct Call Sites + +Verified direct production caller: `n_helpers.c:2372` in `NoteDebugSyncStatus`. + +## Role In Callers + +Terminates sync-status debug output with the note text and newline. + +## Tests Observed + +`test/src/NoteDebug_test.cpp` covers `NoteDebugln("test")`, expecting `test\r\n` when debug is enabled and no output under `NOTE_NODEBUG`. + +## Graph Links + +- Graph node id: `macro:n_lib.h:257:_Debugln` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +The macro expansion target is tested through `NoteDebugln`; `_Debugln` itself is not separately faked in focused tests. diff --git a/source-research/artifacts/macros/n_lib_h__L258__DebugIntln.md b/source-research/artifacts/macros/n_lib_h__L258__DebugIntln.md new file mode 100644 index 00000000..50ecf6e0 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L258__DebugIntln.md @@ -0,0 +1,55 @@ +# `_DebugIntln` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:258` +- Declaration/interface: internal debug wrapper macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: expands to `NoteDebugIntln(x, y)` when debug is enabled; the `NOTE_NODEBUG` branch is a no-op. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: Alias/wrapper dependency on `NoteDebugIntln` in the debug-enabled branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides a readability wrapper for integer debug-line logging. In normal debug-enabled builds it delegates to `NoteDebugIntln`; under `NOTE_NODEBUG` the alternate branch compiles away its arguments. + +## Important Boundaries + +- Compile-time debug branch. +- No production source call sites currently invoke `_DebugIntln`; callers use other debug wrappers or public `NoteDebugIntln`. +- The public function itself checks for null message before printing the number and newline. + +## Direct Call Sites + +Definition is in `n_lib.h:258`; exact source search found no production `_DebugIntln(...)` call sites. + +## Role In Callers + +Available internal shorthand for integer debug output without changing public debug semantics. + +## Tests Observed + +Focused `NoteDebug_test.cpp` covers the public `NoteDebugIntln` behavior for null and non-null message prefixes. + +## Graph Links + +- Graph node id: `macro:n_lib.h:258:_DebugIntln` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `NoteDebugIntln`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L259__DebugWithLevel.md b/source-research/artifacts/macros/n_lib_h__L259__DebugWithLevel.md new file mode 100644 index 00000000..0d5d3eb8 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L259__DebugWithLevel.md @@ -0,0 +1,55 @@ +# `_DebugWithLevel` + +## Status + +Finalized. Source-inspected log-level debug macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:259` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_DebugWithLevel(x, y)` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:485:NoteDebugWithLevel` finalized when debugging is enabled +- External/system dependencies: none +- Data/type/global dependencies: `NOTE_NODEBUG` + +## Behavior + +Expands to nothing under `NOTE_NODEBUG`; otherwise expands to `NoteDebugWithLevel(x, y)`. + +## Important Boundaries + +- Preconditions and assumptions: macro argument behavior depends on compile mode. +- Error/null/empty behavior: nodebug builds suppress output completely. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows debug target state. +- Performance shape: O(1) plus hook cost when enabled. +- Portability/platform constraints: compile-time debug mode changes expansion. + +## Direct Call Sites + +Exact source search found `_errDoc` and parse/transaction error reporting use this alias. + +## Role In Callers + +`_noteTransactionShouldLock` uses this alias to log invalid response JSON in non-low-memory builds. + +## Tests Observed + +`NoteDebug_test.cpp` and `_errDoc_test.cpp` cover debug output behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:259:_DebugWithLevel` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md b/source-research/artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md new file mode 100644 index 00000000..fd49710a --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md @@ -0,0 +1,55 @@ +# `_DebugWithLevelLn` + +## Status + +Finalized. Source-inspected line-terminated log-level debug macro alias. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:260` +- Declaration/interface: internal readability wrapper +- Signature/API shape: `_DebugWithLevelLn(x, y)` +- Visibility: internal macro +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:499:NoteDebugWithLevelLn` finalized when debugging is enabled +- External/system dependencies: none +- Data/type/global dependencies: `NOTE_NODEBUG` + +## Behavior + +Expands to nothing under `NOTE_NODEBUG`; otherwise expands to `NoteDebugWithLevelLn(x, y)`. + +## Important Boundaries + +- Preconditions and assumptions: macro argument behavior depends on compile mode. +- Error/null/empty behavior: nodebug builds suppress output completely. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows debug target state. +- Performance shape: O(1) plus hook cost when enabled. +- Portability/platform constraints: compile-time debug mode changes expansion. + +## Direct Call Sites + +Exact source search found `_errDoc` and logging macros use this alias. + +## Role In Callers + +`_errDoc` uses this alias to terminate its manually assembled error log line. + +## Tests Observed + +`NoteDebug_test.cpp` and `_errDoc_test.cpp` cover line output behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:260:_DebugWithLevelLn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L35__NOTE_C_STATIC.md b/source-research/artifacts/macros/n_lib_h__L35__NOTE_C_STATIC.md new file mode 100644 index 00000000..f835ec68 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L35__NOTE_C_STATIC.md @@ -0,0 +1,55 @@ +# `NOTE_C_STATIC` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:35` +- Declaration/interface: internal portability/testability macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: expands to `static` unless `NOTE_C_TEST` is defined; test builds include `test/include/test_static.h` and leave it empty. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: translation units including `n_lib.h`; CMake test target defines `NOTE_C_TEST`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Default builds make internal helpers and globals translation-unit local with `static`. Test builds define `NOTE_C_TEST`, include `test/include/test_static.h`, and expose those helpers for focused unit tests and fakes. + +## Important Boundaries + +- Compile-time only; no runtime branch. +- Keeps portable SDK internals private by default while allowing test builds to mock or inspect normally static symbols. +- `NOTE_C_TEST` is set by the test target build configuration, not by production code. + +## Direct Call Sites + +`n_lib.h:31-35` defines the branch. `CMakeLists.txt:202-205` adds `NOTE_C_TEST` to the test target, and `test/include/test_static.h:7-10` documents/redefines the empty test behavior. Numerous internal functions and globals use `NOTE_C_STATIC` in source files. + +## Role In Callers + +Controls linkage of internal helpers such as CRC functions, hook state, I/O helpers, and cJSON internals. It does not change the helper bodies. + +## Tests Observed + +Focused test infrastructure depends on the empty test branch to reach normally static functions such as `_crcAdd` and `_crcError`. + +## Graph Links + +- Graph node id: `macro:n_lib.h:35:NOTE_C_STATIC` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md b/source-research/artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md new file mode 100644 index 00000000..15f5ad3a --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md @@ -0,0 +1,55 @@ +# `CARD_INTER_TRANSACTION_TIMEOUT_SEC` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:44` +- Declaration/interface: shared internal timeout macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: expands to `(cardTransactionTimeoutOverrideSecs == 0 ? 30 : cardTransactionTimeoutOverrideSecs)`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: all translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Selects the default inter-transaction timeout in seconds. A zero override yields 30 seconds; `NoteSetRequestTimeout` writes the global override and returns the previous effective value. + +## Important Boundaries + +- Depends on global `cardTransactionTimeoutOverrideSecs` in `n_request.c`. +- Runtime mutable through `NoteSetRequestTimeout`. +- Converted to milliseconds by callers where needed. + +## Direct Call Sites + +Used by `_noteTransaction_calculateTimeoutMs`, `NoteSetRequestTimeout`, `NoteRequestResponseJSON`, and `_noteTransactionShouldLock` in `n_request.c`. + +## Role In Callers + +Establishes the lock/transaction timeout budget and the default request timeout before per-request `milliseconds` or `seconds` fields refine it. + +## Tests Observed + +Focused tests cover `NoteSetRequestTimeout` and `_noteTransaction_calculateTimeoutMs` behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from the four `n_request.c` call sites. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md b/source-research/artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md new file mode 100644 index 00000000..12b9355b --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md @@ -0,0 +1,55 @@ +# `CARD_INTRA_TRANSACTION_TIMEOUT_SEC` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:45` +- Declaration/interface: shared internal timeout macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `1` second. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I/O and helper translation units including `n_lib.h`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Sets the short intra-transaction receive timeout after a transaction has begun or after the first bytes arrive. + +## Important Boundaries + +- Compile-time constant. +- Callers multiply by 1000 for millisecond hook APIs. +- Distinct from the longer inter-transaction request timeout. + +## Direct Call Sites + +Used by `NoteBinaryStoreReceive`, `_i2cNoteTransaction`, `_i2cChunkedReceive`, `_serialNoteTransaction`, and `_serialChunkedReceive`. + +## Role In Callers + +Bounds packet completion waits once a receive operation is in progress. + +## Tests Observed + +Focused I/O and helper tests exercise receive timeout paths through these functions. + +## Graph Links + +- Graph node id: `macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from binary, I2C, and serial receive call sites. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md b/source-research/artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md new file mode 100644 index 00000000..2126b786 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md @@ -0,0 +1,55 @@ +# `CARD_REQUEST_I2C_SEGMENT_MAX_LEN` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:56` +- Declaration/interface: I2C request segmentation macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `250` bytes. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I2C translation unit. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Caps each I2C transmit segment so large requests are split before being sent to the Notecard. + +## Important Boundaries + +- Compile-time constant. +- Applied only to I2C transmit segmentation. +- Final segment may be shorter than the cap. + +## Direct Call Sites + +Used in `_i2cChunkedTransmit` to reduce `sentInSegment` when the remaining chunk exceeds the cap. + +## Role In Callers + +Prevents overwhelming the Notecard I2C interrupt/request buffer. + +## Tests Observed + +Focused I2C chunked transmit tests cover segmentation behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:56:CARD_REQUEST_I2C_SEGMENT_MAX_LEN` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_i2cChunkedTransmit`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md b/source-research/artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md new file mode 100644 index 00000000..aab3f3c5 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md @@ -0,0 +1,55 @@ +# `CARD_REQUEST_I2C_SEGMENT_DELAY_MS` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:62` +- Declaration/interface: I2C segment pacing macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `250` milliseconds. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I2C translation unit. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Adds pacing around I2C reset and between I2C request segments when delay mode is active. + +## Important Boundaries + +- Compile-time constant. +- Used for reset pacing and transmit back-pressure. +- Skipped in transmit when the segment loop is complete or delay is disabled. + +## Direct Call Sites + +Used by `_i2cNoteReset` before reset/receive retry paths and by `_i2cChunkedTransmit` between I2C segments. + +## Role In Callers + +Protects the Notecard from host-side I2C traffic arriving faster than it can process. + +## Tests Observed + +Focused I2C reset/chunking tests exercise delayed transmit paths. + +## Graph Links + +- Graph node id: `macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_i2cNoteReset` and `_i2cChunkedTransmit`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md b/source-research/artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md new file mode 100644 index 00000000..34c28df7 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md @@ -0,0 +1,55 @@ +# `CARD_REQUEST_I2C_CHUNK_DELAY_MS` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:68` +- Declaration/interface: I2C chunk pacing macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `20` milliseconds. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I2C translation unit. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Adds a shorter delay between low-level I2C chunks during reset drain and chunked transmit loops. + +## Important Boundaries + +- Compile-time constant. +- Distinct from the larger segment delay. +- Used when iterating chunks, not for global transaction budget. + +## Direct Call Sites + +Used by `_i2cNoteReset` while draining reset responses and by `_i2cChunkedTransmit` after each chunk. + +## Role In Callers + +Smooths repeated I2C chunk operations without imposing the full segment delay. + +## Tests Observed + +Focused I2C reset/chunking tests exercise chunk loops. + +## Graph Links + +- Graph node id: `macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_i2cNoteReset` and `_i2cChunkedTransmit`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md b/source-research/artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md new file mode 100644 index 00000000..d2e19320 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md @@ -0,0 +1,55 @@ +# `CARD_REQUEST_I2C_NACK_WAIT_MS` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:74` +- Declaration/interface: I2C NACK wait macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `1000` milliseconds. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I2C reset path. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Controls how long `_i2cNoteReset` waits after an I2C transmit NACK before retrying sync. + +## Important Boundaries + +- Compile-time constant. +- Only used on the I2C reset NACK path. +- Does not affect normal transmit segmentation. + +## Direct Call Sites + +Used by `_i2cNoteReset` after `_I2CTransmit` returns an error while sending the reset newline. + +## Role In Callers + +Relieves bus/device stress before retrying a Notecard sync attempt. + +## Tests Observed + +Focused I2C reset tests cover reset retry behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:74:CARD_REQUEST_I2C_NACK_WAIT_MS` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_i2cNoteReset`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md b/source-research/artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md new file mode 100644 index 00000000..f4bffeed --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md @@ -0,0 +1,55 @@ +# `CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:80` +- Declaration/interface: Serial request segmentation macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `250` bytes. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: serial translation unit. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Caps serial transmit segments, with a compile-time guard that rejects impossible platforms where the cap exceeds `SIZE_MAX`. + +## Important Boundaries + +- Compile-time constant. +- Applies only to serial transmit segmentation. +- `_serialChunkedTransmit` casts the capped segment length to `size_t`. + +## Direct Call Sites + +Used by `_serialChunkedTransmit` in a preprocessor size guard and in the segment length selection branch. + +## Role In Callers + +Prevents oversized serial writes and keeps segment sizing portable. + +## Tests Observed + +Focused serial transaction tests cover segmented transmit behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:80:CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_serialChunkedTransmit`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md b/source-research/artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md new file mode 100644 index 00000000..f179a211 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md @@ -0,0 +1,55 @@ +# `CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:86` +- Declaration/interface: Serial segment pacing macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `250` milliseconds. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: serial translation unit. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Adds pacing before serial reset and between serial request segments when delay mode is active. + +## Important Boundaries + +- Compile-time constant. +- Skipped at the end of the final transmit segment. +- Separate from reset drain duration. + +## Direct Call Sites + +Used by `_serialNoteReset` before reset and by `_serialChunkedTransmit` between serial segments. + +## Role In Callers + +Protects the Notecard serial input path from host writes arriving too quickly. + +## Tests Observed + +Focused serial reset/transaction tests exercise delayed transmit paths. + +## Graph Links + +- Graph node id: `macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_serialNoteReset` and `_serialChunkedTransmit`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md b/source-research/artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md new file mode 100644 index 00000000..bbeff412 --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md @@ -0,0 +1,55 @@ +# `CARD_RESET_DRAIN_MS` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:92` +- Declaration/interface: reset drain duration macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `500` milliseconds. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: I2C and serial reset paths. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Controls how long reset logic drains incoming bytes while deciding whether the Notecard is synchronized. + +## Important Boundaries + +- Compile-time constant. +- Used by both I2C and serial reset loops. +- Serial reset also waits this duration before resetting again after bad/no data. + +## Direct Call Sites + +Used by `_i2cNoteReset` and `_serialNoteReset` drain loops. + +## Role In Callers + +Defines the observation window for reset synchronization. + +## Tests Observed + +Focused I2C and serial reset tests exercise reset drain behavior. + +## Graph Links + +- Graph node id: `macro:n_lib.h:92:CARD_RESET_DRAIN_MS` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_i2cNoteReset` and `_serialNoteReset`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md b/source-research/artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md new file mode 100644 index 00000000..2824ebbb --- /dev/null +++ b/source-research/artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md @@ -0,0 +1,55 @@ +# `CARD_REQUEST_RETRIES_ALLOWED` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_lib.h:98` +- Declaration/interface: request retry macro in `n_lib.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `5` retries. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: request transaction path. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Sets the retry allowance for `_noteTransactionShouldLock`; the loop condition is `<=`, so it permits the initial attempt plus five retry iterations. + +## Important Boundaries + +- Compile-time constant. +- Heartbeat responses decrement the loop counter and do not consume this retry budget. +- Fatal request errors break without exhausting retries. + +## Direct Call Sites + +Used by `_noteTransactionShouldLock` as the retry loop upper bound. + +## Role In Callers + +Bounds automatic retries for I/O errors, missing responses, corrupt responses, and CRC errors. + +## Tests Observed + +Focused transaction retry tests exercise retry and heartbeat handling. + +## Graph Links + +- Graph node id: `macro:n_lib.h:98:CARD_REQUEST_RETRIES_ALLOWED` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_noteTransactionShouldLock`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_md5_c__L187__F1.md b/source-research/artifacts/macros/n_md5_c__L187__F1.md new file mode 100644 index 00000000..3cc1b7a7 --- /dev/null +++ b/source-research/artifacts/macros/n_md5_c__L187__F1.md @@ -0,0 +1,53 @@ +# `F1` + +## Status + +Finalized. Source-inspected MD5 round macro. + +## Identity + +- Kind: macro +- Definition: `n_md5.c:187` +- Signature/API shape: `#define F1(x, y, z) (z ^ (x & (y ^ z)))` +- Visibility: local to `n_md5.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive bitwise operations +- Data/type/global dependencies: none + +## Behavior + +Computes the optimized MD5 F function for one round expression using bitwise XOR, AND, and complement-equivalent algebra through `z ^ (x & (y ^ z))`. + +## Important Boundaries + +- Preconditions and assumptions: macro arguments may be evaluated more than once by expansion contexts; callers pass local integer variables. +- Error/null/empty behavior: not applicable. +- Ownership and lifetime: no memory ownership. +- Concurrency/global state: no state. +- Performance shape: inline macro expression. + +## Direct Call Sites + +Exact source search `rg -n "\bF1\b" n_md5.c` found the definition at `n_md5.c:187`, `F2` delegating to `F1` at `n_md5.c:188`, and first-round `MD5STEP(F1, ...)` uses at `n_md5.c:216`-`n_md5.c:231`. + +## Role In Callers + +`NoteMD5Transform` passes `F1` as the function-like macro argument for the first 16 `MD5STEP` invocations. `F2` also expands through `F1(z, x, y)`. + +## Tests Observed + +None. Macro behavior is covered only through higher-level MD5 callers in this research slice. + +## Graph Links + +- Graph node id: `macro:n_md5.c:187:F1` +- Structured graph: `inventory/dependency-graph.json` +- Verified macro-use edges from `NoteMD5Transform` and `MD5STEP` were repaired from source inspection. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_md5_c__L188__F2.md b/source-research/artifacts/macros/n_md5_c__L188__F2.md new file mode 100644 index 00000000..bdf80fb5 --- /dev/null +++ b/source-research/artifacts/macros/n_md5_c__L188__F2.md @@ -0,0 +1,53 @@ +# `F2` + +## Status + +Finalized. Source-inspected MD5 round macro. + +## Identity + +- Kind: macro +- Definition: `n_md5.c:188` +- Signature/API shape: `#define F2(x, y, z) F1(z, x, y)` +- Visibility: local to `n_md5.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: `macro:n_md5.c:187:F1` by expansion +- External/system dependencies: none beyond the expanded `F1` expression +- Data/type/global dependencies: none + +## Behavior + +Defines the MD5 G/F2 round function by reusing `F1` with rotated arguments: `F1(z, x, y)`. + +## Important Boundaries + +- Preconditions and assumptions: function-like macro; argument evaluation follows macro expansion. +- Error/null/empty behavior: not applicable. +- Ownership and lifetime: no memory ownership. +- Concurrency/global state: no state. +- Performance shape: inline macro expression. + +## Direct Call Sites + +Exact source search `rg -n "\bF2\b" n_md5.c` found the definition at `n_md5.c:188` and second-round `MD5STEP(F2, ...)` uses at `n_md5.c:233`-`n_md5.c:248`. + +## Role In Callers + +`NoteMD5Transform` passes `F2` as the function-like macro argument for the second 16 `MD5STEP` invocations. + +## Tests Observed + +None. Macro behavior is covered only through higher-level MD5 callers in this research slice. + +## Graph Links + +- Graph node id: `macro:n_md5.c:188:F2` +- Structured graph: `inventory/dependency-graph.json` +- Verified macro-use edges from `NoteMD5Transform` and `MD5STEP` were repaired from source inspection. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_md5_c__L189__F3.md b/source-research/artifacts/macros/n_md5_c__L189__F3.md new file mode 100644 index 00000000..827c16e1 --- /dev/null +++ b/source-research/artifacts/macros/n_md5_c__L189__F3.md @@ -0,0 +1,53 @@ +# `F3` + +## Status + +Finalized. Source-inspected MD5 round macro. + +## Identity + +- Kind: macro +- Definition: `n_md5.c:189` +- Signature/API shape: `#define F3(x, y, z) (x ^ y ^ z)` +- Visibility: local to `n_md5.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive bitwise XOR +- Data/type/global dependencies: none + +## Behavior + +Computes the MD5 H/F3 round expression by XOR-ing the three input words. + +## Important Boundaries + +- Preconditions and assumptions: function-like macro; arguments are integer expressions. +- Error/null/empty behavior: not applicable. +- Ownership and lifetime: no memory ownership. +- Concurrency/global state: no state. +- Performance shape: inline macro expression. + +## Direct Call Sites + +Exact source search `rg -n "\bF3\b" n_md5.c` found the definition at `n_md5.c:189` and third-round `MD5STEP(F3, ...)` uses at `n_md5.c:250`-`n_md5.c:265`. + +## Role In Callers + +`NoteMD5Transform` passes `F3` as the function-like macro argument for the third 16 `MD5STEP` invocations. + +## Tests Observed + +None. Macro behavior is covered only through higher-level MD5 callers in this research slice. + +## Graph Links + +- Graph node id: `macro:n_md5.c:189:F3` +- Structured graph: `inventory/dependency-graph.json` +- Verified macro-use edges from `NoteMD5Transform` and `MD5STEP` were repaired from source inspection. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_md5_c__L190__F4.md b/source-research/artifacts/macros/n_md5_c__L190__F4.md new file mode 100644 index 00000000..85682631 --- /dev/null +++ b/source-research/artifacts/macros/n_md5_c__L190__F4.md @@ -0,0 +1,53 @@ +# `F4` + +## Status + +Finalized. Source-inspected MD5 round macro. + +## Identity + +- Kind: macro +- Definition: `n_md5.c:190` +- Signature/API shape: `#define F4(x, y, z) (y ^ (x | ~z))` +- Visibility: local to `n_md5.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: primitive bitwise OR, XOR, and complement +- Data/type/global dependencies: none + +## Behavior + +Computes the MD5 I/F4 round expression using `y ^ (x | ~z)`. + +## Important Boundaries + +- Preconditions and assumptions: function-like macro; arguments are integer expressions. +- Error/null/empty behavior: not applicable. +- Ownership and lifetime: no memory ownership. +- Concurrency/global state: no state. +- Performance shape: inline macro expression. + +## Direct Call Sites + +Exact source search `rg -n "\bF4\b" n_md5.c` found the definition at `n_md5.c:190` and fourth-round `MD5STEP(F4, ...)` uses at `n_md5.c:267`-`n_md5.c:282`. + +## Role In Callers + +`NoteMD5Transform` passes `F4` as the function-like macro argument for the fourth 16 `MD5STEP` invocations. + +## Tests Observed + +None. Macro behavior is covered only through higher-level MD5 callers in this research slice. + +## Graph Links + +- Graph node id: `macro:n_md5.c:190:F4` +- Structured graph: `inventory/dependency-graph.json` +- Verified macro-use edges from `NoteMD5Transform` and `MD5STEP` were repaired from source inspection. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_md5_c__L193__MD5STEP.md b/source-research/artifacts/macros/n_md5_c__L193__MD5STEP.md new file mode 100644 index 00000000..ba20fb5e --- /dev/null +++ b/source-research/artifacts/macros/n_md5_c__L193__MD5STEP.md @@ -0,0 +1,60 @@ +# `MD5STEP` + +## Status + +Finalized. Source-inspected MD5 round-step macro. + +## Identity + +- Kind: macro +- Definition: `n_md5.c:193` +- Signature/API shape: `#define MD5STEP(f, w, x, y, z, data, s) ( w += f(x, y, z) + data, w &= 0xffffffff, w = w<>(32-s), w += x )` +- Visibility: local to `n_md5.c` +- Public/exported names: none + +## Dependency Status + +- Project-local dependencies: function-like macro argument `f`, passed as `F1`, `F2`, `F3`, or `F4` from `NoteMD5Transform` +- External/system dependencies: primitive integer addition, masking, shifts, and bitwise OR +- Data/type/global dependencies: none +- Graph repair: added verified source-inspected macro-use edges from `NoteMD5Transform` to `F1`-`F4` and parameterized possible macro edges from `MD5STEP` to `F1`-`F4`. + +## Behavior + +Performs one MD5 round update on working word `w`: it adds the selected round function result and message/constant data, masks the accumulator to 32 bits, rotates left by `s`, then adds `x`. + +## Important Boundaries + +- Preconditions and assumptions: macro mutates `w`; callers must pass lvalue working words and integer expressions valid for the MD5 round. +- Error/null/empty behavior: not applicable. +- Ownership and lifetime: no memory ownership. +- Concurrency/global state: no state. +- Portability/platform constraints: explicitly masks `w` to 32 bits before rotation, matching the file's portability strategy for `unsigned long`. +- Performance shape: inline macro expression; no loops or allocation. + +## Direct Call Sites + +Exact source search `rg -n "\bMD5STEP\b" n_md5.c` found the macro definition at `n_md5.c:193` and 64 invocations in `NoteMD5Transform`: + +- `n_md5.c:216`-`n_md5.c:231` use `F1` +- `n_md5.c:233`-`n_md5.c:248` use `F2` +- `n_md5.c:250`-`n_md5.c:265` use `F3` +- `n_md5.c:267`-`n_md5.c:282` use `F4` + +## Role In Callers + +`NoteMD5Transform` is the only production source caller. The macro encodes each of the 64 MD5 round operations in that transform. + +## Tests Observed + +None. Macro behavior is covered only through higher-level MD5 callers in this research slice. + +## Graph Links + +- Graph node id: `macro:n_md5.c:193:MD5STEP` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming edge: `function:n_md5.c:201:NoteMD5Transform` -> `macro:n_md5.c:193:MD5STEP` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md b/source-research/artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md new file mode 100644 index 00000000..97beae41 --- /dev/null +++ b/source-research/artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md @@ -0,0 +1,55 @@ +# `CRC_FIELD_LENGTH` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_request.c:31` +- Declaration/interface: translation-unit-local CRC macro in `n_request.c` under `!NOTE_C_LOW_MEM` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `22`, matching `,"crc":"SSSS:CCCCCCCC"`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: CRC helpers only when low-memory mode is disabled. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the number of bytes added by the CRC field and the number of bytes stripped/recognized from the response tail. + +## Important Boundaries + +- Disabled by `NOTE_C_LOW_MEM`. +- `_crcAdd` allocates `jsonLen + CRC_FIELD_LENGTH + 1`. +- `_crcError` uses the same length to reject too-short responses and locate the CRC tail. + +## Direct Call Sites + +Used by `_crcAdd` and `_crcError` in `n_request.c`. + +## Role In Callers + +Keeps CRC append and CRC validation offset math consistent. + +## Tests Observed + +Focused `_crcAdd_test.cpp` and `_crcError_test.cpp` cover valid, missing, and mismatched CRC behavior. + +## Graph Links + +- Graph node id: `macro:n_request.c:31:CRC_FIELD_LENGTH` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to `_crcAdd` and `_crcError`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md b/source-research/artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md new file mode 100644 index 00000000..2dd622c8 --- /dev/null +++ b/source-research/artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md @@ -0,0 +1,54 @@ +# `CRC_FIELD_NAME_OFFSET` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_request.c:32` +- Declaration/interface: translation-unit-local CRC macro in `n_request.c` under `!NOTE_C_LOW_MEM` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal `1`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: CRC response validation helper. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Offsets CRC field matching past the separator character at the computed response-tail location. + +## Important Boundaries + +- Disabled by `NOTE_C_LOW_MEM`. +- Meaningful only together with `CRC_FIELD_LENGTH` and `CRC_FIELD_NAME_TEST`. + +## Direct Call Sites + +Used by `_crcError` in the `memcmp` test and pointer to sequence/CRC payload. + +## Role In Callers + +Keeps CRC field-name matching aligned after the response object separator. + +## Tests Observed + +Focused `_crcError_test.cpp` covers valid and invalid CRC field recognition. + +## Graph Links + +- Graph node id: `macro:n_request.c:32:CRC_FIELD_NAME_OFFSET` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_crcError`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md b/source-research/artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md new file mode 100644 index 00000000..5a0ff686 --- /dev/null +++ b/source-research/artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md @@ -0,0 +1,55 @@ +# `CRC_FIELD_NAME_TEST` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_request.c:33` +- Declaration/interface: translation-unit-local CRC macro in `n_request.c` under `!NOTE_C_LOW_MEM` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal string `"\"crc\":\""`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: CRC response validation helper. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the exact CRC field prefix `_crcError` expects at the response tail. + +## Important Boundaries + +- Disabled by `NOTE_C_LOW_MEM`. +- Compared with `memcmp` using `sizeof(CRC_FIELD_NAME_TEST) - 1`. +- Only tail-position CRC fields count as protocol CRC metadata. + +## Direct Call Sites + +Used by `_crcError` for CRC tail recognition and payload pointer arithmetic. + +## Role In Callers + +Separates protocol CRC metadata from arbitrary JSON content. + +## Tests Observed + +Focused `_crcError_test.cpp` covers CRC present, absent, and mismatched cases. + +## Graph Links + +- Graph node id: `macro:n_request.c:33:CRC_FIELD_NAME_TEST` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_crcError`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md b/source-research/artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md new file mode 100644 index 00000000..dacab586 --- /dev/null +++ b/source-research/artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md @@ -0,0 +1,54 @@ +# `ERR_FIELD_NAME_TEST` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_request.c:34` +- Declaration/interface: translation-unit-local CRC macro in `n_request.c` under `!NOTE_C_LOW_MEM` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal string `"\"err\":\""`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: CRC response validation helper. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Lets `_crcError` bypass CRC checks when the response already contains a Notecard error field. + +## Important Boundaries + +- Disabled by `NOTE_C_LOW_MEM`. +- Uses substring search, so it is an early protocol-error bypass before CRC length/tail checks. + +## Direct Call Sites + +Used by `_crcError` before the minimum CRC-length and tail-matching logic. + +## Role In Callers + +Prevents Notecard error responses from being retried as CRC failures. + +## Tests Observed + +Focused `_crcError_test.cpp` covers error response handling with CRC support state. + +## Graph Links + +- Graph node id: `macro:n_request.c:34:ERR_FIELD_NAME_TEST` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `_crcError`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ua_c__L107__PLUS.md b/source-research/artifacts/macros/n_ua_c__L107__PLUS.md new file mode 100644 index 00000000..d0f26179 --- /dev/null +++ b/source-research/artifacts/macros/n_ua_c__L107__PLUS.md @@ -0,0 +1,55 @@ +# `PLUS` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_ua.c:107` +- Declaration/interface: translation-unit-local compiler-string macro inside `NoteUserAgent` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal string `" c++"` under `__cplusplus`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: `NoteUserAgent` compilation under C++. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Appends a C++ marker to the compiler name embedded in the user-agent JSON when the translation unit is compiled as C++. + +## Important Boundaries + +- Compile-time branch on `__cplusplus`. +- Undefined/redefined only inside `n_ua.c` before compiler-specific user-agent strings. +- Has no effect when user-agent support is disabled by low-memory configuration. + +## Direct Call Sites + +Used by `NoteUserAgent` in compiler string construction for IAR, clang, GCC, MSVC, STDC, and fallback branches. + +## Role In Callers + +Carries language-mode information into the diagnostic user-agent payload. + +## Tests Observed + +Focused `NoteUserAgent_test.cpp` checks compiler field content for the active test compiler; it does not separately force the C++ marker branch. + +## Graph Links + +- Graph node id: `macro:n_ua.c:107:PLUS` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `NoteUserAgent`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/n_ua_c__L109__PLUS.md b/source-research/artifacts/macros/n_ua_c__L109__PLUS.md new file mode 100644 index 00000000..6720cfdb --- /dev/null +++ b/source-research/artifacts/macros/n_ua_c__L109__PLUS.md @@ -0,0 +1,55 @@ +# `PLUS` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `n_ua.c:109` +- Declaration/interface: translation-unit-local compiler-string macro inside `NoteUserAgent` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: literal empty string under non-`__cplusplus` builds. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: `NoteUserAgent` compilation as C. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; this macro expands to a literal, alias, or compile-time branch. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Leaves the compiler name unmarked when the translation unit is compiled as C. + +## Important Boundaries + +- Compile-time branch opposite the C++ marker. +- Used in every compiler-specific compiler string branch. +- Has no effect when user-agent support is disabled by low-memory configuration. + +## Direct Call Sites + +Used by `NoteUserAgent` in compiler string construction for IAR, clang, GCC, MSVC, STDC, and fallback branches. + +## Role In Callers + +Keeps C user-agent compiler strings compact while sharing the same construction code as the C++ branch. + +## Tests Observed + +Focused `NoteUserAgent_test.cpp` checks compiler field content for the active test compiler. + +## Graph Links + +- Graph node id: `macro:n_ua.c:109:PLUS` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `NoteUserAgent`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md b/source-research/artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md new file mode 100644 index 00000000..779e1a57 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md @@ -0,0 +1,56 @@ +# `NOTE_C_LOG_INFO` + +## Status + +Finalized. Source-inspected info-level logging macro. + +## Identity + +- Kind: macro +- Definition: `note.h:1006` +- Declaration/interface: public logging macro unless overridden +- Signature/API shape: `NOTE_C_LOG_INFO(msg)` +- Visibility: public logging macro +- Public/exported names: `NOTE_C_LOG_INFO` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:485:NoteDebugWithLevel` finalized + - `function:n_hooks.c:499:NoteDebugWithLevelLn` finalized +- External/system dependencies: none +- Data/type/global dependencies: optional `NOTE_C_LOG_FILE_AND_LINE` + +## Behavior + +Emits optional file/line prefix, then writes `[INFO] ` and the message plus newline at `NOTE_C_LOG_LEVEL_INFO`. + +## Important Boundaries + +- Preconditions and assumptions: message pointer is forwarded to debug output. +- Error/null/empty behavior: runtime log level may drop the output. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows debug hook and log-level state. +- Performance shape: bounded macro expansion plus debug hook calls. +- Portability/platform constraints: file/line prefix depends on `NOTE_C_LOG_SHOW_FILE_AND_LINE`. + +## Direct Call Sites + +Exact source search found request and response transaction trace logging uses this macro. + +## Role In Callers + +`_noteTransactionShouldLock` uses info logs to trace outgoing request JSON and incoming response JSON when transaction display is not suppressed. + +## Tests Observed + +`NoteDebug_test.cpp` and transaction logging tests exercise log output indirectly. + +## Graph Links + +- Graph node id: `macro:note.h:1006:NOTE_C_LOG_INFO` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md b/source-research/artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md new file mode 100644 index 00000000..bbba64ac --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md @@ -0,0 +1,56 @@ +# `NOTE_C_LOG_DEBUG` + +## Status + +Finalized. Source-inspected normal debug-level logging macro. + +## Identity + +- Kind: macro +- Definition: `note.h:1014` +- Declaration/interface: public logging macro unless already defined +- Signature/API shape: `NOTE_C_LOG_DEBUG(msg)` +- Visibility: public logging macro +- Public/exported names: `NOTE_C_LOG_DEBUG` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:485:NoteDebugWithLevel` finalized + - `function:n_hooks.c:499:NoteDebugWithLevelLn` finalized +- External/system dependencies: none +- Data/type/global dependencies: optional `NOTE_C_LOG_FILE_AND_LINE` + +## Behavior + +Emits optional file/line prefix, then writes `[DEBUG] ` and the message plus newline at `NOTE_C_LOG_LEVEL_DEBUG`. This normal variant is not defined when the low-memory no-op variant has already defined `NOTE_C_LOG_DEBUG`. + +## Important Boundaries + +- Preconditions and assumptions: message pointer is forwarded to debug output. +- Error/null/empty behavior: default runtime log level drops debug output unless configured to DEBUG. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows debug hook and log-level state. +- Performance shape: bounded macro expansion plus debug hook calls. +- Portability/platform constraints: low-memory builds use the earlier no-op variant at `note.h:76`. + +## Direct Call Sites + +Exact source search found transaction, helper, and hook debug logging calls. + +## Role In Callers + +`_noteTransactionShouldLock` uses debug logs for user-agent insertion, reset, command success, fatal transaction failures, heartbeat status, and retry decisions. + +## Tests Observed + +`NoteDebug_test.cpp`, `_errDoc_test.cpp`, and transaction tests exercise debug logging behavior indirectly. + +## Graph Links + +- Graph node id: `macro:note.h:1014:NOTE_C_LOG_DEBUG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md b/source-research/artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md new file mode 100644 index 00000000..b44ce796 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md @@ -0,0 +1,55 @@ +# `NOTE_C_LOG_LEVEL_DEFAULT` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:1022` +- Declaration/interface: public header compile-time log level default macro in `note.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: expands to `NOTE_C_LOG_LEVEL_INFO`. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: public header consumers and `n_hooks.c`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: Macro alias dependency on `NOTE_C_LOG_LEVEL_INFO`. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the default maximum log level used when `NOTE_C_LOG_LEVEL` is not supplied at compile time. + +## Important Boundaries + +- Compile-time default. +- Can be overridden by defining `NOTE_C_LOG_LEVEL` before the guarded definition. +- Runtime log level can still be changed through `NoteSetLogLevel` when debug is enabled. + +## Direct Call Sites + +Used by the guarded `NOTE_C_LOG_LEVEL` definition in `note.h:1028`; focused tests also reset `noteLogLevel` to this macro. + +## Role In Callers + +Makes info-level logging the default ceiling for debug-level filtering. + +## Tests Observed + +Focused `NoteSetLogLevel_test.cpp` uses `NOTE_C_LOG_LEVEL_DEFAULT` and verifies runtime override behavior. + +## Graph Links + +- Graph node id: `macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `NOTE_C_LOG_LEVEL_INFO`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md b/source-research/artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md new file mode 100644 index 00000000..a8049285 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md @@ -0,0 +1,55 @@ +# `NOTE_C_LOG_LEVEL` + +## Status + +Finalized. Source-inspected definition, compile/config branch, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:1028` +- Declaration/interface: public header compile-time log level macro in `note.h` +- Public/exported names: not a public function; visible through included headers or local translation-unit preprocessing. +- Macro aliases/wrappers: expands to `NOTE_C_LOG_LEVEL_DEFAULT` when not already defined. +- Signature/API shape: preprocessor constant or wrapper macro +- Visibility: public header consumers and `n_hooks.c`. +- Ownership/lifetime role: no ownership; compile-time value only. + +## Dependency Status + +- Project-local dependencies: Guarded macro fallback dependency on `NOTE_C_LOG_LEVEL_DEFAULT`. +- External/system dependencies: none. +- Data/type/global dependencies: compile configuration and direct callers as listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the compile-time maximum log level used to initialize `noteLogLevel` in `n_hooks.c` when debug is enabled. + +## Important Boundaries + +- Compile-time override point via `#ifndef NOTE_C_LOG_LEVEL`. +- Runtime filtering compares message level against `noteLogLevel`; `NoteSetLogLevel` can change it after initialization. +- `NOTE_NODEBUG` compiles log operations to no-op behavior. + +## Direct Call Sites + +Used by `n_hooks.c:186` to initialize the static `noteLogLevel` global; `NoteDebugWithLevel` and `NoteDebugWithLevelLn` use that global for filtering. + +## Role In Callers + +Connects compile-time log configuration to runtime debug filtering. + +## Tests Observed + +Focused `NoteDebug_test.cpp` and `NoteSetLogLevel_test.cpp` cover default filtering and runtime level changes. + +## Graph Links + +- Graph node id: `macro:note.h:1028:NOTE_C_LOG_LEVEL` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `NOTE_C_LOG_LEVEL_DEFAULT`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md b/source-research/artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md new file mode 100644 index 00000000..c9de3103 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md @@ -0,0 +1,59 @@ +# `JTYPE_NOT_PRESENT` + +## Status + +Finalized. Source-inspected public JSON type-classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1400` +- Declaration/interface: public `JGetType`/`JGetItemType` return code +- Public/exported names: `JTYPE_NOT_PRESENT` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_NOT_PRESENT 0` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned by `JGetType` and `JGetItemType` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents absent or unclassifiable JSON content. `JGetType` returns it for null object or null field arguments, and `JGetItemType` returns it for null items or base types that do not match a handled `J.type`. + +## Important Boundaries + +- Preconditions and assumptions: callers treat this as a return code, not a `J.type` low-byte tag. +- Error/null/empty behavior: null input maps to this code. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison. +- Security or parsing constraints: no parsing; reflects helper classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetType`, `JGetItemType`, and the public header declaration comments. + +## Role In Callers + +Allows downstream callers to distinguish missing/unclassifiable fields from concrete JSON type categories. + +## Tests Observed + +`test/src/JGetType_test.cpp` covers null JSON, null field, missing field, and invalid type returning `JTYPE_NOT_PRESENT`. + +## Graph Links + +- Graph node id: `macro:note.h:1400:JTYPE_NOT_PRESENT` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetType` and `JGetItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md b/source-research/artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md new file mode 100644 index 00000000..ccc30d8a --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md @@ -0,0 +1,59 @@ +# `JTYPE_BOOL_TRUE` + +## Status + +Finalized. Source-inspected public JSON true classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1401` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_BOOL_TRUE` +- Macro aliases/wrappers: target of `JTYPE_BOOL` +- Signature/API shape: `#define JTYPE_BOOL_TRUE 1` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for `JTrue` items and coalesced by `JBaseItemType` +- Artifact coverage: source-inspected artifact with verified incoming constant-use and alias edges + +## Behavior + +Represents a JSON item classified as boolean true. `JGetItemType` returns it for low-byte type `JTrue`; `JBaseItemType` maps it to `JTYPE_BOOL`. `JTYPE_BOOL` is an alias for this value. + +## Important Boundaries + +- Preconditions and assumptions: this is a detailed helper type code, not the raw cJSON `JTrue` type tag. +- Error/null/empty behavior: not used for null items. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison. +- Security or parsing constraints: no parsing; reflects helper classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, `JTYPE_BOOL`, and focused tests. + +## Role In Callers + +Allows callers to distinguish true booleans from false booleans before optional base-type coalescing. + +## Tests Observed + +`JGetType_test.cpp` covers true classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_BOOL`. + +## Graph Links + +- Graph node id: `macro:note.h:1401:JTYPE_BOOL_TRUE` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType` and `JBaseItemType`, plus verified `JTYPE_BOOL` alias edge. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md b/source-research/artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md new file mode 100644 index 00000000..9dec86bb --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md @@ -0,0 +1,59 @@ +# `JTYPE_BOOL_FALSE` + +## Status + +Finalized. Source-inspected public JSON false classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1402` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_BOOL_FALSE` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_BOOL_FALSE 2` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for `JFalse` items; used by omit-empty object printing +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a JSON item classified as boolean false. `JGetItemType` returns it for low-byte type `JFalse`; `JBaseItemType` maps it to `JTYPE_BOOL`. `_last_non_omitted_object` and `_print_object` treat this code as omit-empty eligible. + +## Important Boundaries + +- Preconditions and assumptions: this is a detailed helper type code, not the raw cJSON `JFalse` type tag. +- Error/null/empty behavior: false values can be omitted only through print paths using the omit-empty option. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison. +- Security or parsing constraints: affects omission of fields in omit-empty printing. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, `_last_non_omitted_object`, `_print_object`, and focused tests. + +## Role In Callers + +Distinguishes false booleans from true booleans and marks false fields as omit-empty candidates. + +## Tests Observed + +`JGetType_test.cpp` covers false classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_BOOL`. + +## Graph Links + +- Graph node id: `macro:note.h:1402:JTYPE_BOOL_FALSE` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType`, `JBaseItemType`, `_last_non_omitted_object`, and `_print_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1403__JTYPE_BOOL.md b/source-research/artifacts/macros/note_h__L1403__JTYPE_BOOL.md new file mode 100644 index 00000000..22d57ed6 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1403__JTYPE_BOOL.md @@ -0,0 +1,60 @@ +# `JTYPE_BOOL` + +## Status + +Finalized. Source-inspected public JSON boolean base classification alias. + +## Identity + +- Kind: macro +- Definition: `note.h:1403` +- Declaration/interface: public base type return code +- Public/exported names: `JTYPE_BOOL` +- Macro aliases/wrappers: aliases `JTYPE_BOOL_TRUE` +- Signature/API shape: `#define JTYPE_BOOL JTYPE_BOOL_TRUE` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: + - `macro:note.h:1401:JTYPE_BOOL_TRUE` finalized +- External/system dependencies: none +- Data/type/global dependencies: returned by `JBaseItemType` +- Artifact coverage: source-inspected artifact with verified macro-alias and constant-use edges + +## Behavior + +Aliases the base boolean class to the true value's numeric code. `JBaseItemType` maps both `JTYPE_BOOL_TRUE` and `JTYPE_BOOL_FALSE` to this code. + +## Important Boundaries + +- Preconditions and assumptions: callers using detailed type codes must not assume `JTYPE_BOOL` distinguishes true from false. +- Error/null/empty behavior: not used for missing values. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: macro alias in public header. +- Performance shape: compile-time alias. +- Security or parsing constraints: no parsing; base-class coalescing only. + +## Direct Call Sites + +Exact source search found uses in `JBaseItemType` and focused tests. + +## Role In Callers + +Provides a common bool category for callers that do not care about true versus false. + +## Tests Observed + +`JBaseItemType_test.cpp` covers true/false coalescing and passthrough of `JTYPE_BOOL`. + +## Graph Links + +- Graph node id: `macro:note.h:1403:JTYPE_BOOL` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `JTYPE_BOOL_TRUE` and verified incoming `uses_constant` edge from `JBaseItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1404__JTYPE_NULL.md b/source-research/artifacts/macros/note_h__L1404__JTYPE_NULL.md new file mode 100644 index 00000000..dae3bc58 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1404__JTYPE_NULL.md @@ -0,0 +1,59 @@ +# `JTYPE_NULL` + +## Status + +Finalized. Source-inspected public JSON null classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1404` +- Declaration/interface: public `JGetItemType` return code +- Public/exported names: `JTYPE_NULL` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_NULL 3` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for `JNULL` items +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +Represents a JSON item classified as null. `JGetItemType` returns it for low-byte type `JNULL`; `JBaseItemType` does not transform it. + +## Important Boundaries + +- Preconditions and assumptions: this is a helper return code, not a null pointer. +- Error/null/empty behavior: absent items return `JTYPE_NOT_PRESENT`, not `JTYPE_NULL`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison. +- Security or parsing constraints: no parsing; reflects helper classification only. + +## Direct Call Sites + +Exact source search found use in `JGetItemType`. + +## Role In Callers + +Allows downstream callers to distinguish explicit JSON null from missing fields. + +## Tests Observed + +Focused print fixtures cover null values; the emitted `JGetType_test` coverage in this repo did not include a direct `JTYPE_NULL` assertion in the inspected exact-name results. + +## Graph Links + +- Graph node id: `macro:note.h:1404:JTYPE_NULL` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `JGetItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md b/source-research/artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md new file mode 100644 index 00000000..1d76e44a --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md @@ -0,0 +1,59 @@ +# `JTYPE_NUMBER_ZERO` + +## Status + +Finalized. Source-inspected public JSON zero-number classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1405` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_NUMBER_ZERO` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_NUMBER_ZERO 4` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for numeric items with both numeric fields zero; used by omit-empty object printing +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a JSON number whose `valueint` and `valuenumber` are both zero. `JBaseItemType` maps it to `JTYPE_NUMBER`. `_last_non_omitted_object` and `_print_object` treat it as omit-empty eligible. + +## Important Boundaries + +- Preconditions and assumptions: classification depends on both numeric fields being zero, not only on the raw JSON spelling. +- Error/null/empty behavior: absent items return `JTYPE_NOT_PRESENT`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: numeric zero comparison follows configured `JNUMBER` and `JINTEGER` representations. +- Performance shape: constant return/comparison after numeric checks. +- Security or parsing constraints: affects omission of zero-valued fields in omit-empty printing. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, `_last_non_omitted_object`, `_print_object`, and focused tests. + +## Role In Callers + +Distinguishes zero numbers from nonzero numbers and marks zero fields as omit-empty candidates. + +## Tests Observed + +`JGetType_test.cpp` covers zero-number classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_NUMBER`. + +## Graph Links + +- Graph node id: `macro:note.h:1405:JTYPE_NUMBER_ZERO` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType`, `JBaseItemType`, `_last_non_omitted_object`, and `_print_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1406__JTYPE_NUMBER.md b/source-research/artifacts/macros/note_h__L1406__JTYPE_NUMBER.md new file mode 100644 index 00000000..ed3dc755 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1406__JTYPE_NUMBER.md @@ -0,0 +1,59 @@ +# `JTYPE_NUMBER` + +## Status + +Finalized. Source-inspected public JSON nonzero/base number classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1406` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_NUMBER` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_NUMBER 5` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for nonzero numeric items and by base-type coalescing +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a JSON number that is not classified as zero, and the base class for all numbers returned by `JBaseItemType`. + +## Important Boundaries + +- Preconditions and assumptions: detailed classification distinguishes `JTYPE_NUMBER_ZERO` before returning this code. +- Error/null/empty behavior: absent items return `JTYPE_NOT_PRESENT`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison. +- Security or parsing constraints: no parsing; reflects helper classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, and focused tests. + +## Role In Callers + +Provides both detailed nonzero-number classification and base number category for coalesced type handling. + +## Tests Observed + +`JGetType_test.cpp` covers nonzero number classification. `JBaseItemType_test.cpp` covers zero-number coalescing and passthrough of `JTYPE_NUMBER`. + +## Graph Links + +- Graph node id: `macro:note.h:1406:JTYPE_NUMBER` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType` and `JBaseItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md b/source-research/artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md new file mode 100644 index 00000000..b7a46487 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md @@ -0,0 +1,59 @@ +# `JTYPE_STRING_BLANK` + +## Status + +Finalized. Source-inspected public blank-string classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1407` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_STRING_BLANK` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_STRING_BLANK 6` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for string/raw items with null or empty `valuestring`; used by omit-empty object printing +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a string-like item whose `valuestring` is null or empty. `JBaseItemType` maps it to `JTYPE_STRING`. `_last_non_omitted_object` and `_print_object` treat it as omit-empty eligible. + +## Important Boundaries + +- Preconditions and assumptions: applies to `JString` and `JRaw` low-byte types handled by `JGetItemType`. +- Error/null/empty behavior: absent items return `JTYPE_NOT_PRESENT`; empty string values return this code. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison after first-character check. +- Security or parsing constraints: affects omission of blank-string fields in omit-empty printing. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, `_last_non_omitted_object`, `_print_object`, and focused tests. + +## Role In Callers + +Distinguishes blank strings from numeric/bool-like strings and marks blank string fields as omit-empty candidates. + +## Tests Observed + +`JGetType_test.cpp` covers blank-string classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_STRING`. + +## Graph Links + +- Graph node id: `macro:note.h:1407:JTYPE_STRING_BLANK` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType`, `JBaseItemType`, `_last_non_omitted_object`, and `_print_object`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md b/source-research/artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md new file mode 100644 index 00000000..0611c198 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md @@ -0,0 +1,59 @@ +# `JTYPE_STRING_ZERO` + +## Status + +Finalized. Source-inspected public string-zero classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1408` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_STRING_ZERO` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_STRING_ZERO 7` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned when a string-like value parses numerically to zero +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a string-like item whose `valuestring` parses completely as a numeric value equal to zero. `JBaseItemType` maps it to `JTYPE_STRING`. + +## Important Boundaries + +- Preconditions and assumptions: classification uses `JAtoN` and requires the whole string to parse as a number. +- Error/null/empty behavior: null or empty strings are classified as `JTYPE_STRING_BLANK`, not this code. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: numeric parsing follows configured number conversion behavior. +- Performance shape: requires string length scan and numeric parse. +- Security or parsing constraints: no mutation; classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, and focused tests. + +## Role In Callers + +Distinguishes string values that represent zero from other string-like values before base-type coalescing. + +## Tests Observed + +`JGetType_test.cpp` covers string-zero classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_STRING`. + +## Graph Links + +- Graph node id: `macro:note.h:1408:JTYPE_STRING_ZERO` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType` and `JBaseItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md b/source-research/artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md new file mode 100644 index 00000000..6e7a25f8 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md @@ -0,0 +1,59 @@ +# `JTYPE_STRING_NUMBER` + +## Status + +Finalized. Source-inspected public string-number classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1409` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_STRING_NUMBER` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_STRING_NUMBER 8` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned when a string-like value parses completely as a nonzero number +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a string-like item whose `valuestring` parses completely as a numeric value other than zero. `JBaseItemType` maps it to `JTYPE_STRING`. + +## Important Boundaries + +- Preconditions and assumptions: classification uses `JAtoN` and requires the whole string to parse as a number. +- Error/null/empty behavior: empty strings are classified as blank; numeric zero strings use `JTYPE_STRING_ZERO`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: numeric parsing follows configured number conversion behavior. +- Performance shape: requires string length scan and numeric parse. +- Security or parsing constraints: no mutation; classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, and focused tests. + +## Role In Callers + +Distinguishes string values that represent nonzero numbers from ordinary strings before base-type coalescing. + +## Tests Observed + +`JGetType_test.cpp` covers string-number classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_STRING`. + +## Graph Links + +- Graph node id: `macro:note.h:1409:JTYPE_STRING_NUMBER` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType` and `JBaseItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md b/source-research/artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md new file mode 100644 index 00000000..f2b64667 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md @@ -0,0 +1,59 @@ +# `JTYPE_STRING_BOOL_TRUE` + +## Status + +Finalized. Source-inspected public string-true classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1410` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_STRING_BOOL_TRUE` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_STRING_BOOL_TRUE 9` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned when a string-like value case-insensitively equals `true` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a string-like item whose `valuestring` is four characters spelling `true` case-insensitively. `JBaseItemType` maps it to `JTYPE_STRING`. + +## Important Boundaries + +- Preconditions and assumptions: only the exact length-four word `true` qualifies. +- Error/null/empty behavior: absent and blank strings use other codes. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: ASCII character comparisons in source. +- Performance shape: constant-length character checks after numeric parse fails. +- Security or parsing constraints: no mutation; classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, and focused tests. + +## Role In Callers + +Distinguishes string values that represent boolean true while preserving the base string category via `JBaseItemType`. + +## Tests Observed + +`JGetType_test.cpp` covers string-bool-true classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_STRING`. + +## Graph Links + +- Graph node id: `macro:note.h:1410:JTYPE_STRING_BOOL_TRUE` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType` and `JBaseItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md b/source-research/artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md new file mode 100644 index 00000000..382f8b95 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md @@ -0,0 +1,59 @@ +# `JTYPE_STRING_BOOL_FALSE` + +## Status + +Finalized. Source-inspected public string-false classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1411` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_STRING_BOOL_FALSE` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_STRING_BOOL_FALSE 10` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned when a string-like value case-insensitively equals `false` +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents a string-like item whose `valuestring` is five characters spelling `false` case-insensitively. `JBaseItemType` maps it to `JTYPE_STRING`. + +## Important Boundaries + +- Preconditions and assumptions: only the exact length-five word `false` qualifies. +- Error/null/empty behavior: absent and blank strings use other codes. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: ASCII character comparisons in source. +- Performance shape: constant-length character checks after numeric parse fails. +- Security or parsing constraints: no mutation; classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, and focused tests. + +## Role In Callers + +Distinguishes string values that represent boolean false while preserving the base string category via `JBaseItemType`. + +## Tests Observed + +`JGetType_test.cpp` covers string-bool-false classification. `JBaseItemType_test.cpp` covers coalescing to `JTYPE_STRING`. + +## Graph Links + +- Graph node id: `macro:note.h:1411:JTYPE_STRING_BOOL_FALSE` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType` and `JBaseItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1412__JTYPE_STRING.md b/source-research/artifacts/macros/note_h__L1412__JTYPE_STRING.md new file mode 100644 index 00000000..a5cd5707 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1412__JTYPE_STRING.md @@ -0,0 +1,59 @@ +# `JTYPE_STRING` + +## Status + +Finalized. Source-inspected public JSON string/base string classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1412` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_STRING` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_STRING 11` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for ordinary string-like values and by base-type coalescing +- Artifact coverage: source-inspected artifact with verified incoming constant-use edges + +## Behavior + +Represents an ordinary string-like item that is not blank, numeric, or boolean-like, and the base string category returned by `JBaseItemType`. + +## Important Boundaries + +- Preconditions and assumptions: `JGetItemType` checks blank, numeric, and bool-like string cases before returning this code. +- Error/null/empty behavior: absent items return `JTYPE_NOT_PRESENT`; blank strings return `JTYPE_STRING_BLANK`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison after classification checks. +- Security or parsing constraints: no mutation; classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType`, `JBaseItemType`, and focused tests. + +## Role In Callers + +Provides detailed ordinary-string classification and the base string category for all string-like subtype codes. + +## Tests Observed + +`JGetType_test.cpp` covers string classification. `JBaseItemType_test.cpp` covers coalescing and passthrough of `JTYPE_STRING`. + +## Graph Links + +- Graph node id: `macro:note.h:1412:JTYPE_STRING` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edges from `JGetItemType` and `JBaseItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1413__JTYPE_OBJECT.md b/source-research/artifacts/macros/note_h__L1413__JTYPE_OBJECT.md new file mode 100644 index 00000000..08ce0528 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1413__JTYPE_OBJECT.md @@ -0,0 +1,59 @@ +# `JTYPE_OBJECT` + +## Status + +Finalized. Source-inspected public JSON object classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1413` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_OBJECT` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_OBJECT 12` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for `JObject` items +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +Represents a JSON object item. `JGetItemType` returns it for low-byte type `JObject`; `JBaseItemType` leaves it unchanged. + +## Important Boundaries + +- Preconditions and assumptions: this is a helper return code, not the raw cJSON `JObject` type tag. +- Error/null/empty behavior: absent items return `JTYPE_NOT_PRESENT`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison. +- Security or parsing constraints: no traversal; classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType` and focused tests. + +## Role In Callers + +Allows downstream callers to switch on object fields without inspecting `J.type` directly. + +## Tests Observed + +`JGetType_test.cpp` covers object classification. `JBaseItemType_test.cpp` covers passthrough of `JTYPE_OBJECT`. + +## Graph Links + +- Graph node id: `macro:note.h:1413:JTYPE_OBJECT` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `JGetItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1414__JTYPE_ARRAY.md b/source-research/artifacts/macros/note_h__L1414__JTYPE_ARRAY.md new file mode 100644 index 00000000..d653f646 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1414__JTYPE_ARRAY.md @@ -0,0 +1,59 @@ +# `JTYPE_ARRAY` + +## Status + +Finalized. Source-inspected public JSON array classification constant. + +## Identity + +- Kind: macro +- Definition: `note.h:1414` +- Declaration/interface: public `JGetItemType`/`JBaseItemType` return code +- Public/exported names: `JTYPE_ARRAY` +- Macro aliases/wrappers: none found +- Signature/API shape: `#define JTYPE_ARRAY 13` +- Visibility: public note-c API constant +- Ownership/lifetime role: no ownership; classification result only + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: returned for `JArray` items +- Artifact coverage: source-inspected artifact with verified incoming constant-use edge + +## Behavior + +Represents a JSON array item. `JGetItemType` returns it for low-byte type `JArray`; `JBaseItemType` leaves it unchanged. + +## Important Boundaries + +- Preconditions and assumptions: this is a helper return code, not the raw cJSON `JArray` type tag. +- Error/null/empty behavior: absent items return `JTYPE_NOT_PRESENT`. +- Ownership and lifetime: no allocation or ownership transfer. +- Concurrency/global state: none. +- Portability/platform constraints: integer macro in public header. +- Performance shape: constant return/comparison. +- Security or parsing constraints: no traversal; classification only. + +## Direct Call Sites + +Exact source search found uses in `JGetItemType` and focused tests. + +## Role In Callers + +Allows downstream callers to switch on array fields without inspecting `J.type` directly. + +## Tests Observed + +`JGetType_test.cpp` covers array classification. `JBaseItemType_test.cpp` covers passthrough of `JTYPE_ARRAY`. + +## Graph Links + +- Graph node id: `macro:note.h:1414:JTYPE_ARRAY` +- Structured graph: `inventory/dependency-graph.json` +- Verified incoming `uses_constant` edge from `JGetItemType`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1440__JGetObjectItemName.md b/source-research/artifacts/macros/note_h__L1440__JGetObjectItemName.md new file mode 100644 index 00000000..c894ecc6 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1440__JGetObjectItemName.md @@ -0,0 +1,55 @@ +# `JGetObjectItemName` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:1440` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `JGetObjectItemName` +- Macro aliases/wrappers: field accessor `(j->string)`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Direct struct-field access; no project-local function callee. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Returns the object item key string by directly reading the `string` member of the passed `J` pointer. + +## Important Boundaries + +- No null guard; `j` is evaluated directly. +- Exposes the existing `J` item key pointer; it does not allocate or copy. +- Lifetime follows the owning `J` object. + +## Direct Call Sites + +Exact source search found no production `JGetObjectItemName` call sites outside the public macro definition. + +## Role In Callers + +Public convenience accessor for cJSON object item names; caller must pass a non-null `J *` with a valid `string` member. + +## Tests Observed + +No focused test directly invokes `JGetObjectItemName`. + +## Graph Links + +- Graph node id: `macro:note.h:1440:JGetObjectItemName` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1443__JNTOA_PRECISION.md b/source-research/artifacts/macros/note_h__L1443__JNTOA_PRECISION.md new file mode 100644 index 00000000..9d364ecd --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1443__JNTOA_PRECISION.md @@ -0,0 +1,55 @@ +# `JNTOA_PRECISION` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:1443` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `JNTOA_PRECISION` +- Macro aliases/wrappers: literal `(16)`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Sets the default precision used by `JNtoA` when callers pass a negative precision. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used by `JNtoA` in `n_ftoa.c:62`; exact search found no other production uses. + +## Role In Callers + +Defines the SDK default number-to-string precision for JSON and helper formatting. + +## Tests Observed + +Focused `JNtoA_test.cpp` exercises negative precision and conversion behavior. + +## Graph Links + +- Graph node id: `macro:note.h:1443:JNTOA_PRECISION` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `JNtoA`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1444__JNTOA_MAX.md b/source-research/artifacts/macros/note_h__L1444__JNTOA_MAX.md new file mode 100644 index 00000000..65f43d5f --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1444__JNTOA_MAX.md @@ -0,0 +1,55 @@ +# `JNTOA_MAX` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:1444` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `JNTOA_MAX` +- Macro aliases/wrappers: literal `(44)`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the required buffer size for number-to-string conversion, including the null terminator. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used by `JNtoA`, `fmtflt`, cJSON `_print_number`, and environment number helpers in `n_helpers.c`. + +## Role In Callers + +Bounds stack buffers used for numeric formatting across ftoa, JSON printing, and environment helpers. + +## Tests Observed + +Focused `JNtoA_test.cpp` uses `char numStr[JNTOA_MAX]`; cJSON print tests exercise number output. + +## Graph Links + +- Graph node id: `macro:note.h:1444:JNTOA_MAX` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to number-format and helper call sites. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md b/source-research/artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md new file mode 100644 index 00000000..ea13377b --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md @@ -0,0 +1,55 @@ +# `NOTE_MD5_HASH_SIZE` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:1528` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_MD5_HASH_SIZE` +- Macro aliases/wrappers: literal `16`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the binary MD5 digest size in bytes. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used by `NoteMD5HashString`, `NoteMD5HashToString`, and related local buffers/loops in `n_md5.c`. + +## Role In Callers + +Sizes binary digest buffers and hex conversion loops for MD5 helper APIs. + +## Tests Observed + +Focused binary-store receive tests use MD5 string generation; MD5 helpers are exercised through binary helpers. + +## Graph Links + +- Graph node id: `macro:note.h:1528:NOTE_MD5_HASH_SIZE` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to MD5 helper functions. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md b/source-research/artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md new file mode 100644 index 00000000..813e8e34 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md @@ -0,0 +1,55 @@ +# `NOTE_MD5_HASH_STRING_SIZE` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:1529` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_MD5_HASH_STRING_SIZE` +- Macro aliases/wrappers: expression `(((NOTE_MD5_HASH_SIZE)*2)+1)`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Macro expression dependency on `NOTE_MD5_HASH_SIZE`. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the null-terminated hex MD5 string buffer length derived from the binary digest size. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used in binary store receive/transmit helpers and focused tests for status/hash buffers. + +## Role In Callers + +Ensures MD5 status strings have room for two hex chars per byte plus terminator. + +## Tests Observed + +Focused `NoteBinaryStoreReceive_test.cpp` allocates and passes this size into `NoteMD5HashString`. + +## Graph Links + +- Graph node id: `macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to binary helper call sites and `expands_to` dependency on `NOTE_MD5_HASH_SIZE`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md b/source-research/artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md new file mode 100644 index 00000000..8f34668d --- /dev/null +++ b/source-research/artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md @@ -0,0 +1,55 @@ +# `NOTE_C_DEPRECATED` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:19` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_DEPRECATED` +- Macro aliases/wrappers: GCC/Clang branch `__attribute__((__deprecated__))`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Compile branch depends on `__GNUC__ || __clang__`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Annotates deprecated public declarations when compiling with GCC-compatible or Clang-compatible compilers. The function implementations remain ordinary functions; only declarations carry the compiler warning attribute. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used on `NoteSuspendTransactionDebug`, `NoteResumeTransactionDebug`, and `NoteTurboIO` declarations in `note.h`. + +## Role In Callers + +Provides portable deprecation warnings without changing ABI or runtime behavior. + +## Tests Observed + +No focused test asserts compiler deprecation diagnostics. + +## Graph Links + +- Graph node id: `macro:note.h:19:NOTE_C_DEPRECATED` +- Structured graph: `inventory/dependency-graph.json` +- Verified `annotates_decl` edges to the deprecated public functions. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2033__NoteSend.md b/source-research/artifacts/macros/note_h__L2033__NoteSend.md new file mode 100644 index 00000000..a54b5a2d --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2033__NoteSend.md @@ -0,0 +1,60 @@ +# `NoteSend` + +## Status + +Finalized. Source-inspected public macro alias. + +## Identity + +- Kind: macro +- Definition: `note.h:2033` +- Declaration/interface: public header macro in `note.h` +- Public/exported names: `NoteSend` +- Macro aliases/wrappers: transparent alias for `NoteAdd` +- Signature/API shape: macro replacement `#define NoteSend NoteAdd`; callers use the `NoteAdd(const char *target, J *body, bool urgent)` API shape after preprocessing +- Visibility: public note-c header macro +- Ownership/lifetime role: inherits `NoteAdd` body consumption/freeing semantics + +## Dependency Status + +- Project-local dependencies: + - `function:n_helpers.c:2083:NoteAdd` finalized +- External/system dependencies: inherited from `NoteAdd` +- Data/type/global dependencies: inherited from `NoteAdd` +- Artifact coverage: source-inspected artifact + +## Behavior + +Transparent preprocessor alias: `NoteSend` expands directly to `NoteAdd`. It adds no arguments, drops no arguments, performs no ownership conversion, and has no runtime body of its own. + +## Important Boundaries + +- Preconditions and assumptions: identical to finalized `NoteAdd` after macro expansion. +- Error/null/empty behavior: identical to finalized `NoteAdd`. +- Ownership and lifetime: identical to finalized `NoteAdd`; caller-supplied body is consumed/freed through the `NoteAdd` path. +- Concurrency/global state: no macro-local state; runtime effects are inherited from `NoteAdd`. +- Portability/platform constraints: standard object-like C preprocessor alias in the public header. +- Performance shape: no runtime overhead beyond `NoteAdd`. +- Security or parsing constraints: no macro-local validation or parsing. + +## Direct Call Sites + +Exact source search found only the macro definition in `note.h:2033`. No production repository caller or focused test using `NoteSend` was found. + +## Role In Callers + +No production repository caller role. Public compatibility/convenience alias for downstream callers that use `NoteSend` instead of `NoteAdd`. + +## Tests Observed + +No focused tests call the `NoteSend` macro name directly. `test/src/NoteAdd_test.cpp` covers the target implementation reached after expansion. + +## Graph Links + +- Graph node id: `macro:note.h:2033:NoteSend` +- Structured graph: `inventory/dependency-graph.json` +- Verified outgoing `expands_to` edge to `function:n_helpers.c:2083:NoteAdd`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md b/source-research/artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md new file mode 100644 index 00000000..9c731b87 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md @@ -0,0 +1,55 @@ +# `NP_SEGTYPE_LEN` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2102` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NP_SEGTYPE_LEN` +- Macro aliases/wrappers: literal `4`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the segment type identifier width. Payload add copies exactly four type bytes; payload find compares exactly four bytes and reads length immediately after those bytes. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `NotePayloadAddSegment`, `NotePayloadFindSegment`, and the public payload function parameter declarations. + +## Role In Callers + +Defines the first field of the binary segmented-payload header. + +## Tests Observed + +Focused `NotePayload_test.cpp` covers add/find/get, duplicate IDs, missing IDs, and reallocation behavior. + +## Graph Links + +- Graph node id: `macro:note.h:2102:NP_SEGTYPE_LEN` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to payload add/find functions. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md b/source-research/artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md new file mode 100644 index 00000000..487152f8 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md @@ -0,0 +1,55 @@ +# `NP_SEGLEN_LEN` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2103` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NP_SEGLEN_LEN` +- Macro aliases/wrappers: expression `sizeof(uint32_t)`, effectively `4` bytes. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the raw length-field width copied into each payload segment header by `NotePayloadAddSegment`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `NotePayloadAddSegment`; `NotePayloadFindSegment` reads the same field with `sizeof(len)`. + +## Role In Callers + +Defines the second field of the binary segmented-payload header. The serialized length is native-endian because source uses raw `memcpy` of a `uint32_t`. + +## Tests Observed + +Focused `NotePayload_test.cpp` covers payload add/find/get behavior. + +## Graph Links + +- Graph node id: `macro:note.h:2103:NP_SEGLEN_LEN` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `NotePayloadAddSegment`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md b/source-research/artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md new file mode 100644 index 00000000..a374c05e --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md @@ -0,0 +1,55 @@ +# `NP_SEGHDR_LEN` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2104` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NP_SEGHDR_LEN` +- Macro aliases/wrappers: expression `(NP_SEGTYPE_LEN + NP_SEGLEN_LEN)`, effectively `8` bytes. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Depends on `NP_SEGTYPE_LEN` and `NP_SEGLEN_LEN`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines total segment header size. Payload add includes it in allocation/length accounting; payload find uses it for loop bounds, payload data pointer, and segment skipping. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `NotePayloadAddSegment` and `NotePayloadFindSegment`. + +## Role In Callers + +Keeps header-size arithmetic consistent between writer and scanner. + +## Tests Observed + +Focused `NotePayload_test.cpp` covers add/find/get, duplicate ID, missing ID, and reallocation behavior. + +## Graph Links + +- Graph node id: `macro:note.h:2104:NP_SEGHDR_LEN` +- Structured graph: `inventory/dependency-graph.json` +- Verified dependency edges to segment type/length constants and uses edges to payload functions. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2182__TBOOL.md b/source-research/artifacts/macros/note_h__L2182__TBOOL.md new file mode 100644 index 00000000..cccb99ab --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2182__TBOOL.md @@ -0,0 +1,55 @@ +# `TBOOL` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2182` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TBOOL` +- Macro aliases/wrappers: literal `true` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON bool helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +boolean template type constant; intended to be encoded through `JAddBoolToObject` before `NoteTemplate` sends the caller-owned body. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2182:TBOOL` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2183__TINT8.md b/source-research/artifacts/macros/note_h__L2183__TINT8.md new file mode 100644 index 00000000..1e777b53 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2183__TINT8.md @@ -0,0 +1,55 @@ +# `TINT8` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2183` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TINT8` +- Macro aliases/wrappers: literal `11` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +1-byte signed integer template code; intended to be encoded as a JSON number in a template body. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2183:TINT8` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2184__TINT16.md b/source-research/artifacts/macros/note_h__L2184__TINT16.md new file mode 100644 index 00000000..f54d39c6 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2184__TINT16.md @@ -0,0 +1,55 @@ +# `TINT16` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2184` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TINT16` +- Macro aliases/wrappers: literal `12` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +2-byte signed integer template code; intended to be encoded as a JSON number in a template body. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2184:TINT16` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2185__TINT24.md b/source-research/artifacts/macros/note_h__L2185__TINT24.md new file mode 100644 index 00000000..53442f9c --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2185__TINT24.md @@ -0,0 +1,55 @@ +# `TINT24` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2185` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TINT24` +- Macro aliases/wrappers: literal `13` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +3-byte signed integer template code; intended to be encoded as a JSON number in a template body. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2185:TINT24` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2186__TINT32.md b/source-research/artifacts/macros/note_h__L2186__TINT32.md new file mode 100644 index 00000000..368f6a2d --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2186__TINT32.md @@ -0,0 +1,55 @@ +# `TINT32` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2186` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TINT32` +- Macro aliases/wrappers: literal `14` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +4-byte signed integer template code; intended to be encoded as a JSON number in a template body. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2186:TINT32` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2187__TINT64.md b/source-research/artifacts/macros/note_h__L2187__TINT64.md new file mode 100644 index 00000000..98d88966 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2187__TINT64.md @@ -0,0 +1,55 @@ +# `TINT64` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2187` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TINT64` +- Macro aliases/wrappers: literal `18` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +8-byte signed integer template code; support depends on platform and Notecard behavior. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2187:TINT64` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2188__TUINT8.md b/source-research/artifacts/macros/note_h__L2188__TUINT8.md new file mode 100644 index 00000000..5d90e8d2 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2188__TUINT8.md @@ -0,0 +1,55 @@ +# `TUINT8` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2188` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TUINT8` +- Macro aliases/wrappers: literal `21` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +1-byte unsigned integer template code; header notes firmware support requirement. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2188:TUINT8` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2189__TUINT16.md b/source-research/artifacts/macros/note_h__L2189__TUINT16.md new file mode 100644 index 00000000..0e9a49b5 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2189__TUINT16.md @@ -0,0 +1,55 @@ +# `TUINT16` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2189` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TUINT16` +- Macro aliases/wrappers: literal `22` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +2-byte unsigned integer template code; header notes firmware support requirement. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2189:TUINT16` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2190__TUINT24.md b/source-research/artifacts/macros/note_h__L2190__TUINT24.md new file mode 100644 index 00000000..41ca86b8 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2190__TUINT24.md @@ -0,0 +1,55 @@ +# `TUINT24` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2190` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TUINT24` +- Macro aliases/wrappers: literal `23` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +3-byte unsigned integer template code; header notes firmware support requirement. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2190:TUINT24` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2191__TUINT32.md b/source-research/artifacts/macros/note_h__L2191__TUINT32.md new file mode 100644 index 00000000..19c9993f --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2191__TUINT32.md @@ -0,0 +1,55 @@ +# `TUINT32` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2191` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TUINT32` +- Macro aliases/wrappers: literal `24` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +4-byte unsigned integer template code; header notes firmware support requirement. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2191:TUINT32` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2192__TFLOAT16.md b/source-research/artifacts/macros/note_h__L2192__TFLOAT16.md new file mode 100644 index 00000000..907b3b19 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2192__TFLOAT16.md @@ -0,0 +1,55 @@ +# `TFLOAT16` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2192` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TFLOAT16` +- Macro aliases/wrappers: literal `12.1` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +2-byte IEEE-754 floating template code; intended to be encoded as JSON number. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2192:TFLOAT16` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2193__TFLOAT32.md b/source-research/artifacts/macros/note_h__L2193__TFLOAT32.md new file mode 100644 index 00000000..321b2191 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2193__TFLOAT32.md @@ -0,0 +1,55 @@ +# `TFLOAT32` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2193` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TFLOAT32` +- Macro aliases/wrappers: literal `14.1` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +4-byte IEEE-754 floating template code; intended to be encoded as JSON number. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2193:TFLOAT32` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2194__TFLOAT64.md b/source-research/artifacts/macros/note_h__L2194__TFLOAT64.md new file mode 100644 index 00000000..54c15156 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2194__TFLOAT64.md @@ -0,0 +1,55 @@ +# `TFLOAT64` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2194` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TFLOAT64` +- Macro aliases/wrappers: literal `18.1` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; encoded by caller through cJSON number helpers. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +8-byte IEEE-754 floating template code; intended to be encoded as JSON number. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2194:TFLOAT64` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2195__TSTRING.md b/source-research/artifacts/macros/note_h__L2195__TSTRING.md new file mode 100644 index 00000000..e7cff528 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2195__TSTRING.md @@ -0,0 +1,55 @@ +# `TSTRING` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2195` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TSTRING` +- Macro aliases/wrappers: function-like macro `_NOTE_C_STRINGIZE(N)` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; stringizes through `_NOTE_C_STRINGIZE`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +fixed-length UTF-8 string template code; stringizes the supplied length token. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2195:TSTRING` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L2196__TSTRINGV.md b/source-research/artifacts/macros/note_h__L2196__TSTRINGV.md new file mode 100644 index 00000000..e0a94f20 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L2196__TSTRINGV.md @@ -0,0 +1,55 @@ +# `TSTRINGV` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:2196` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `TSTRINGV` +- Macro aliases/wrappers: expression `_NOTE_C_STRINGIZE(0)` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Public template constant for `NoteTemplate`; stringizes through `_NOTE_C_STRINGIZE`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +variable-length string template code; expands to string literal `"0"`. `NoteTemplate` attaches and sends the caller-owned body unchanged. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Exact production source search found no in-repo direct macro use beyond the public definition. `NoteTemplate` is the production API that sends template bodies supplied by callers. + +## Role In Callers + +Defines stable public codes for callers building `note.template` request bodies. + +## Tests Observed + +Focused `NoteTemplate_test.cpp` covers request construction/success/failure, but no test asserts this macro value directly. + +## Graph Links + +- Graph node id: `macro:note.h:2196:TSTRINGV` +- Structured graph: `inventory/dependency-graph.json` +- Recorded `public_template_constant_for` edge to `NoteTemplate` and caller-encoding edge to the relevant cJSON add helper. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md b/source-research/artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md new file mode 100644 index 00000000..f7810bcd --- /dev/null +++ b/source-research/artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md @@ -0,0 +1,55 @@ +# `NOTE_C_DEPRECATED` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:21` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_DEPRECATED` +- Macro aliases/wrappers: MSVC branch `__declspec(deprecated)`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Compile branch depends on `_MSC_VER`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Annotates deprecated public declarations when compiling with MSVC. The fallback branch is empty and defines `NOTE_C_NO_DEPRECATED_ATTR`, but no separate graph node exists for that fallback macro. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used on the same deprecated public declarations as the GCC/Clang branch. + +## Role In Callers + +Provides MSVC deprecation warnings without changing ABI or runtime behavior. + +## Tests Observed + +No focused test asserts compiler deprecation diagnostics. + +## Graph Links + +- Graph node id: `macro:note.h:21:NOTE_C_DEPRECATED` +- Structured graph: `inventory/dependency-graph.json` +- Verified `annotates_decl` edges to the deprecated public functions. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L322__NoteNewBody.md b/source-research/artifacts/macros/note_h__L322__NoteNewBody.md new file mode 100644 index 00000000..0604e1ab --- /dev/null +++ b/source-research/artifacts/macros/note_h__L322__NoteNewBody.md @@ -0,0 +1,55 @@ +# `NoteNewBody` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:322` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NoteNewBody` +- Macro aliases/wrappers: alias to `JCreateObject`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Alias dependency on `JCreateObject`. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Creates an empty JSON body object by expanding directly to the cJSON object constructor. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production `NoteNewBody` call sites outside the public macro definition. + +## Role In Callers + +Public compatibility convenience for body creation; behavior is exactly `JCreateObject` when used. + +## Tests Observed + +No focused test directly invokes `NoteNewBody`. + +## Graph Links + +- Graph node id: `macro:note.h:322:NoteNewBody` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `JCreateObject`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L323__NoteAddBodyToObject.md b/source-research/artifacts/macros/note_h__L323__NoteAddBodyToObject.md new file mode 100644 index 00000000..35725d44 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L323__NoteAddBodyToObject.md @@ -0,0 +1,55 @@ +# `NoteAddBodyToObject` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:323` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NoteAddBodyToObject` +- Macro aliases/wrappers: wrapper `JAddItemToObject(a, "body", b)`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Wrapper dependency on `JAddItemToObject` and fixed key literal `"body"`. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Adds an existing `J` item under the fixed key `"body"` by expanding to `JAddItemToObject`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production `NoteAddBodyToObject` call sites outside the public macro definition. + +## Role In Callers + +Public compatibility convenience for adding request/response bodies; ownership follows `JAddItemToObject` semantics. + +## Tests Observed + +No focused test directly invokes `NoteAddBodyToObject`. + +## Graph Links + +- Graph node id: `macro:note.h:323:NoteAddBodyToObject` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `JAddItemToObject`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L324__NoteGetBody.md b/source-research/artifacts/macros/note_h__L324__NoteGetBody.md new file mode 100644 index 00000000..a9f6f6fd --- /dev/null +++ b/source-research/artifacts/macros/note_h__L324__NoteGetBody.md @@ -0,0 +1,55 @@ +# `NoteGetBody` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:324` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NoteGetBody` +- Macro aliases/wrappers: wrapper `JGetObject(a, "body")`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Wrapper dependency on `JGetObject` and fixed key literal `"body"`. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Fetches the `"body"` object field by expanding to `JGetObject`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production `NoteGetBody` call sites outside the public macro definition. + +## Role In Callers + +Public compatibility convenience for retrieving response/request bodies; null/missing handling follows `JGetObject`. + +## Tests Observed + +No focused test directly invokes `NoteGetBody`. + +## Graph Links + +- Graph node id: `macro:note.h:324:NoteGetBody` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `JGetObject`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md b/source-research/artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md new file mode 100644 index 00000000..64d3f816 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md @@ -0,0 +1,55 @@ +# `_NOTE_C_STRINGIZE` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:39` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `_NOTE_C_STRINGIZE` +- Macro aliases/wrappers: raw stringize macro `#x`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; preprocessor stringize operator only. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Stringizes its argument token without an expansion layer. `TSTRING(N)` and `TSTRINGV` use it directly, while `NOTE_C_STRINGIZE(x)` delegates to it after expanding macro arguments. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Referenced by `NOTE_C_STRINGIZE`, `TSTRING(N)`, and `TSTRINGV` macro definitions. + +## Role In Callers + +Provides the primitive stringizing operation used by version/logging and template string constants. + +## Tests Observed + +No focused test directly asserts this macro. + +## Graph Links + +- Graph node id: `macro:note.h:39:_NOTE_C_STRINGIZE` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to`/delegation edges from wrapper macros. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md b/source-research/artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md new file mode 100644 index 00000000..af398b24 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md @@ -0,0 +1,64 @@ +# `NOTE_C_STRINGIZE` + +## Status + +Finalized. Source-inspected public two-step stringize macro and exact source uses. + +## Identity + +- Kind: macro +- Definition: `note.h:40` +- Declaration/interface: public header macro in `note.h` +- Public/exported names: `NOTE_C_STRINGIZE` +- Macro aliases/wrappers: expands to adjacent helper `_NOTE_C_STRINGIZE(x)` defined at `note.h:39` +- Signature/API shape: `NOTE_C_STRINGIZE(x)` +- Visibility: available to translation units including `note.h` +- Ownership/lifetime role: compile-time token-to-string-literal helper; no runtime ownership + +## Dependency Status + +- Project-local dependencies: adjacent helper macro `_NOTE_C_STRINGIZE(x) #x` source-inspected; generated graph does not model it as an outgoing edge +- External/system dependencies: preprocessor stringification +- Data/type/global dependencies: compile-time macro arguments only; no runtime state +- Artifact coverage: definition, adjacent helper, source uses, and generated graph node inspected + +## Behavior + +Provides the second expansion layer for preprocessor stringification. `NOTE_C_STRINGIZE(x)` expands `x` first, then delegates to `_NOTE_C_STRINGIZE(x)`, whose `#x` operator turns the expanded token sequence into a string literal. + +## Important Boundaries + +- Preconditions and assumptions: argument must be valid preprocessor tokens in the call site. +- Error/null/empty behavior: no runtime error channel; invalid macro input fails at preprocessing/compilation. +- Ownership and lifetime: produces string literals at compile time; no allocation. +- Concurrency/global state: no runtime state. +- Portability/platform constraints: standard C/C++ preprocessor behavior; used in public headers and C sources. +- Performance shape: compile-time only. +- Security or parsing constraints: stringized values may be embedded in diagnostics/version/compiler strings but no runtime parsing occurs here. + +## Direct Call Sites + +Exact source search found direct uses: + +- `note.h:46` builds `NOTE_C_VERSION` from `NOTE_C_VERSION_MAJOR`, `NOTE_C_VERSION_MINOR`, and `NOTE_C_VERSION_PATCH`. +- `note.h:983` embeds `__LINE__` in `NOTE_C_LOG_FILE_AND_LINE` when `NOTE_C_LOG_SHOW_FILE_AND_LINE` is enabled. +- `n_cjson.c:112` `JVersion` builds the CJSON version string from `N_CJSON_VERSION_*` macros. +- `n_ua.c:113` and `n_ua.c:115` build IAR compiler strings from `__VER__` in `NoteUserAgent` compiler-detection branches. + +## Role In Callers + +Callers use this macro where numeric/version/compiler preprocessor symbols must become string literals after macro expansion. It is a compile-time support macro for version constants, optional file/line logging, CJSON version reporting, and user-agent compiler metadata. + +## Tests Observed + +No focused tests were found for this macro. Source inspection is sufficient because behavior is compile-time preprocessor expansion. + +## Graph Links + +- Graph node id: `macro:note.h:40:NOTE_C_STRINGIZE` +- Structured graph: `inventory/dependency-graph.json` +- Generated incoming edge observed from `function:n_cjson.c:110:JVersion`; additional preprocessor uses in `note.h` and `n_ua.c` are source-inspected call sites. + +## Evidence Gaps + +No unresolved source gaps for this node. The adjacent helper `_NOTE_C_STRINGIZE` remains a separate preliminary artifact because this active slice tracks the public macro node only. diff --git a/source-research/artifacts/macros/note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md b/source-research/artifacts/macros/note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md new file mode 100644 index 00000000..1c758ae6 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md @@ -0,0 +1,55 @@ +# `SYNCSTATUS_LEVEL_MAJOR` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:410` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `SYNCSTATUS_LEVEL_MAJOR` +- Macro aliases/wrappers: literal `0`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public maximum level value for `NoteDebugSyncStatus` callers requesting major sync status only. The implementation prints a queued sync note when `maxLevel < 0 || JGetInt(body, "level") <= maxLevel`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production macro uses outside the public definitions; `NoteDebugSyncStatus` accepts the numeric max-level contract at `n_helpers.c:2332`. + +## Role In Callers + +Communicates the intended `maxLevel` values for sync-status filtering without exposing magic numbers to SDK callers. + +## Tests Observed + +Focused `NoteDebugSyncStatus_test.cpp` covers max-level filtering behavior, including the all-level negative path; tests mostly pass literals rather than these macros. + +## Graph Links + +- Graph node id: `macro:note.h:410:SYNCSTATUS_LEVEL_MAJOR` +- Structured graph: `inventory/dependency-graph.json` +- Semantics verified against `NoteDebugSyncStatus`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L411__SYNCSTATUS_LEVEL_MINOR.md b/source-research/artifacts/macros/note_h__L411__SYNCSTATUS_LEVEL_MINOR.md new file mode 100644 index 00000000..23357e9d --- /dev/null +++ b/source-research/artifacts/macros/note_h__L411__SYNCSTATUS_LEVEL_MINOR.md @@ -0,0 +1,55 @@ +# `SYNCSTATUS_LEVEL_MINOR` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:411` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `SYNCSTATUS_LEVEL_MINOR` +- Macro aliases/wrappers: literal `1`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public maximum level value for `NoteDebugSyncStatus` callers requesting minor and major sync status. The implementation prints a queued sync note when `maxLevel < 0 || JGetInt(body, "level") <= maxLevel`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production macro uses outside the public definitions; `NoteDebugSyncStatus` accepts the numeric max-level contract at `n_helpers.c:2332`. + +## Role In Callers + +Communicates the intended `maxLevel` values for sync-status filtering without exposing magic numbers to SDK callers. + +## Tests Observed + +Focused `NoteDebugSyncStatus_test.cpp` covers max-level filtering behavior, including the all-level negative path; tests mostly pass literals rather than these macros. + +## Graph Links + +- Graph node id: `macro:note.h:411:SYNCSTATUS_LEVEL_MINOR` +- Structured graph: `inventory/dependency-graph.json` +- Semantics verified against `NoteDebugSyncStatus`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md b/source-research/artifacts/macros/note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md new file mode 100644 index 00000000..1bf8879c --- /dev/null +++ b/source-research/artifacts/macros/note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md @@ -0,0 +1,55 @@ +# `SYNCSTATUS_LEVEL_DETAILED` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:412` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `SYNCSTATUS_LEVEL_DETAILED` +- Macro aliases/wrappers: literal `2`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public maximum level value for `NoteDebugSyncStatus` callers requesting detailed status up to level 2. The implementation prints a queued sync note when `maxLevel < 0 || JGetInt(body, "level") <= maxLevel`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production macro uses outside the public definitions; `NoteDebugSyncStatus` accepts the numeric max-level contract at `n_helpers.c:2332`. + +## Role In Callers + +Communicates the intended `maxLevel` values for sync-status filtering without exposing magic numbers to SDK callers. + +## Tests Observed + +Focused `NoteDebugSyncStatus_test.cpp` covers max-level filtering behavior, including the all-level negative path; tests mostly pass literals rather than these macros. + +## Graph Links + +- Graph node id: `macro:note.h:412:SYNCSTATUS_LEVEL_DETAILED` +- Structured graph: `inventory/dependency-graph.json` +- Semantics verified against `NoteDebugSyncStatus`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md b/source-research/artifacts/macros/note_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md new file mode 100644 index 00000000..b6281dd7 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md @@ -0,0 +1,55 @@ +# `SYNCSTATUS_LEVEL_ALGORITHMIC` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:413` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `SYNCSTATUS_LEVEL_ALGORITHMIC` +- Macro aliases/wrappers: literal `3`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public maximum level value for `NoteDebugSyncStatus` callers requesting algorithmic status up to level 3. The implementation prints a queued sync note when `maxLevel < 0 || JGetInt(body, "level") <= maxLevel`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production macro uses outside the public definitions; `NoteDebugSyncStatus` accepts the numeric max-level contract at `n_helpers.c:2332`. + +## Role In Callers + +Communicates the intended `maxLevel` values for sync-status filtering without exposing magic numbers to SDK callers. + +## Tests Observed + +Focused `NoteDebugSyncStatus_test.cpp` covers max-level filtering behavior, including the all-level negative path; tests mostly pass literals rather than these macros. + +## Graph Links + +- Graph node id: `macro:note.h:413:SYNCSTATUS_LEVEL_ALGORITHMIC` +- Structured graph: `inventory/dependency-graph.json` +- Semantics verified against `NoteDebugSyncStatus`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md b/source-research/artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md new file mode 100644 index 00000000..ae0b2c94 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md @@ -0,0 +1,55 @@ +# `SYNCSTATUS_LEVEL_ALL` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:414` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `SYNCSTATUS_LEVEL_ALL` +- Macro aliases/wrappers: literal `-1`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public maximum level value for `NoteDebugSyncStatus` callers requesting all sync status because `NoteDebugSyncStatus` treats negative max level as unlimited. The implementation prints a queued sync note when `maxLevel < 0 || JGetInt(body, "level") <= maxLevel`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Exact source search found no production macro uses outside the public definitions; `NoteDebugSyncStatus` accepts the numeric max-level contract at `n_helpers.c:2332`. + +## Role In Callers + +Communicates the intended `maxLevel` values for sync-status filtering without exposing magic numbers to SDK callers. + +## Tests Observed + +Focused `NoteDebugSyncStatus_test.cpp` covers max-level filtering behavior, including the all-level negative path; tests mostly pass literals rather than these macros. + +## Graph Links + +- Graph node id: `macro:note.h:414:SYNCSTATUS_LEVEL_ALL` +- Structured graph: `inventory/dependency-graph.json` +- Semantics verified against `NoteDebugSyncStatus`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md b/source-research/artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md new file mode 100644 index 00000000..bfeffe4e --- /dev/null +++ b/source-research/artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md @@ -0,0 +1,55 @@ +# `NOTE_C_VERSION_MAJOR` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:42` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_VERSION_MAJOR` +- Macro aliases/wrappers: literal `2`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the major component of the SDK version. `NOTE_C_VERSION` expands and stringizes this component into the public version string. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Referenced by the `NOTE_C_VERSION` macro expression. + +## Role In Callers + +Keeps the numeric version component separately available while feeding the string version used in user-agent data. + +## Tests Observed + +No focused test directly asserts the numeric version macro. + +## Graph Links + +- Graph node id: `macro:note.h:42:NOTE_C_VERSION_MAJOR` +- Structured graph: `inventory/dependency-graph.json` +- Verified dependency edge from `NOTE_C_VERSION`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md b/source-research/artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md new file mode 100644 index 00000000..ce1e8f36 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md @@ -0,0 +1,55 @@ +# `NOTE_C_VERSION_MINOR` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:43` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_VERSION_MINOR` +- Macro aliases/wrappers: literal `6`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the minor component of the SDK version. `NOTE_C_VERSION` expands and stringizes this component into the public version string. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Referenced by the `NOTE_C_VERSION` macro expression. + +## Role In Callers + +Keeps the numeric version component separately available while feeding the string version used in user-agent data. + +## Tests Observed + +No focused test directly asserts the numeric version macro. + +## Graph Links + +- Graph node id: `macro:note.h:43:NOTE_C_VERSION_MINOR` +- Structured graph: `inventory/dependency-graph.json` +- Verified dependency edge from `NOTE_C_VERSION`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md b/source-research/artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md new file mode 100644 index 00000000..83ca1cc4 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md @@ -0,0 +1,55 @@ +# `NOTE_C_VERSION_PATCH` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:44` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_VERSION_PATCH` +- Macro aliases/wrappers: literal `1`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the patch component of the SDK version. `NOTE_C_VERSION` expands and stringizes this component into the public version string. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Referenced by the `NOTE_C_VERSION` macro expression. + +## Role In Callers + +Keeps the numeric version component separately available while feeding the string version used in user-agent data. + +## Tests Observed + +No focused test directly asserts the numeric version macro. + +## Graph Links + +- Graph node id: `macro:note.h:44:NOTE_C_VERSION_PATCH` +- Structured graph: `inventory/dependency-graph.json` +- Verified dependency edge from `NOTE_C_VERSION`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L46__NOTE_C_VERSION.md b/source-research/artifacts/macros/note_h__L46__NOTE_C_VERSION.md new file mode 100644 index 00000000..11b4ca88 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L46__NOTE_C_VERSION.md @@ -0,0 +1,55 @@ +# `NOTE_C_VERSION` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:46` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_VERSION` +- Macro aliases/wrappers: expression `NOTE_C_STRINGIZE(MAJOR) "." NOTE_C_STRINGIZE(MINOR) "." NOTE_C_STRINGIZE(PATCH)`, currently `"2.6.1"`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Depends on version component macros and `NOTE_C_STRINGIZE`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Builds the public SDK version string through two-stage stringization. `n_ua.c` embeds it in the default user-agent string as `"note-c " NOTE_C_VERSION`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Referenced by `n_ua.c:19` default `n_agent` initialization. + +## Role In Callers + +Connects header version constants to runtime user-agent identity. + +## Tests Observed + +Focused `NoteUserAgent_test.cpp` checks the user-agent agent field but does not independently assert the literal version. + +## Graph Links + +- Graph node id: `macro:note.h:46:NOTE_C_VERSION` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge from `NoteUserAgent` and macro dependency edges to version components. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L479__NoteResponseError.md b/source-research/artifacts/macros/note_h__L479__NoteResponseError.md new file mode 100644 index 00000000..2912a01b --- /dev/null +++ b/source-research/artifacts/macros/note_h__L479__NoteResponseError.md @@ -0,0 +1,55 @@ +# `NoteResponseError` + +## Status + +Finalized. Source-inspected response error predicate macro. + +## Identity + +- Kind: macro +- Definition: `note.h:479` +- Declaration/interface: public response helper macro +- Signature/API shape: `NoteResponseError(rsp)` +- Visibility: public note-c response helper +- Public/exported names: `NoteResponseError` + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson_helpers.c:152:JIsNullString` finalized +- External/system dependencies: none +- Data/type/global dependencies: response `J` tree + +## Behavior + +Expands to `(!JIsNullString(rsp, "err"))`, treating a nonblank string `err` field as an error. + +## Important Boundaries + +- Preconditions and assumptions: macro argument may be evaluated by `JIsNullString`. +- Error/null/empty behavior: null response returns true because `JIsNullString(NULL, "err")` returns false. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: object lookup through `JIsNullString`. +- Portability/platform constraints: field matching follows JSON helper behavior. + +## Direct Call Sites + +Exact source search found broad helper use, including `NoteBinaryStoreReceive`, `NoteBinaryStoreTransmit`, and many higher-level helper APIs. + +## Role In Callers + +`NoteBinaryStoreReceive` rejects null or error responses from the setup transaction before receiving binary bytes. + +## Tests Observed + +`NoteResponseError_test.cpp`, `NoteTransaction_test.cpp`, and binary store tests exercise this macro. + +## Graph Links + +- Graph node id: `macro:note.h:479:NoteResponseError` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L480__NoteResponseErrorContains.md b/source-research/artifacts/macros/note_h__L480__NoteResponseErrorContains.md new file mode 100644 index 00000000..c4b3c224 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L480__NoteResponseErrorContains.md @@ -0,0 +1,55 @@ +# `NoteResponseErrorContains` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:480` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NoteResponseErrorContains` +- Macro aliases/wrappers: wrapper `(JContainsString(rsp, "err", errstr))`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Wrapper dependency on `JContainsString` and fixed key literal `"err"`. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Tests whether a response object has an `"err"` field containing the requested substring by delegating to `JContainsString`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +No production C source uses this public macro; focused tests call it directly in `NoteTransaction_test.cpp`. + +## Role In Callers + +Public convenience for checking tagged Notecard errors while preserving cJSON helper semantics. + +## Tests Observed + +Focused `NoteTransaction_test.cpp` checks the macro against an `{io}` response. + +## Graph Links + +- Graph node id: `macro:note.h:480:NoteResponseErrorContains` +- Structured graph: `inventory/dependency-graph.json` +- Verified `expands_to` edge to `JContainsString`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L486__NoteDeleteResponse.md b/source-research/artifacts/macros/note_h__L486__NoteDeleteResponse.md new file mode 100644 index 00000000..435a2b86 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L486__NoteDeleteResponse.md @@ -0,0 +1,67 @@ +# `NoteDeleteResponse` + +## Status + +Finalized. Source-inspected public response cleanup macro. + +## Identity + +- Kind: macro +- Definition: `note.h:486` +- Declaration/interface: public SDK header macro +- Signature/API shape: `NoteDeleteResponse(rsp)` +- Macro aliases/wrappers: expands to `JDelete(rsp)` +- Visibility: public SDK API +- Public/exported names: `NoteDeleteResponse` +- Ownership/lifetime role: releases a JSON response object returned by request APIs + +## Dependency Status + +- Project-local dependencies: + - `function:n_cjson.c:209:JDelete` finalized +- External/system dependencies: none +- Data/type/global dependencies: JSON response type `J`; allocator/free hook state is owned by finalized `JDelete` closure +- Graph repair: added verified `NoteDeleteResponse` -> `JDelete` macro-alias edge after source inspection + +## Behavior + +This macro is a public semantic alias for `JDelete(rsp)`. It has no additional guards, logging, or ownership logic: the argument is evaluated as the argument to `JDelete`, and null behavior follows `JDelete`, whose loop returns immediately for `NULL`. + +Through `JDelete`, freeing a response recursively releases child nodes, value strings, and key strings unless the corresponding reference/const flags are set, then frees each node through the SDK allocator hook. + +## Important Boundaries + +- Preconditions and assumptions: the pointer should be a `J *` response object or NULL. +- Error/null/empty behavior: NULL is accepted through `JDelete`; there is no error return. +- Ownership and lifetime: consumes the caller's response tree ownership; callers must not use the tree after this macro. +- Concurrency/global state: no lock behavior; allocator hook state is reached through `JDelete`. +- Performance shape: O(size of response tree), inherited from recursive/iterative JSON deletion. +- Portability/platform constraints: portable macro; allocator behavior remains behind note-c hooks. +- API boundary: gives response-cleanup call sites a public name distinct from general JSON deletion, but the implementation is exactly the JSON deleter. + +## Direct Call Sites + +Exact source search found the macro definition in `note.h` and response cleanup uses in `n_helpers.c`. Call sites occur in high-level helper APIs that obtain a `J *rsp` from `NoteRequestResponse`, extract values or branch on `NoteResponseError`, and then release the response: + +- Time/location/status helpers: `NoteTimeST`, `NoteLocationValidST`, `NoteGetLocation`, `NoteGetLocationMode`, `NoteGetStatusST` +- Environment/connectivity/service helpers: `NoteGetEnv`, `NoteIsConnectedST`, `NoteGetNetStatus`, `NoteGetVersion`, `NoteGetServiceConfigST` +- Sleep/payload helpers: `NotePayloadRetrieveAfterSleep` +- Routing and sensor helpers: `NoteSendToRoute`, `NoteGetVoltage`, `NoteGetTemperature`, `NoteGetContact` +- Debug sync helper: `NoteDebugSyncStatus` + +## Role In Callers + +The macro marks the point where helper APIs finish with a response document. Some callers delete immediately on error, some after copying fields into caller buffers or static cache state, and `NoteSendToRoute` deletes the response after detaching its `"body"` child for reuse in a follow-on request. + +## Tests Observed + +No dedicated direct test targets the macro alias. Focused helper tests indirectly exercise response deletion paths where helpers fake or receive `NoteRequestResponse` results. `JDelete` has the finalized source behavior for the actual tree release semantics. + +## Graph Links + +- Graph node id: `macro:note.h:486:NoteDeleteResponse` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L75__ERRSTR.md b/source-research/artifacts/macros/note_h__L75__ERRSTR.md new file mode 100644 index 00000000..730af224 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L75__ERRSTR.md @@ -0,0 +1,70 @@ +# `ERRSTR` + +## Status + +Finalized. Conditional macro definitions, compile-time variant behavior, and production call-site groups were inspected from source. + +## Identity + +- Kind: macro +- Definition: `note.h:75` +- Declaration/interface: public header macro included through `note.h`. +- Public/exported names: `ERRSTR`. +- Macro aliases/wrappers: conditional counterpart at `note.h:78`. +- Signature/API shape: `ERRSTR(x, y)` +- Visibility: available to all translation units including `note.h`; this node is the `NOTE_C_LOW_MEM` definition. +- Ownership/lifetime role: selects between existing string expressions; does not allocate or own memory. + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none. +- Data/type/global dependencies: depends on compile-time `NOTE_C_LOW_MEM`. +- Artifact coverage: paired normal-mode definition artifact exists at `artifacts/macros/note_h__L78__ERRSTR.md`. + +## Behavior + +Under `NOTE_C_LOW_MEM`, `ERRSTR(x, y)` expands to `(y)`, selecting compact constant strings such as `c_bad`, `c_err`, `c_mem`, or transport error constants. Without `NOTE_C_LOW_MEM`, the paired definition at `note.h:78` expands to `(x)`, selecting verbose string literals or dynamic string expressions. + +## Important Boundaries + +- Preconditions and assumptions: both arguments must be valid in the compiling context; only one is selected by preprocessing. +- Error/null/empty behavior: no runtime behavior; selected expression may be NULL only if caller passes NULL. +- Ownership and lifetime: no ownership changes; most uses select string literals or global constant strings. +- Concurrency/global state: no runtime state. +- Portability/platform constraints: compile-time low-memory variant; `NOTE_LOWMEM` also defines `NOTE_C_LOW_MEM`. +- Performance shape: compile-time selection, no runtime cost. +- Security or parsing constraints: low-memory builds intentionally lose verbose diagnostic detail. + +## Direct Call Sites + +Exact production search found `ERRSTR` used in request, serial, helper/binary, and I2C error/logging paths: + +- Definitions: `note.h:75`, `note.h:78`. +- Request path: `n_request.c:311`, `n_request.c:432`, `n_request.c:467`, `n_request.c:539`, `n_request.c:620`, `n_request.c:632`, `n_request.c:688`. +- Serial path: `n_serial.c:72`, `n_serial.c:87`, `n_serial.c:160`, `n_serial.c:206`, `n_serial.c:247`. +- Helper/binary path: `n_helpers.c:102`, `n_helpers.c:134`, `n_helpers.c:176`, `n_helpers.c:253`, `n_helpers.c:364`, `n_helpers.c:431`, `n_helpers.c:544`, `n_helpers.c:692`. +- I2C path: `n_i2c.c:63`, `n_i2c.c:119`, `n_i2c.c:207`, `n_i2c.c:413`, `n_i2c.c:432`. + +The exact search had high fanout; representative grouped locations above cover all production files containing the macro. + +## Role In Callers + +Callers use `ERRSTR` to compile either verbose diagnostics or compact global constants into logging and returned error values. This is a cross-cutting low-memory boundary rather than an independent runtime function. + +## Tests Observed + +None. Source definitions and call-site grouping were sufficient. + +## Graph Links + +- Graph node id: `macro:note.h:75:ERRSTR` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: none. +- Caller artifact candidates: high-fanout request, helper/binary, serial, and I2C error paths. +- Upstream public behavior candidates: most APIs that return `const char *` error strings or log transport/request failures. + +## Evidence Gaps + +No unresolved macro behavior. Individual high-fanout caller artifacts remain preliminary. diff --git a/source-research/artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md b/source-research/artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md new file mode 100644 index 00000000..333b1ef2 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md @@ -0,0 +1,54 @@ +# `NOTE_C_LOG_DEBUG` + +## Status + +Finalized. Source-inspected low-memory debug log no-op macro. + +## Identity + +- Kind: macro +- Definition: `note.h:76` +- Declaration/interface: low-memory conditional macro +- Signature/API shape: `NOTE_C_LOG_DEBUG(msg)` +- Visibility: public logging macro in `NOTE_C_LOW_MEM` builds +- Public/exported names: `NOTE_C_LOG_DEBUG` + +## Dependency Status + +- Project-local dependencies: none +- External/system dependencies: none +- Data/type/global dependencies: `NOTE_C_LOW_MEM` + +## Behavior + +When `NOTE_C_LOW_MEM` is defined, expands to an empty `do { } while (0)` block. + +## Important Boundaries + +- Preconditions and assumptions: message expression is not evaluated in this variant. +- Error/null/empty behavior: all debug log output is suppressed. +- Ownership and lifetime: no allocation. +- Concurrency/global state: no global state. +- Performance shape: O(1) no-op. +- Portability/platform constraints: selected by low-memory compile mode. + +## Direct Call Sites + +Exact source search found debug logging throughout request, helper, and hook code. + +## Role In Callers + +Low-memory transaction builds compile `_noteTransactionShouldLock` debug logs away through this macro. + +## Tests Observed + +Low-memory syntax checks and debug tests provide indirect evidence; normal debug behavior is covered by the non-low-memory macro artifact. + +## Graph Links + +- Graph node id: `macro:note.h:76:NOTE_C_LOG_DEBUG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L78__ERRSTR.md b/source-research/artifacts/macros/note_h__L78__ERRSTR.md new file mode 100644 index 00000000..1bf9b444 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L78__ERRSTR.md @@ -0,0 +1,70 @@ +# `ERRSTR` + +## Status + +Finalized. Conditional macro definitions, compile-time variant behavior, and production call-site groups were inspected from source. + +## Identity + +- Kind: macro +- Definition: `note.h:78` +- Declaration/interface: public header macro included through `note.h`. +- Public/exported names: `ERRSTR`. +- Macro aliases/wrappers: conditional counterpart at `note.h:75`. +- Signature/API shape: `ERRSTR(x, y)` +- Visibility: available to all translation units including `note.h`; this node is the normal non-low-memory definition. +- Ownership/lifetime role: selects between existing string expressions; does not allocate or own memory. + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: none. +- Data/type/global dependencies: depends on compile-time absence of `NOTE_C_LOW_MEM`. +- Artifact coverage: paired low-memory definition artifact exists at `artifacts/macros/note_h__L75__ERRSTR.md`. + +## Behavior + +Without `NOTE_C_LOW_MEM`, `ERRSTR(x, y)` expands to `(x)`, selecting verbose string literals or dynamic string expressions. Under `NOTE_C_LOW_MEM`, the paired definition at `note.h:75` expands to `(y)`, selecting compact constant strings such as `c_bad`, `c_err`, `c_mem`, or transport error constants. + +## Important Boundaries + +- Preconditions and assumptions: both arguments must be valid in the compiling context; only one is selected by preprocessing. +- Error/null/empty behavior: no runtime behavior; selected expression may be NULL only if caller passes NULL. +- Ownership and lifetime: no ownership changes; most uses select string literals or global constant strings. +- Concurrency/global state: no runtime state. +- Portability/platform constraints: compile-time low-memory variant; `NOTE_LOWMEM` also defines `NOTE_C_LOW_MEM`. +- Performance shape: compile-time selection, no runtime cost. +- Security or parsing constraints: normal builds retain verbose diagnostic strings and therefore larger string footprint. + +## Direct Call Sites + +Exact production search found `ERRSTR` used in request, serial, helper/binary, and I2C error/logging paths: + +- Definitions: `note.h:75`, `note.h:78`. +- Request path: `n_request.c:311`, `n_request.c:432`, `n_request.c:467`, `n_request.c:539`, `n_request.c:620`, `n_request.c:632`, `n_request.c:688`. +- Serial path: `n_serial.c:72`, `n_serial.c:87`, `n_serial.c:160`, `n_serial.c:206`, `n_serial.c:247`. +- Helper/binary path: `n_helpers.c:102`, `n_helpers.c:134`, `n_helpers.c:176`, `n_helpers.c:253`, `n_helpers.c:364`, `n_helpers.c:431`, `n_helpers.c:544`, `n_helpers.c:692`. +- I2C path: `n_i2c.c:63`, `n_i2c.c:119`, `n_i2c.c:207`, `n_i2c.c:413`, `n_i2c.c:432`. + +The exact search had high fanout; representative grouped locations above cover all production files containing the macro. + +## Role In Callers + +Callers use `ERRSTR` to compile either verbose diagnostics or compact global constants into logging and returned error values. This is a cross-cutting low-memory boundary rather than an independent runtime function. + +## Tests Observed + +None. Source definitions and call-site grouping were sufficient. + +## Graph Links + +- Graph node id: `macro:note.h:78:ERRSTR` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: none. +- Caller artifact candidates: high-fanout request, helper/binary, serial, and I2C error paths. +- Upstream public behavior candidates: most APIs that return `const char *` error strings or log transport/request failures. + +## Evidence Gaps + +No unresolved macro behavior. Individual high-fanout caller artifacts remain preliminary. diff --git a/source-research/artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md b/source-research/artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md new file mode 100644 index 00000000..23764089 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_ADDR_DEFAULT` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:829` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_ADDR_DEFAULT` +- Macro aliases/wrappers: literal `0x17`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the Notecard default I2C address. `NoteI2CAddress` returns it when runtime `i2cAddress` state is zero. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `NoteI2CAddress` in `n_hooks.c:969`; I2C transport calls receive the effective address through `_I2CAddress` alias to `NoteI2CAddress`. + +## Role In Callers + +Defines the default runtime address without forcing callers to configure one. + +## Tests Observed + +Focused `NoteI2CAddress_test.cpp` covers default and explicit address behavior. + +## Graph Links + +- Graph node id: `macro:note.h:829:NOTE_I2C_ADDR_DEFAULT` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `NoteI2CAddress`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md b/source-research/artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md new file mode 100644 index 00000000..7effe2a2 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_HEADER_SIZE` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:833` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_HEADER_SIZE` +- Macro aliases/wrappers: default literal `2` unless pre-defined. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the serial-to-I2C protocol header size used to compute the generic maximum MTU as `UCHAR_MAX - NOTE_I2C_HEADER_SIZE`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Referenced by the default `NOTE_I2C_MAX_MAX` branch at `note.h:845`. + +## Role In Callers + +Keeps the protocol header subtraction configurable for compile-time platform ports. + +## Tests Observed + +No focused test directly overrides this macro; I2C max tests cover default effective limits. + +## Graph Links + +- Graph node id: `macro:note.h:833:NOTE_I2C_HEADER_SIZE` +- Structured graph: `inventory/dependency-graph.json` +- Verified macro dependency edge to default `NOTE_I2C_MAX_MAX`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md b/source-research/artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md new file mode 100644 index 00000000..d2f9766f --- /dev/null +++ b/source-research/artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_MAX_MAX` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:843` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_MAX_MAX` +- Macro aliases/wrappers: compatibility branch `NOTE_I2C_MTU_MAX` when `NOTE_I2C_MTU_MAX` is pre-defined and `NOTE_I2C_MAX_MAX` is not. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Compile branch depends on a pre-defined `NOTE_I2C_MTU_MAX`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Mirrors the older/newer `NOTE_I2C_MTU_MAX` compile-time setting into `NOTE_I2C_MAX_MAX` for compatibility. This branch is mutually exclusive with the default `UCHAR_MAX - header` branch. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +No direct runtime source reference to this branch; it feeds the compatibility macro lattice used by `NOTE_I2C_MTU_MAX` and `NoteI2CMax`. + +## Role In Callers + +Maintains source compatibility for code defining either max macro name before including `note.h`. + +## Tests Observed + +Focused I2C max tests exercise effective MTU behavior, not compile-time branch injection. + +## Graph Links + +- Graph node id: `macro:note.h:843:NOTE_I2C_MAX_MAX` +- Structured graph: `inventory/dependency-graph.json` +- Recorded compatibility alias edge in the graph. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md b/source-research/artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md new file mode 100644 index 00000000..3b585b4e --- /dev/null +++ b/source-research/artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_MAX_MAX` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:845` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_MAX_MAX` +- Macro aliases/wrappers: default expression `(UCHAR_MAX - NOTE_I2C_HEADER_SIZE)`, normally `253`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Depends on `UCHAR_MAX` and `NOTE_I2C_HEADER_SIZE`. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Computes the generic maximum Notecard I2C payload size from the unsigned-char protocol byte range minus the serial-to-I2C header. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Referenced by `NOTE_I2C_MTU_MAX` default mirror and ultimately by `NoteI2CMax` clamp behavior. + +## Role In Callers + +Defines the portable upper bound for I2C chunking when no platform-specific maximum is supplied. + +## Tests Observed + +Focused `NoteI2CMax_test.cpp` and I2C chunk/reset tests cover the effective max behavior. + +## Graph Links + +- Graph node id: `macro:note.h:845:NOTE_I2C_MAX_MAX` +- Structured graph: `inventory/dependency-graph.json` +- Verified dependency edge to `NOTE_I2C_HEADER_SIZE`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md b/source-research/artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md new file mode 100644 index 00000000..933ca7f1 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_MTU_MAX` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:849` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_MTU_MAX` +- Macro aliases/wrappers: default mirror `NOTE_I2C_MAX_MAX` when not pre-defined. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Mirrors `NOTE_I2C_MAX_MAX` unless supplied externally. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the public MTU maximum macro consumed by `NoteI2CMax`. If runtime `i2cMax` exceeds it, `NoteI2CMax` clamps and writes back the clamped value. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `NoteI2CMax` in `n_hooks.c:1002`; I2C transport chunk sizes are capped via `_I2CMax()` alias calls. + +## Role In Callers + +Connects compile-time maximum configuration to runtime I2C receive/transmit chunk limits. + +## Tests Observed + +Focused `NoteI2CMax_test.cpp`, `_i2cChunkedReceive_test.cpp`, `_i2cChunkedTransmit_test.cpp`, and `_i2cNoteReset_test.cpp` cover effective limits. + +## Graph Links + +- Graph node id: `macro:note.h:849:NOTE_I2C_MTU_MAX` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `NoteI2CMax`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md b/source-research/artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md new file mode 100644 index 00000000..cb302a71 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_MAX_DEFAULT` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:866` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_MAX_DEFAULT` +- Macro aliases/wrappers: compatibility branch `NOTE_I2C_MTU_DEFAULT` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Mirrors a pre-defined `NOTE_I2C_MTU_DEFAULT` into `NOTE_I2C_MAX_DEFAULT` when the newer/default counterpart is supplied. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +No direct runtime reference to this branch name; `NOTE_I2C_MTU_DEFAULT` mirrors the selected branch and `NoteI2CMax` consumes that public MTU default. + +## Role In Callers + +Defines the compile-time default chunk size branch before runtime state can override it. + +## Tests Observed + +Focused I2C max/chunk tests cover default effective MTU behavior. + +## Graph Links + +- Graph node id: `macro:note.h:866:NOTE_I2C_MAX_DEFAULT` +- Structured graph: `inventory/dependency-graph.json` +- Recorded branch/default macro dependency edges in the graph. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md b/source-research/artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md new file mode 100644 index 00000000..6794dbce --- /dev/null +++ b/source-research/artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_MAX_DEFAULT` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:869` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_MAX_DEFAULT` +- Macro aliases/wrappers: STM32 branch `NOTE_I2C_MTU_MAX` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Uses the maximum MTU as the default on `ARDUINO_ARCH_STM32`, where the Wire implementation can dynamically allocate I/O buffers. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +No direct runtime reference to this branch name; `NOTE_I2C_MTU_DEFAULT` mirrors the selected branch and `NoteI2CMax` consumes that public MTU default. + +## Role In Callers + +Defines the compile-time default chunk size branch before runtime state can override it. + +## Tests Observed + +Focused I2C max/chunk tests cover default effective MTU behavior. + +## Graph Links + +- Graph node id: `macro:note.h:869:NOTE_I2C_MAX_DEFAULT` +- Structured graph: `inventory/dependency-graph.json` +- Recorded branch/default macro dependency edges in the graph. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md b/source-research/artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md new file mode 100644 index 00000000..6939aaee --- /dev/null +++ b/source-research/artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_MAX_DEFAULT` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:876` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_MAX_DEFAULT` +- Macro aliases/wrappers: default literal `30` +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, alias, attribute, or expression. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Uses a conservative default chunk size for broad Arduino compatibility with 32-byte I2C buffers and the 2-byte protocol header. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +No direct runtime reference to this branch name; `NOTE_I2C_MTU_DEFAULT` mirrors the selected branch and `NoteI2CMax` consumes that public MTU default. + +## Role In Callers + +Defines the compile-time default chunk size branch before runtime state can override it. + +## Tests Observed + +Focused I2C max/chunk tests cover default effective MTU behavior. + +## Graph Links + +- Graph node id: `macro:note.h:876:NOTE_I2C_MAX_DEFAULT` +- Structured graph: `inventory/dependency-graph.json` +- Recorded branch/default macro dependency edges in the graph. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md b/source-research/artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md new file mode 100644 index 00000000..5bcf2de8 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md @@ -0,0 +1,55 @@ +# `NOTE_I2C_MTU_DEFAULT` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:880` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_I2C_MTU_DEFAULT` +- Macro aliases/wrappers: mirror `NOTE_I2C_MAX_DEFAULT` when not pre-defined. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Mirrors the selected `NOTE_I2C_MAX_DEFAULT` branch. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Provides the public MTU default consumed by `NoteI2CMax` when runtime `i2cMax` is zero. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `NoteI2CMax` in `n_hooks.c:997`; I2C transport chunking sees it through `_I2CMax()`. + +## Role In Callers + +Connects compile-time default MTU policy to runtime I2C chunk sizes. + +## Tests Observed + +Focused `NoteI2CMax_test.cpp` and I2C chunk/reset tests cover default MTU behavior. + +## Graph Links + +- Graph node id: `macro:note.h:880:NOTE_I2C_MTU_DEFAULT` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edge to `NoteI2CMax`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L94__JINTEGER_MIN.md b/source-research/artifacts/macros/note_h__L94__JINTEGER_MIN.md new file mode 100644 index 00000000..23d8b34e --- /dev/null +++ b/source-research/artifacts/macros/note_h__L94__JINTEGER_MIN.md @@ -0,0 +1,55 @@ +# `JINTEGER_MIN` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:94` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `JINTEGER_MIN` +- Macro aliases/wrappers: alias to `INT64_MIN`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Aliases standard integer limit macro from ``/`` family. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Bounds the signed 64-bit `JINTEGER` range. cJSON number parsing and creation saturate `valueint` to this bound when the parsed/created `JNUMBER` exceeds the signed integer range. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `_parse_number`, `JSetNumberHelper`, and `JCreateNumber`; `JINTEGER_MIN` is also used by `JItoA` to avoid signed overflow when converting the minimum value. + +## Role In Callers + +Preserves predictable integer saturation while JSON numbers remain represented as `JNUMBER` for numeric value. + +## Tests Observed + +Focused `JItoA_test.cpp` and `JSON_number_handling_test.cpp` cover min/max conversion and saturation behavior. + +## Graph Links + +- Graph node id: `macro:note.h:94:JINTEGER_MIN` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to cJSON number paths. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md b/source-research/artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md new file mode 100644 index 00000000..9976f1d7 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md @@ -0,0 +1,55 @@ +# `NOTE_C_LOG_LEVEL_ERROR` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:953` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_LOG_LEVEL_ERROR` +- Macro aliases/wrappers: literal `0`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines an ordered debug/log severity level. `NoteDebugWithLevel` and `NoteDebugWithLevelLn` return early when the message level is greater than runtime `noteLogLevel`. Used by `NOTE_C_LOG_ERROR` and direct `_DebugWithLevel` calls in request error paths. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used in logging wrapper macros in `note.h:990-1017`; `NOTE_C_LOG_LEVEL_ERROR` is also used directly in `_errDoc` and `_noteTransactionShouldLock` error logging. + +## Role In Callers + +Provides stable numeric severity ordering for compile-time logging macros and runtime filtering. + +## Tests Observed + +Focused debug/error tests assert error-level logging calls. + +## Graph Links + +- Graph node id: `macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from logging wrappers and direct users where present. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md b/source-research/artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md new file mode 100644 index 00000000..4dbeda6c --- /dev/null +++ b/source-research/artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md @@ -0,0 +1,55 @@ +# `NOTE_C_LOG_LEVEL_WARN` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:954` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_LOG_LEVEL_WARN` +- Macro aliases/wrappers: literal `1`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines an ordered debug/log severity level. `NoteDebugWithLevel` and `NoteDebugWithLevelLn` return early when the message level is greater than runtime `noteLogLevel`. Used by `NOTE_C_LOG_WARN` and runtime log-level tests. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used in logging wrapper macros in `note.h:990-1017`; `NOTE_C_LOG_LEVEL_ERROR` is also used directly in `_errDoc` and `_noteTransactionShouldLock` error logging. + +## Role In Callers + +Provides stable numeric severity ordering for compile-time logging macros and runtime filtering. + +## Tests Observed + +Focused `NoteSetLogLevel_test.cpp` changes runtime level to WARN. + +## Graph Links + +- Graph node id: `macro:note.h:954:NOTE_C_LOG_LEVEL_WARN` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from logging wrappers and direct users where present. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md b/source-research/artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md new file mode 100644 index 00000000..881075d2 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md @@ -0,0 +1,55 @@ +# `NOTE_C_LOG_LEVEL_INFO` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:955` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_LOG_LEVEL_INFO` +- Macro aliases/wrappers: literal `2`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines an ordered debug/log severity level. `NoteDebugWithLevel` and `NoteDebugWithLevelLn` return early when the message level is greater than runtime `noteLogLevel`. Used by `NOTE_C_LOG_INFO` and `NOTE_C_LOG_LEVEL_DEFAULT`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used in logging wrapper macros in `note.h:990-1017`; `NOTE_C_LOG_LEVEL_ERROR` is also used directly in `_errDoc` and `_noteTransactionShouldLock` error logging. + +## Role In Callers + +Provides stable numeric severity ordering for compile-time logging macros and runtime filtering. + +## Tests Observed + +Focused debug tests cover default INFO ceiling suppressing DEBUG. + +## Graph Links + +- Graph node id: `macro:note.h:955:NOTE_C_LOG_LEVEL_INFO` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from logging wrappers and direct users where present. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md b/source-research/artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md new file mode 100644 index 00000000..b82b2634 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md @@ -0,0 +1,55 @@ +# `NOTE_C_LOG_LEVEL_DEBUG` + +## Status + +Finalized. Source-inspected definition, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:956` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_LOG_LEVEL_DEBUG` +- Macro aliases/wrappers: literal `3`. +- Signature/API shape: preprocessor literal or expression macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: No project-local callees; macro expands to a literal, field access, or wrapper expression. +- External/system dependencies: none. +- Data/type/global dependencies: caller-owned inputs and direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines an ordered debug/log severity level. `NoteDebugWithLevel` and `NoteDebugWithLevelLn` return early when the message level is greater than runtime `noteLogLevel`. Used by `NOTE_C_LOG_DEBUG`. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers can use this value/expression wherever `note.h` is included. +- Exact source search distinguishes macro use from related literal or function use. + +## Direct Call Sites + +Used in logging wrapper macros in `note.h:990-1017`; `NOTE_C_LOG_LEVEL_ERROR` is also used directly in `_errDoc` and `_noteTransactionShouldLock` error logging. + +## Role In Callers + +Provides stable numeric severity ordering for compile-time logging macros and runtime filtering. + +## Tests Observed + +Focused debug tests cover default DEBUG suppression. + +## Graph Links + +- Graph node id: `macro:note.h:956:NOTE_C_LOG_LEVEL_DEBUG` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges from logging wrappers and direct users where present. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L95__JINTEGER_MAX.md b/source-research/artifacts/macros/note_h__L95__JINTEGER_MAX.md new file mode 100644 index 00000000..1a46df1c --- /dev/null +++ b/source-research/artifacts/macros/note_h__L95__JINTEGER_MAX.md @@ -0,0 +1,55 @@ +# `JINTEGER_MAX` + +## Status + +Finalized. Source-inspected definition, branch behavior, direct references, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:95` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `JINTEGER_MAX` +- Macro aliases/wrappers: alias to `INT64_MAX`. +- Signature/API shape: preprocessor literal, alias, expression, attribute, or wrapper macro +- Visibility: public to translation units including `note.h`. +- Ownership/lifetime role: no ownership; compile-time substitution only. + +## Dependency Status + +- Project-local dependencies: Aliases standard integer limit macro from ``/`` family. +- External/system dependencies: C compiler/preprocessor branch or standard integer/limit macros where noted. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Bounds the signed 64-bit `JINTEGER` range. cJSON number parsing and creation saturate `valueint` to this bound when the parsed/created `JNUMBER` exceeds the signed integer range. + +## Important Boundaries + +- Compile-time macro; no runtime storage or ownership. +- Public header consumers see this value when including `note.h`. +- Branch behavior depends on preprocessor configuration where noted. + +## Direct Call Sites + +Used by `_parse_number`, `JSetNumberHelper`, and `JCreateNumber`; `JINTEGER_MIN` is also used by `JItoA` to avoid signed overflow when converting the minimum value. + +## Role In Callers + +Preserves predictable integer saturation while JSON numbers remain represented as `JNUMBER` for numeric value. + +## Tests Observed + +Focused `JItoA_test.cpp` and `JSON_number_handling_test.cpp` cover min/max conversion and saturation behavior. + +## Graph Links + +- Graph node id: `macro:note.h:95:JINTEGER_MAX` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_constant` edges to cJSON number paths. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md b/source-research/artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md new file mode 100644 index 00000000..e20a6a7e --- /dev/null +++ b/source-research/artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md @@ -0,0 +1,55 @@ +# `NOTE_C_LOG_FILE_AND_LINE` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: macro +- Definition: `note.h:982` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `NOTE_C_LOG_FILE_AND_LINE` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: debug logging macro with `lvl` parameter +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Depends on `NOTE_C_STRINGIZE` and `NoteDebugWithLevel` in the enabled branch. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +When `NOTE_C_LOG_SHOW_FILE_AND_LINE` is enabled, emits `__FILE__`, a stringized `__LINE__`, and a space through `NoteDebugWithLevel`; otherwise expands to an empty macro. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `NOTE_C_LOG_ERROR`, `NOTE_C_LOG_WARN`, `NOTE_C_LOG_INFO`, and `NOTE_C_LOG_DEBUG` wrappers. + +## Role In Callers + +Adds optional source-location prefixing to log output without changing log-level filtering. + +## Tests Observed + +Focused debug tests cover log-level filtering but do not enable file/line prefixing. + +## Graph Links + +- Graph node id: `macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE` +- Structured graph: `inventory/dependency-graph.json` +- Verified edges to `NOTE_C_STRINGIZE`, `NoteDebugWithLevel`, and log wrapper macro users. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md b/source-research/artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md new file mode 100644 index 00000000..41e695fb --- /dev/null +++ b/source-research/artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md @@ -0,0 +1,76 @@ +# `NOTE_C_LOG_ERROR` + +## Status + +Finalized. Macro definition, expansion behavior, debug-output callees, and production call-site groups were inspected from source. + +## Identity + +- Kind: macro +- Definition: `note.h:990` +- Declaration/interface: public header macro in `note.h`. +- Public/exported names: `NOTE_C_LOG_ERROR`, unless a consumer predefines it before this header section. +- Macro aliases/wrappers: optionally invokes `NOTE_C_LOG_FILE_AND_LINE`. +- Signature/API shape: `NOTE_C_LOG_ERROR(msg)` +- Visibility: available to translation units including `note.h`. +- Ownership/lifetime role: logs caller-provided message; does not allocate or own memory. + +## Dependency Status + +- Project-local dependencies: +- `macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE` when `NOTE_C_LOG_SHOW_FILE_AND_LINE` is enabled. +- `function:n_hooks.c:485:NoteDebugWithLevel`. +- `function:n_hooks.c:499:NoteDebugWithLevelLn`. +- External/system dependencies: none directly. +- Data/type/global dependencies: log-level constants, debug hook state through the debug functions. +- Artifact coverage: generated graph originally missed macro-expansion callees; source-inspected edges are recorded in `inventory/dependency-graph.json`. + +## Behavior + +Unless already defined by a consumer, `NOTE_C_LOG_ERROR(msg)` expands to a `do { ... } while (0)` block: + +1. Optionally emits file and line through `NOTE_C_LOG_FILE_AND_LINE(NOTE_C_LOG_LEVEL_ERROR)`. +2. Calls `NoteDebugWithLevel(NOTE_C_LOG_LEVEL_ERROR, "[ERROR] ")`. +3. Calls `NoteDebugWithLevelLn(NOTE_C_LOG_LEVEL_ERROR, msg)`. + +The debug functions then enforce the configured log level and eventually dispatch to the registered debug-output hook when debugging is enabled. + +## Important Boundaries + +- Preconditions and assumptions: `msg` should be valid for the debug-output hook; debug functions tolerate disabled debug output. +- Error/null/empty behavior: no error return; logging can be dropped by log level or absent debug hook. +- Ownership and lifetime: no ownership transfer. +- Concurrency/global state: depends on global log level and debug-output hook. +- Portability/platform constraints: consumer can override the macro by defining `NOTE_C_LOG_ERROR` before this definition. +- Performance shape: compile-time macro plus two debug calls, plus optional file/line call. +- Security or parsing constraints: may emit file paths and line numbers when `NOTE_C_LOG_SHOW_FILE_AND_LINE` is enabled. + +## Direct Call Sites + +Exact production search found high-fanout error logging in: + +- Definition: `note.h:990`. +- Request path: `n_request.c:71`, `n_request.c:311`, `n_request.c:432`, `n_request.c:453`, `n_request.c:469`, `n_request.c:681`. +- Serial path: `n_serial.c:50`, `n_serial.c:88`, `n_serial.c:160`, `n_serial.c:206`, `n_serial.c:247`. +- Helper/binary path: `n_helpers.c:102`, `n_helpers.c:134`, `n_helpers.c:176`, `n_helpers.c:254`, `n_helpers.c:365`, `n_helpers.c:437`, `n_helpers.c:545`, `n_helpers.c:699`, `n_helpers.c:1790`. +- I2C path: `n_i2c.c:57`, `n_i2c.c:119`, `n_i2c.c:207`, `n_i2c.c:295`, `n_i2c.c:430`, `n_i2c.c:495`. + +## Role In Callers + +Callers use this macro for cross-cutting request, transport, and helper error diagnostics. The macro itself only emits diagnostics; it does not alter caller control flow except by evaluating `msg`. + +## Tests Observed + +None. Source definition and call-site grouping were sufficient. + +## Graph Links + +- Graph node id: `macro:note.h:990:NOTE_C_LOG_ERROR` +- Structured graph: `inventory/dependency-graph.json` +- Callee artifacts: `artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md`, `artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md`, `artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md`. +- Caller artifact candidates: high-fanout request, helper/binary, serial, and I2C error paths. +- Upstream public behavior candidates: most APIs that log request/transport/helper failures. + +## Evidence Gaps + +No unresolved macro expansion behavior. Individual debug function artifacts and high-fanout caller artifacts remain preliminary. diff --git a/source-research/artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md b/source-research/artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md new file mode 100644 index 00000000..2ff3c525 --- /dev/null +++ b/source-research/artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md @@ -0,0 +1,56 @@ +# `NOTE_C_LOG_WARN` + +## Status + +Finalized. Source-inspected warn-level logging macro. + +## Identity + +- Kind: macro +- Definition: `note.h:998` +- Declaration/interface: public logging macro unless overridden +- Signature/API shape: `NOTE_C_LOG_WARN(msg)` +- Visibility: public logging macro +- Public/exported names: `NOTE_C_LOG_WARN` + +## Dependency Status + +- Project-local dependencies: + - `function:n_hooks.c:485:NoteDebugWithLevel` finalized + - `function:n_hooks.c:499:NoteDebugWithLevelLn` finalized +- External/system dependencies: none +- Data/type/global dependencies: optional `NOTE_C_LOG_FILE_AND_LINE` + +## Behavior + +Emits optional file/line prefix, then writes `[WARN] ` and the message plus newline at `NOTE_C_LOG_LEVEL_WARN`. + +## Important Boundaries + +- Preconditions and assumptions: message pointer is forwarded to debug output. +- Error/null/empty behavior: runtime log level may drop the output. +- Ownership and lifetime: no allocation. +- Concurrency/global state: follows debug hook and log-level state. +- Performance shape: bounded macro expansion plus debug hook calls. +- Portability/platform constraints: file/line prefix depends on `NOTE_C_LOG_SHOW_FILE_AND_LINE`. + +## Direct Call Sites + +Exact source search found transaction retry paths and helper warnings use this macro. + +## Role In Callers + +`_noteTransactionShouldLock` uses warning logs before retrying transaction, no-response, CRC, and corrupt-response paths. + +## Tests Observed + +`NoteDebug_test.cpp` and transaction retry tests exercise log output indirectly. + +## Graph Links + +- Graph node id: `macro:note.h:998:NOTE_C_LOG_WARN` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L15__TINY_SIZE.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L15__TINY_SIZE.md new file mode 100644 index 00000000..cfba7d1a --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L15__TINY_SIZE.md @@ -0,0 +1,59 @@ +# `TINY_SIZE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:15` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTINY_SIZE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:15:TINY_SIZE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L16__TINY_SIZE_NAME.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L16__TINY_SIZE_NAME.md new file mode 100644 index 00000000..9aa15549 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L16__TINY_SIZE_NAME.md @@ -0,0 +1,59 @@ +# `TINY_SIZE_NAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:16` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTINY_SIZE_NAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:16:TINY_SIZE_NAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L17__SMALL_SIZE.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L17__SMALL_SIZE.md new file mode 100644 index 00000000..401748e2 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L17__SMALL_SIZE.md @@ -0,0 +1,59 @@ +# `SMALL_SIZE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:17` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSMALL_SIZE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:17:SMALL_SIZE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L18__SMALL_SIZE_NAME.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L18__SMALL_SIZE_NAME.md new file mode 100644 index 00000000..f91def9d --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L18__SMALL_SIZE_NAME.md @@ -0,0 +1,59 @@ +# `SMALL_SIZE_NAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:18` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSMALL_SIZE_NAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:18:SMALL_SIZE_NAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L19__MEDIUM_SIZE.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L19__MEDIUM_SIZE.md new file mode 100644 index 00000000..2d618538 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L19__MEDIUM_SIZE.md @@ -0,0 +1,59 @@ +# `MEDIUM_SIZE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:19` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bMEDIUM_SIZE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:19:MEDIUM_SIZE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L20__MEDIUM_SIZE_NAME.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L20__MEDIUM_SIZE_NAME.md new file mode 100644 index 00000000..83815e9e --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L20__MEDIUM_SIZE_NAME.md @@ -0,0 +1,59 @@ +# `MEDIUM_SIZE_NAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:20` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bMEDIUM_SIZE_NAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:20:MEDIUM_SIZE_NAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L21__LARGE_SIZE.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L21__LARGE_SIZE.md new file mode 100644 index 00000000..4d105ca3 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L21__LARGE_SIZE.md @@ -0,0 +1,59 @@ +# `LARGE_SIZE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:21` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bLARGE_SIZE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:21:LARGE_SIZE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L22__LARGE_SIZE_NAME.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L22__LARGE_SIZE_NAME.md new file mode 100644 index 00000000..f1e1591e --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L22__LARGE_SIZE_NAME.md @@ -0,0 +1,59 @@ +# `LARGE_SIZE_NAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:22` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bLARGE_SIZE_NAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:22:LARGE_SIZE_NAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L23__XLARGE_SIZE.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L23__XLARGE_SIZE.md new file mode 100644 index 00000000..e35f2bdb --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L23__XLARGE_SIZE.md @@ -0,0 +1,59 @@ +# `XLARGE_SIZE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:23` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bXLARGE_SIZE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:23:XLARGE_SIZE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L24__XLARGE_SIZE_NAME.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L24__XLARGE_SIZE_NAME.md new file mode 100644 index 00000000..c0949b39 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L24__XLARGE_SIZE_NAME.md @@ -0,0 +1,59 @@ +# `XLARGE_SIZE_NAME` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:24` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bXLARGE_SIZE_NAME\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:24:XLARGE_SIZE_NAME` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L320__PRODUCT_UID.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L320__PRODUCT_UID.md new file mode 100644 index 00000000..c5b6d9c7 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L320__PRODUCT_UID.md @@ -0,0 +1,59 @@ +# `PRODUCT_UID` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:320` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPRODUCT_UID\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:320:PRODUCT_UID` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L325__PRODUCT_UID.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L325__PRODUCT_UID.md new file mode 100644 index 00000000..216c5b78 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L325__PRODUCT_UID.md @@ -0,0 +1,59 @@ +# `PRODUCT_UID` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:325` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPRODUCT_UID\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:325:PRODUCT_UID` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L785__NOT_CONNECTED_TIMEOUT.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L785__NOT_CONNECTED_TIMEOUT.md new file mode 100644 index 00000000..6f0d036a --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L785__NOT_CONNECTED_TIMEOUT.md @@ -0,0 +1,59 @@ +# `NOT_CONNECTED_TIMEOUT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:785` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNOT_CONNECTED_TIMEOUT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:785:NOT_CONNECTED_TIMEOUT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L789__MIME_APPLICATION_OCTETSTREAM.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L789__MIME_APPLICATION_OCTETSTREAM.md new file mode 100644 index 00000000..3fda72ca --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L789__MIME_APPLICATION_OCTETSTREAM.md @@ -0,0 +1,59 @@ +# `MIME_APPLICATION_OCTETSTREAM` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:789` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bMIME_APPLICATION_OCTETSTREAM\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:789:MIME_APPLICATION_OCTETSTREAM` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L8__FEATHER_AUX_EN_PIN.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L8__FEATHER_AUX_EN_PIN.md new file mode 100644 index 00000000..091b5611 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L8__FEATHER_AUX_EN_PIN.md @@ -0,0 +1,59 @@ +# `FEATHER_AUX_EN_PIN` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:8` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFEATHER_AUX_EN_PIN\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp:8:FEATHER_AUX_EN_PIN` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L13__NOTECARD_IF_SERIAL_PORT.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L13__NOTECARD_IF_SERIAL_PORT.md new file mode 100644 index 00000000..a20d9269 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L13__NOTECARD_IF_SERIAL_PORT.md @@ -0,0 +1,59 @@ +# `NOTECARD_IF_SERIAL_PORT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:13` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNOTECARD_IF_SERIAL_PORT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:13:NOTECARD_IF_SERIAL_PORT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L17__NOTECARD_IF_SERIAL_BAUDRATE.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L17__NOTECARD_IF_SERIAL_BAUDRATE.md new file mode 100644 index 00000000..a51929f3 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L17__NOTECARD_IF_SERIAL_BAUDRATE.md @@ -0,0 +1,59 @@ +# `NOTECARD_IF_SERIAL_BAUDRATE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:17` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNOTECARD_IF_SERIAL_BAUDRATE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:17:NOTECARD_IF_SERIAL_BAUDRATE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L21__NOTECARD_IF_AUX_SERIAL_PORT.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L21__NOTECARD_IF_AUX_SERIAL_PORT.md new file mode 100644 index 00000000..bc17210d --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L21__NOTECARD_IF_AUX_SERIAL_PORT.md @@ -0,0 +1,59 @@ +# `NOTECARD_IF_AUX_SERIAL_PORT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:21` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNOTECARD_IF_AUX_SERIAL_PORT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:21:NOTECARD_IF_AUX_SERIAL_PORT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L25__NOTECARD_IF_AUX_SERIAL_BAUDRATE.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L25__NOTECARD_IF_AUX_SERIAL_BAUDRATE.md new file mode 100644 index 00000000..e58490a9 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L25__NOTECARD_IF_AUX_SERIAL_BAUDRATE.md @@ -0,0 +1,59 @@ +# `NOTECARD_IF_AUX_SERIAL_BAUDRATE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:25` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNOTECARD_IF_AUX_SERIAL_BAUDRATE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:25:NOTECARD_IF_AUX_SERIAL_BAUDRATE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L29__NOTECARD_IF_I2C_ADDRESS.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L29__NOTECARD_IF_I2C_ADDRESS.md new file mode 100644 index 00000000..bde22f0f --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L29__NOTECARD_IF_I2C_ADDRESS.md @@ -0,0 +1,59 @@ +# `NOTECARD_IF_I2C_ADDRESS` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:29` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:note.h:829:NOTE_I2C_ADDR_DEFAULT` (expands_to, medium, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNOTECARD_IF_I2C_ADDRESS\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:29:NOTECARD_IF_I2C_ADDRESS` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L34__dbgSerial.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L34__dbgSerial.md new file mode 100644 index 00000000..c2423b5a --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L34__dbgSerial.md @@ -0,0 +1,59 @@ +# `dbgSerial` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:34` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdbgSerial\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:34:dbgSerial` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L36__dbgSerial.md b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L36__dbgSerial.md new file mode 100644 index 00000000..683f8df5 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L36__dbgSerial.md @@ -0,0 +1,59 @@ +# `dbgSerial` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:36` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bdbgSerial\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:36:dbgSerial` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L15__NOTEHUB_PROXY_ROUTE_ALIAS.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L15__NOTEHUB_PROXY_ROUTE_ALIAS.md new file mode 100644 index 00000000..a793f177 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L15__NOTEHUB_PROXY_ROUTE_ALIAS.md @@ -0,0 +1,59 @@ +# `NOTEHUB_PROXY_ROUTE_ALIAS` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:15` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNOTEHUB_PROXY_ROUTE_ALIAS\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:15:NOTEHUB_PROXY_ROUTE_ALIAS` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L216__RUN_SIZE.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L216__RUN_SIZE.md new file mode 100644 index 00000000..e7e14c20 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L216__RUN_SIZE.md @@ -0,0 +1,59 @@ +# `RUN_SIZE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:216` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_SIZE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:216:RUN_SIZE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L227__RUN_ALL_SIZES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L227__RUN_ALL_SIZES.md new file mode 100644 index 00000000..c36ba08b --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L227__RUN_ALL_SIZES.md @@ -0,0 +1,59 @@ +# `RUN_ALL_SIZES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:227` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_ALL_SIZES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:227:RUN_ALL_SIZES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L236__RUN_ALL_SIZES_ALL_IFACES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L236__RUN_ALL_SIZES_ALL_IFACES.md new file mode 100644 index 00000000..53d30e63 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L236__RUN_ALL_SIZES_ALL_IFACES.md @@ -0,0 +1,59 @@ +# `RUN_ALL_SIZES_ALL_IFACES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:236` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_ALL_SIZES_ALL_IFACES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:236:RUN_ALL_SIZES_ALL_IFACES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L242__RUN_AUX_SERIAL_BAUDRATE_CHUNK.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L242__RUN_AUX_SERIAL_BAUDRATE_CHUNK.md new file mode 100644 index 00000000..6657835c --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L242__RUN_AUX_SERIAL_BAUDRATE_CHUNK.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_BAUDRATE_CHUNK` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:242` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_BAUDRATE_CHUNK\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:242:RUN_AUX_SERIAL_BAUDRATE_CHUNK` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L250__RUN_AUX_SERIAL_BAUDRATE.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L250__RUN_AUX_SERIAL_BAUDRATE.md new file mode 100644 index 00000000..9620dcfc --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L250__RUN_AUX_SERIAL_BAUDRATE.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_BAUDRATE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:250` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_BAUDRATE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:250:RUN_AUX_SERIAL_BAUDRATE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L258__RUN_AUX_SERIAL_ALL_CHUNK_SIZES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L258__RUN_AUX_SERIAL_ALL_CHUNK_SIZES.md new file mode 100644 index 00000000..f799a98d --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L258__RUN_AUX_SERIAL_ALL_CHUNK_SIZES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_ALL_CHUNK_SIZES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:258` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_ALL_CHUNK_SIZES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:258:RUN_AUX_SERIAL_ALL_CHUNK_SIZES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L265__RUN_AUX_SERIAL_SELECT_CHUNK_SIZES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L265__RUN_AUX_SERIAL_SELECT_CHUNK_SIZES.md new file mode 100644 index 00000000..22c6f456 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L265__RUN_AUX_SERIAL_SELECT_CHUNK_SIZES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_SELECT_CHUNK_SIZES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:265` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_SELECT_CHUNK_SIZES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:265:RUN_AUX_SERIAL_SELECT_CHUNK_SIZES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L271__RUN_AUX_SERIAL_ALL_BAUDRATES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L271__RUN_AUX_SERIAL_ALL_BAUDRATES.md new file mode 100644 index 00000000..0f09a8fa --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L271__RUN_AUX_SERIAL_ALL_BAUDRATES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_ALL_BAUDRATES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:271` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_ALL_BAUDRATES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:271:RUN_AUX_SERIAL_ALL_BAUDRATES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L279__RUN_AUX_SERIAL_SELECT_BAUDRATES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L279__RUN_AUX_SERIAL_SELECT_BAUDRATES.md new file mode 100644 index 00000000..4492bde7 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L279__RUN_AUX_SERIAL_SELECT_BAUDRATES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_SELECT_BAUDRATES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:279` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_SELECT_BAUDRATES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:279:RUN_AUX_SERIAL_SELECT_BAUDRATES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L27__TEST_CARD_BINARY_FILTER.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L27__TEST_CARD_BINARY_FILTER.md new file mode 100644 index 00000000..e61b9604 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L27__TEST_CARD_BINARY_FILTER.md @@ -0,0 +1,59 @@ +# `TEST_CARD_BINARY_FILTER` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:27` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST_CARD_BINARY_FILTER\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:27:TEST_CARD_BINARY_FILTER` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L285__TEST_AUX_SERIAL_EXHAUSTIVELY.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L285__TEST_AUX_SERIAL_EXHAUSTIVELY.md new file mode 100644 index 00000000..4297deb2 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L285__TEST_AUX_SERIAL_EXHAUSTIVELY.md @@ -0,0 +1,59 @@ +# `TEST_AUX_SERIAL_EXHAUSTIVELY` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:285` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/hitl/card.binary/test/test_card_binary.cpp:8:TEST_CARD_BINARY_EXHAUSTIVELY` (expands_to, medium, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST_AUX_SERIAL_EXHAUSTIVELY\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:285:TEST_AUX_SERIAL_EXHAUSTIVELY` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L289__RUN_AUX_SERIAL_BAUDRATES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L289__RUN_AUX_SERIAL_BAUDRATES.md new file mode 100644 index 00000000..c2e8181e --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L289__RUN_AUX_SERIAL_BAUDRATES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_BAUDRATES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:289` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/hitl/card.binary/test/test_card_binary.cpp:279:RUN_AUX_SERIAL_SELECT_BAUDRATES` (expands_to, medium, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_BAUDRATES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:289:RUN_AUX_SERIAL_BAUDRATES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L291__RUN_AUX_SERIAL_BAUDRATES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L291__RUN_AUX_SERIAL_BAUDRATES.md new file mode 100644 index 00000000..d10e5c18 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L291__RUN_AUX_SERIAL_BAUDRATES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_BAUDRATES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:291` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- `macro:test/hitl/card.binary/test/test_card_binary.cpp:271:RUN_AUX_SERIAL_ALL_BAUDRATES` (expands_to, medium, verified=False) +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_BAUDRATES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:291:RUN_AUX_SERIAL_BAUDRATES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L298__RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L298__RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES.md new file mode 100644 index 00000000..614749ae --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L298__RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:298` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:298:RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L404__RUN_AUX_SERIAL_ALL_SIZES.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L404__RUN_AUX_SERIAL_ALL_SIZES.md new file mode 100644 index 00000000..d0ecc92a --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L404__RUN_AUX_SERIAL_ALL_SIZES.md @@ -0,0 +1,59 @@ +# `RUN_AUX_SERIAL_ALL_SIZES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:404` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_AUX_SERIAL_ALL_SIZES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:404:RUN_AUX_SERIAL_ALL_SIZES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L416__RUN_SMOKE_TESTS.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L416__RUN_SMOKE_TESTS.md new file mode 100644 index 00000000..2e24d987 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L416__RUN_SMOKE_TESTS.md @@ -0,0 +1,59 @@ +# `RUN_SMOKE_TESTS` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:416` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_SMOKE_TESTS\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:416:RUN_SMOKE_TESTS` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L8__TEST_CARD_BINARY_EXHAUSTIVELY.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L8__TEST_CARD_BINARY_EXHAUSTIVELY.md new file mode 100644 index 00000000..112c4c94 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L8__TEST_CARD_BINARY_EXHAUSTIVELY.md @@ -0,0 +1,59 @@ +# `TEST_CARD_BINARY_EXHAUSTIVELY` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:8` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST_CARD_BINARY_EXHAUSTIVELY\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_card_binary.cpp:8:TEST_CARD_BINARY_EXHAUSTIVELY` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L11__TEST.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L11__TEST.md new file mode 100644 index 00000000..8cacb5c2 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L11__TEST.md @@ -0,0 +1,59 @@ +# `TEST` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_unity_util.h:11` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_unity_util.h:11:TEST` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L19__TEST_SUITE.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L19__TEST_SUITE.md new file mode 100644 index 00000000..86523299 --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L19__TEST_SUITE.md @@ -0,0 +1,59 @@ +# `TEST_SUITE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_unity_util.h:19` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTEST_SUITE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_unity_util.h:19:TEST_SUITE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L29__RUN_FILTER.md b/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L29__RUN_FILTER.md new file mode 100644 index 00000000..51a44d9c --- /dev/null +++ b/source-research/artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L29__RUN_FILTER.md @@ -0,0 +1,59 @@ +# `RUN_FILTER` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/hitl/card.binary/test/test_unity_util.h:29` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRUN_FILTER\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/hitl/card.binary/test/test_unity_util.h:29:RUN_FILTER` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1011__DEFINE_FAKE_VOID_FUNC14.md b/source-research/artifacts/macros/test_include_fff_h__L1011__DEFINE_FAKE_VOID_FUNC14.md new file mode 100644 index 00000000..db3b9e4e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1011__DEFINE_FAKE_VOID_FUNC14.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC14` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1011` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC14\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1011:DEFINE_FAKE_VOID_FUNC14` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L101__RETURN_FAKE_RESULT.md b/source-research/artifacts/macros/test_include_fff_h__L101__RETURN_FAKE_RESULT.md new file mode 100644 index 00000000..5cf37923 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L101__RETURN_FAKE_RESULT.md @@ -0,0 +1,59 @@ +# `RETURN_FAKE_RESULT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:101` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRETURN_FAKE_RESULT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:101:RETURN_FAKE_RESULT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1063__FAKE_VOID_FUNC14.md b/source-research/artifacts/macros/test_include_fff_h__L1063__FAKE_VOID_FUNC14.md new file mode 100644 index 00000000..1262021b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1063__FAKE_VOID_FUNC14.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC14` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1063` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC14\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1063:FAKE_VOID_FUNC14` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1068__DECLARE_FAKE_VOID_FUNC15.md b/source-research/artifacts/macros/test_include_fff_h__L1068__DECLARE_FAKE_VOID_FUNC15.md new file mode 100644 index 00000000..7fc9c63f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1068__DECLARE_FAKE_VOID_FUNC15.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC15` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1068` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC15\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1068:DECLARE_FAKE_VOID_FUNC15` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1094__DEFINE_FAKE_VOID_FUNC15.md b/source-research/artifacts/macros/test_include_fff_h__L1094__DEFINE_FAKE_VOID_FUNC15.md new file mode 100644 index 00000000..175b50d2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1094__DEFINE_FAKE_VOID_FUNC15.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC15` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1094` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC15\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1094:DEFINE_FAKE_VOID_FUNC15` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1148__FAKE_VOID_FUNC15.md b/source-research/artifacts/macros/test_include_fff_h__L1148__FAKE_VOID_FUNC15.md new file mode 100644 index 00000000..731bfb0b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1148__FAKE_VOID_FUNC15.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC15` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1148` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC15\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1148:FAKE_VOID_FUNC15` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L114__FFF_EXTERN_C.md b/source-research/artifacts/macros/test_include_fff_h__L114__FFF_EXTERN_C.md new file mode 100644 index 00000000..8f49f794 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L114__FFF_EXTERN_C.md @@ -0,0 +1,59 @@ +# `FFF_EXTERN_C` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:114` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_EXTERN_C\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:114:FFF_EXTERN_C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1153__DECLARE_FAKE_VOID_FUNC16.md b/source-research/artifacts/macros/test_include_fff_h__L1153__DECLARE_FAKE_VOID_FUNC16.md new file mode 100644 index 00000000..95e72058 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1153__DECLARE_FAKE_VOID_FUNC16.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC16` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1153` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC16\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1153:DECLARE_FAKE_VOID_FUNC16` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L115__FFF_END_EXTERN_C.md b/source-research/artifacts/macros/test_include_fff_h__L115__FFF_END_EXTERN_C.md new file mode 100644 index 00000000..4bf6f54e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L115__FFF_END_EXTERN_C.md @@ -0,0 +1,59 @@ +# `FFF_END_EXTERN_C` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:115` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_END_EXTERN_C\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:115:FFF_END_EXTERN_C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L117__FFF_EXTERN_C.md b/source-research/artifacts/macros/test_include_fff_h__L117__FFF_EXTERN_C.md new file mode 100644 index 00000000..5b467d32 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L117__FFF_EXTERN_C.md @@ -0,0 +1,59 @@ +# `FFF_EXTERN_C` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:117` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_EXTERN_C\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:117:FFF_EXTERN_C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1180__DEFINE_FAKE_VOID_FUNC16.md b/source-research/artifacts/macros/test_include_fff_h__L1180__DEFINE_FAKE_VOID_FUNC16.md new file mode 100644 index 00000000..6d48b1dd --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1180__DEFINE_FAKE_VOID_FUNC16.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC16` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1180` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC16\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1180:DEFINE_FAKE_VOID_FUNC16` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L118__FFF_END_EXTERN_C.md b/source-research/artifacts/macros/test_include_fff_h__L118__FFF_END_EXTERN_C.md new file mode 100644 index 00000000..cb3b875b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L118__FFF_END_EXTERN_C.md @@ -0,0 +1,59 @@ +# `FFF_END_EXTERN_C` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:118` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_END_EXTERN_C\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:118:FFF_END_EXTERN_C` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L121__DEFINE_RESET_FUNCTION.md b/source-research/artifacts/macros/test_include_fff_h__L121__DEFINE_RESET_FUNCTION.md new file mode 100644 index 00000000..9d0ef1ae --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L121__DEFINE_RESET_FUNCTION.md @@ -0,0 +1,59 @@ +# `DEFINE_RESET_FUNCTION` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:121` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_RESET_FUNCTION\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:121:DEFINE_RESET_FUNCTION` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1236__FAKE_VOID_FUNC16.md b/source-research/artifacts/macros/test_include_fff_h__L1236__FAKE_VOID_FUNC16.md new file mode 100644 index 00000000..9ce5b28c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1236__FAKE_VOID_FUNC16.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC16` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1236` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC16\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1236:FAKE_VOID_FUNC16` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1241__DECLARE_FAKE_VOID_FUNC17.md b/source-research/artifacts/macros/test_include_fff_h__L1241__DECLARE_FAKE_VOID_FUNC17.md new file mode 100644 index 00000000..b73ecca8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1241__DECLARE_FAKE_VOID_FUNC17.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC17` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1241` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC17\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1241:DECLARE_FAKE_VOID_FUNC17` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1269__DEFINE_FAKE_VOID_FUNC17.md b/source-research/artifacts/macros/test_include_fff_h__L1269__DEFINE_FAKE_VOID_FUNC17.md new file mode 100644 index 00000000..e224079b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1269__DEFINE_FAKE_VOID_FUNC17.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC17` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1269` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC17\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1269:DEFINE_FAKE_VOID_FUNC17` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1327__FAKE_VOID_FUNC17.md b/source-research/artifacts/macros/test_include_fff_h__L1327__FAKE_VOID_FUNC17.md new file mode 100644 index 00000000..4fb174eb --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1327__FAKE_VOID_FUNC17.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC17` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1327` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC17\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1327:FAKE_VOID_FUNC17` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1332__DECLARE_FAKE_VOID_FUNC18.md b/source-research/artifacts/macros/test_include_fff_h__L1332__DECLARE_FAKE_VOID_FUNC18.md new file mode 100644 index 00000000..ee7143b4 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1332__DECLARE_FAKE_VOID_FUNC18.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC18` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1332` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC18\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1332:DECLARE_FAKE_VOID_FUNC18` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1361__DEFINE_FAKE_VOID_FUNC18.md b/source-research/artifacts/macros/test_include_fff_h__L1361__DEFINE_FAKE_VOID_FUNC18.md new file mode 100644 index 00000000..c82ce075 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1361__DEFINE_FAKE_VOID_FUNC18.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC18` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1361` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC18\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1361:DEFINE_FAKE_VOID_FUNC18` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L140__DEFINE_FFF_GLOBALS.md b/source-research/artifacts/macros/test_include_fff_h__L140__DEFINE_FFF_GLOBALS.md new file mode 100644 index 00000000..0471f699 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L140__DEFINE_FFF_GLOBALS.md @@ -0,0 +1,59 @@ +# `DEFINE_FFF_GLOBALS` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:140` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FFF_GLOBALS\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:140:DEFINE_FFF_GLOBALS` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1421__FAKE_VOID_FUNC18.md b/source-research/artifacts/macros/test_include_fff_h__L1421__FAKE_VOID_FUNC18.md new file mode 100644 index 00000000..2a329721 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1421__FAKE_VOID_FUNC18.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC18` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1421` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC18\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1421:FAKE_VOID_FUNC18` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1426__DECLARE_FAKE_VOID_FUNC19.md b/source-research/artifacts/macros/test_include_fff_h__L1426__DECLARE_FAKE_VOID_FUNC19.md new file mode 100644 index 00000000..718ea2ca --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1426__DECLARE_FAKE_VOID_FUNC19.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC19` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1426` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC19\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1426:DECLARE_FAKE_VOID_FUNC19` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1456__DEFINE_FAKE_VOID_FUNC19.md b/source-research/artifacts/macros/test_include_fff_h__L1456__DEFINE_FAKE_VOID_FUNC19.md new file mode 100644 index 00000000..dec04315 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1456__DEFINE_FAKE_VOID_FUNC19.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC19` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1456` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC19\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1456:DEFINE_FAKE_VOID_FUNC19` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L145__FFF_RESET_HISTORY.md b/source-research/artifacts/macros/test_include_fff_h__L145__FFF_RESET_HISTORY.md new file mode 100644 index 00000000..cfcb924d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L145__FFF_RESET_HISTORY.md @@ -0,0 +1,59 @@ +# `FFF_RESET_HISTORY` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:145` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_RESET_HISTORY\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:145:FFF_RESET_HISTORY` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L149__REGISTER_CALL.md b/source-research/artifacts/macros/test_include_fff_h__L149__REGISTER_CALL.md new file mode 100644 index 00000000..8500a298 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L149__REGISTER_CALL.md @@ -0,0 +1,59 @@ +# `REGISTER_CALL` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:149` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bREGISTER_CALL\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:149:REGISTER_CALL` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1518__FAKE_VOID_FUNC19.md b/source-research/artifacts/macros/test_include_fff_h__L1518__FAKE_VOID_FUNC19.md new file mode 100644 index 00000000..7aea1272 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1518__FAKE_VOID_FUNC19.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC19` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1518` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC19\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1518:FAKE_VOID_FUNC19` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1523__DECLARE_FAKE_VOID_FUNC20.md b/source-research/artifacts/macros/test_include_fff_h__L1523__DECLARE_FAKE_VOID_FUNC20.md new file mode 100644 index 00000000..f750d5f5 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1523__DECLARE_FAKE_VOID_FUNC20.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC20` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1523` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC20\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1523:DECLARE_FAKE_VOID_FUNC20` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L153__DECLARE_FAKE_VOID_FUNC0.md b/source-research/artifacts/macros/test_include_fff_h__L153__DECLARE_FAKE_VOID_FUNC0.md new file mode 100644 index 00000000..33fa80d2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L153__DECLARE_FAKE_VOID_FUNC0.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC0` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:153` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC0\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:153:DECLARE_FAKE_VOID_FUNC0` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1554__DEFINE_FAKE_VOID_FUNC20.md b/source-research/artifacts/macros/test_include_fff_h__L1554__DEFINE_FAKE_VOID_FUNC20.md new file mode 100644 index 00000000..88fc7cdb --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1554__DEFINE_FAKE_VOID_FUNC20.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC20` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1554` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC20\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1554:DEFINE_FAKE_VOID_FUNC20` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1618__FAKE_VOID_FUNC20.md b/source-research/artifacts/macros/test_include_fff_h__L1618__FAKE_VOID_FUNC20.md new file mode 100644 index 00000000..755674d3 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1618__FAKE_VOID_FUNC20.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC20` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1618` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC20\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1618:FAKE_VOID_FUNC20` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1623__DECLARE_FAKE_VALUE_FUNC0.md b/source-research/artifacts/macros/test_include_fff_h__L1623__DECLARE_FAKE_VALUE_FUNC0.md new file mode 100644 index 00000000..f7ce467f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1623__DECLARE_FAKE_VALUE_FUNC0.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC0` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1623` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC0\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1623:DECLARE_FAKE_VALUE_FUNC0` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1636__DEFINE_FAKE_VALUE_FUNC0.md b/source-research/artifacts/macros/test_include_fff_h__L1636__DEFINE_FAKE_VALUE_FUNC0.md new file mode 100644 index 00000000..1ac30ec1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1636__DEFINE_FAKE_VALUE_FUNC0.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC0` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1636` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC0\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1636:DEFINE_FAKE_VALUE_FUNC0` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L164__DEFINE_FAKE_VOID_FUNC0.md b/source-research/artifacts/macros/test_include_fff_h__L164__DEFINE_FAKE_VOID_FUNC0.md new file mode 100644 index 00000000..af67199f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L164__DEFINE_FAKE_VOID_FUNC0.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC0` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:164` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC0\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:164:DEFINE_FAKE_VOID_FUNC0` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1669__FAKE_VALUE_FUNC0.md b/source-research/artifacts/macros/test_include_fff_h__L1669__FAKE_VALUE_FUNC0.md new file mode 100644 index 00000000..2600505f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1669__FAKE_VALUE_FUNC0.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC0` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1669` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC0\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1669:FAKE_VALUE_FUNC0` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1674__DECLARE_FAKE_VALUE_FUNC1.md b/source-research/artifacts/macros/test_include_fff_h__L1674__DECLARE_FAKE_VALUE_FUNC1.md new file mode 100644 index 00000000..a6fa6e8e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1674__DECLARE_FAKE_VALUE_FUNC1.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1674` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1674:DECLARE_FAKE_VALUE_FUNC1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1688__DEFINE_FAKE_VALUE_FUNC1.md b/source-research/artifacts/macros/test_include_fff_h__L1688__DEFINE_FAKE_VALUE_FUNC1.md new file mode 100644 index 00000000..bccc37b2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1688__DEFINE_FAKE_VALUE_FUNC1.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1688` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1688:DEFINE_FAKE_VALUE_FUNC1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1723__FAKE_VALUE_FUNC1.md b/source-research/artifacts/macros/test_include_fff_h__L1723__FAKE_VALUE_FUNC1.md new file mode 100644 index 00000000..e97c9b5c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1723__FAKE_VALUE_FUNC1.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1723` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1723:FAKE_VALUE_FUNC1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1728__DECLARE_FAKE_VALUE_FUNC2.md b/source-research/artifacts/macros/test_include_fff_h__L1728__DECLARE_FAKE_VALUE_FUNC2.md new file mode 100644 index 00000000..b1ba2680 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1728__DECLARE_FAKE_VALUE_FUNC2.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1728` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1728:DECLARE_FAKE_VALUE_FUNC2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1743__DEFINE_FAKE_VALUE_FUNC2.md b/source-research/artifacts/macros/test_include_fff_h__L1743__DEFINE_FAKE_VALUE_FUNC2.md new file mode 100644 index 00000000..a0ca5b9d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1743__DEFINE_FAKE_VALUE_FUNC2.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1743` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1743:DEFINE_FAKE_VALUE_FUNC2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1780__FAKE_VALUE_FUNC2.md b/source-research/artifacts/macros/test_include_fff_h__L1780__FAKE_VALUE_FUNC2.md new file mode 100644 index 00000000..f97132d8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1780__FAKE_VALUE_FUNC2.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1780` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1780:FAKE_VALUE_FUNC2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1785__DECLARE_FAKE_VALUE_FUNC3.md b/source-research/artifacts/macros/test_include_fff_h__L1785__DECLARE_FAKE_VALUE_FUNC3.md new file mode 100644 index 00000000..57302eb1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1785__DECLARE_FAKE_VALUE_FUNC3.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC3` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1785` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC3\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1785:DECLARE_FAKE_VALUE_FUNC3` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1801__DEFINE_FAKE_VALUE_FUNC3.md b/source-research/artifacts/macros/test_include_fff_h__L1801__DEFINE_FAKE_VALUE_FUNC3.md new file mode 100644 index 00000000..137f5771 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1801__DEFINE_FAKE_VALUE_FUNC3.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC3` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1801` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC3\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1801:DEFINE_FAKE_VALUE_FUNC3` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1840__FAKE_VALUE_FUNC3.md b/source-research/artifacts/macros/test_include_fff_h__L1840__FAKE_VALUE_FUNC3.md new file mode 100644 index 00000000..36eb6bf4 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1840__FAKE_VALUE_FUNC3.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC3` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1840` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC3\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1840:FAKE_VALUE_FUNC3` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1845__DECLARE_FAKE_VALUE_FUNC4.md b/source-research/artifacts/macros/test_include_fff_h__L1845__DECLARE_FAKE_VALUE_FUNC4.md new file mode 100644 index 00000000..e22194ee --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1845__DECLARE_FAKE_VALUE_FUNC4.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC4` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1845` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC4\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1845:DECLARE_FAKE_VALUE_FUNC4` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1862__DEFINE_FAKE_VALUE_FUNC4.md b/source-research/artifacts/macros/test_include_fff_h__L1862__DEFINE_FAKE_VALUE_FUNC4.md new file mode 100644 index 00000000..6b4ce1e6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1862__DEFINE_FAKE_VALUE_FUNC4.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC4` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1862` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC4\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1862:DEFINE_FAKE_VALUE_FUNC4` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L188__FAKE_VOID_FUNC0.md b/source-research/artifacts/macros/test_include_fff_h__L188__FAKE_VOID_FUNC0.md new file mode 100644 index 00000000..81daed7a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L188__FAKE_VOID_FUNC0.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC0` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:188` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC0\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:188:FAKE_VOID_FUNC0` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1903__FAKE_VALUE_FUNC4.md b/source-research/artifacts/macros/test_include_fff_h__L1903__FAKE_VALUE_FUNC4.md new file mode 100644 index 00000000..43d21bcc --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1903__FAKE_VALUE_FUNC4.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC4` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1903` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC4\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1903:FAKE_VALUE_FUNC4` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1908__DECLARE_FAKE_VALUE_FUNC5.md b/source-research/artifacts/macros/test_include_fff_h__L1908__DECLARE_FAKE_VALUE_FUNC5.md new file mode 100644 index 00000000..9e8e4354 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1908__DECLARE_FAKE_VALUE_FUNC5.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC5` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1908` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC5\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1908:DECLARE_FAKE_VALUE_FUNC5` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1926__DEFINE_FAKE_VALUE_FUNC5.md b/source-research/artifacts/macros/test_include_fff_h__L1926__DEFINE_FAKE_VALUE_FUNC5.md new file mode 100644 index 00000000..daddd8dc --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1926__DEFINE_FAKE_VALUE_FUNC5.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC5` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1926` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC5\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1926:DEFINE_FAKE_VALUE_FUNC5` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L193__DECLARE_FAKE_VOID_FUNC1.md b/source-research/artifacts/macros/test_include_fff_h__L193__DECLARE_FAKE_VOID_FUNC1.md new file mode 100644 index 00000000..8e6d462e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L193__DECLARE_FAKE_VOID_FUNC1.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:193` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:193:DECLARE_FAKE_VOID_FUNC1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1969__FAKE_VALUE_FUNC5.md b/source-research/artifacts/macros/test_include_fff_h__L1969__FAKE_VALUE_FUNC5.md new file mode 100644 index 00000000..ec60c2ac --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1969__FAKE_VALUE_FUNC5.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC5` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1969` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC5\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1969:FAKE_VALUE_FUNC5` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1974__DECLARE_FAKE_VALUE_FUNC6.md b/source-research/artifacts/macros/test_include_fff_h__L1974__DECLARE_FAKE_VALUE_FUNC6.md new file mode 100644 index 00000000..be892ff5 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1974__DECLARE_FAKE_VALUE_FUNC6.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC6` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1974` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC6\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1974:DECLARE_FAKE_VALUE_FUNC6` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L1993__DEFINE_FAKE_VALUE_FUNC6.md b/source-research/artifacts/macros/test_include_fff_h__L1993__DEFINE_FAKE_VALUE_FUNC6.md new file mode 100644 index 00000000..91a14af0 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L1993__DEFINE_FAKE_VALUE_FUNC6.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC6` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:1993` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC6\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:1993:DEFINE_FAKE_VALUE_FUNC6` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2038__FAKE_VALUE_FUNC6.md b/source-research/artifacts/macros/test_include_fff_h__L2038__FAKE_VALUE_FUNC6.md new file mode 100644 index 00000000..a36502bd --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2038__FAKE_VALUE_FUNC6.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC6` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2038` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC6\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2038:FAKE_VALUE_FUNC6` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2043__DECLARE_FAKE_VALUE_FUNC7.md b/source-research/artifacts/macros/test_include_fff_h__L2043__DECLARE_FAKE_VALUE_FUNC7.md new file mode 100644 index 00000000..29b75eb7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2043__DECLARE_FAKE_VALUE_FUNC7.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC7` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2043` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC7\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2043:DECLARE_FAKE_VALUE_FUNC7` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L205__DEFINE_FAKE_VOID_FUNC1.md b/source-research/artifacts/macros/test_include_fff_h__L205__DEFINE_FAKE_VOID_FUNC1.md new file mode 100644 index 00000000..fd096b2a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L205__DEFINE_FAKE_VOID_FUNC1.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:205` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:205:DEFINE_FAKE_VOID_FUNC1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2063__DEFINE_FAKE_VALUE_FUNC7.md b/source-research/artifacts/macros/test_include_fff_h__L2063__DEFINE_FAKE_VALUE_FUNC7.md new file mode 100644 index 00000000..574850fb --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2063__DEFINE_FAKE_VALUE_FUNC7.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC7` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2063` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC7\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2063:DEFINE_FAKE_VALUE_FUNC7` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2110__FAKE_VALUE_FUNC7.md b/source-research/artifacts/macros/test_include_fff_h__L2110__FAKE_VALUE_FUNC7.md new file mode 100644 index 00000000..d9fd4f0e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2110__FAKE_VALUE_FUNC7.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC7` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2110` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC7\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2110:FAKE_VALUE_FUNC7` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2115__DECLARE_FAKE_VALUE_FUNC8.md b/source-research/artifacts/macros/test_include_fff_h__L2115__DECLARE_FAKE_VALUE_FUNC8.md new file mode 100644 index 00000000..d7d1816a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2115__DECLARE_FAKE_VALUE_FUNC8.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC8` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2115` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC8\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2115:DECLARE_FAKE_VALUE_FUNC8` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2136__DEFINE_FAKE_VALUE_FUNC8.md b/source-research/artifacts/macros/test_include_fff_h__L2136__DEFINE_FAKE_VALUE_FUNC8.md new file mode 100644 index 00000000..d0abff32 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2136__DEFINE_FAKE_VALUE_FUNC8.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC8` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2136` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC8\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2136:DEFINE_FAKE_VALUE_FUNC8` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2185__FAKE_VALUE_FUNC8.md b/source-research/artifacts/macros/test_include_fff_h__L2185__FAKE_VALUE_FUNC8.md new file mode 100644 index 00000000..f3ed4c24 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2185__FAKE_VALUE_FUNC8.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC8` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2185` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC8\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2185:FAKE_VALUE_FUNC8` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2190__DECLARE_FAKE_VALUE_FUNC9.md b/source-research/artifacts/macros/test_include_fff_h__L2190__DECLARE_FAKE_VALUE_FUNC9.md new file mode 100644 index 00000000..38b2fed1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2190__DECLARE_FAKE_VALUE_FUNC9.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC9` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2190` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC9\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2190:DECLARE_FAKE_VALUE_FUNC9` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2212__DEFINE_FAKE_VALUE_FUNC9.md b/source-research/artifacts/macros/test_include_fff_h__L2212__DEFINE_FAKE_VALUE_FUNC9.md new file mode 100644 index 00000000..662c01f0 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2212__DEFINE_FAKE_VALUE_FUNC9.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC9` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2212` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC9\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2212:DEFINE_FAKE_VALUE_FUNC9` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2263__FAKE_VALUE_FUNC9.md b/source-research/artifacts/macros/test_include_fff_h__L2263__FAKE_VALUE_FUNC9.md new file mode 100644 index 00000000..4964b0a2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2263__FAKE_VALUE_FUNC9.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC9` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2263` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC9\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2263:FAKE_VALUE_FUNC9` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2268__DECLARE_FAKE_VALUE_FUNC10.md b/source-research/artifacts/macros/test_include_fff_h__L2268__DECLARE_FAKE_VALUE_FUNC10.md new file mode 100644 index 00000000..037b4b9b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2268__DECLARE_FAKE_VALUE_FUNC10.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC10` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2268` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC10\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2268:DECLARE_FAKE_VALUE_FUNC10` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2291__DEFINE_FAKE_VALUE_FUNC10.md b/source-research/artifacts/macros/test_include_fff_h__L2291__DEFINE_FAKE_VALUE_FUNC10.md new file mode 100644 index 00000000..13703523 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2291__DEFINE_FAKE_VALUE_FUNC10.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC10` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2291` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC10\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2291:DEFINE_FAKE_VALUE_FUNC10` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L231__FAKE_VOID_FUNC1.md b/source-research/artifacts/macros/test_include_fff_h__L231__FAKE_VOID_FUNC1.md new file mode 100644 index 00000000..0382831a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L231__FAKE_VOID_FUNC1.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:231` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:231:FAKE_VOID_FUNC1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2344__FAKE_VALUE_FUNC10.md b/source-research/artifacts/macros/test_include_fff_h__L2344__FAKE_VALUE_FUNC10.md new file mode 100644 index 00000000..bad3878f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2344__FAKE_VALUE_FUNC10.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC10` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2344` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC10\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2344:FAKE_VALUE_FUNC10` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2349__DECLARE_FAKE_VALUE_FUNC11.md b/source-research/artifacts/macros/test_include_fff_h__L2349__DECLARE_FAKE_VALUE_FUNC11.md new file mode 100644 index 00000000..0f1d0d1a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2349__DECLARE_FAKE_VALUE_FUNC11.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC11` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2349` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC11\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2349:DECLARE_FAKE_VALUE_FUNC11` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L236__DECLARE_FAKE_VOID_FUNC2.md b/source-research/artifacts/macros/test_include_fff_h__L236__DECLARE_FAKE_VOID_FUNC2.md new file mode 100644 index 00000000..1b5cb09d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L236__DECLARE_FAKE_VOID_FUNC2.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:236` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:236:DECLARE_FAKE_VOID_FUNC2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2373__DEFINE_FAKE_VALUE_FUNC11.md b/source-research/artifacts/macros/test_include_fff_h__L2373__DEFINE_FAKE_VALUE_FUNC11.md new file mode 100644 index 00000000..8e5457c9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2373__DEFINE_FAKE_VALUE_FUNC11.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC11` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2373` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC11\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2373:DEFINE_FAKE_VALUE_FUNC11` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2428__FAKE_VALUE_FUNC11.md b/source-research/artifacts/macros/test_include_fff_h__L2428__FAKE_VALUE_FUNC11.md new file mode 100644 index 00000000..cea9a253 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2428__FAKE_VALUE_FUNC11.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC11` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2428` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC11\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2428:FAKE_VALUE_FUNC11` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2433__DECLARE_FAKE_VALUE_FUNC12.md b/source-research/artifacts/macros/test_include_fff_h__L2433__DECLARE_FAKE_VALUE_FUNC12.md new file mode 100644 index 00000000..22ba26e5 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2433__DECLARE_FAKE_VALUE_FUNC12.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC12` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2433` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC12\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2433:DECLARE_FAKE_VALUE_FUNC12` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2458__DEFINE_FAKE_VALUE_FUNC12.md b/source-research/artifacts/macros/test_include_fff_h__L2458__DEFINE_FAKE_VALUE_FUNC12.md new file mode 100644 index 00000000..f1eb31e6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2458__DEFINE_FAKE_VALUE_FUNC12.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC12` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2458` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC12\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2458:DEFINE_FAKE_VALUE_FUNC12` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L249__DEFINE_FAKE_VOID_FUNC2.md b/source-research/artifacts/macros/test_include_fff_h__L249__DEFINE_FAKE_VOID_FUNC2.md new file mode 100644 index 00000000..7f0f30b7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L249__DEFINE_FAKE_VOID_FUNC2.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:249` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:249:DEFINE_FAKE_VOID_FUNC2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2515__FAKE_VALUE_FUNC12.md b/source-research/artifacts/macros/test_include_fff_h__L2515__FAKE_VALUE_FUNC12.md new file mode 100644 index 00000000..44dcc654 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2515__FAKE_VALUE_FUNC12.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC12` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2515` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC12\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2515:FAKE_VALUE_FUNC12` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2520__DECLARE_FAKE_VALUE_FUNC13.md b/source-research/artifacts/macros/test_include_fff_h__L2520__DECLARE_FAKE_VALUE_FUNC13.md new file mode 100644 index 00000000..8fd21a73 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2520__DECLARE_FAKE_VALUE_FUNC13.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC13` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2520` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC13\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2520:DECLARE_FAKE_VALUE_FUNC13` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2546__DEFINE_FAKE_VALUE_FUNC13.md b/source-research/artifacts/macros/test_include_fff_h__L2546__DEFINE_FAKE_VALUE_FUNC13.md new file mode 100644 index 00000000..f9371592 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2546__DEFINE_FAKE_VALUE_FUNC13.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC13` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2546` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC13\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2546:DEFINE_FAKE_VALUE_FUNC13` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2605__FAKE_VALUE_FUNC13.md b/source-research/artifacts/macros/test_include_fff_h__L2605__FAKE_VALUE_FUNC13.md new file mode 100644 index 00000000..11edbedb --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2605__FAKE_VALUE_FUNC13.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC13` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2605` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC13\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2605:FAKE_VALUE_FUNC13` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2610__DECLARE_FAKE_VALUE_FUNC14.md b/source-research/artifacts/macros/test_include_fff_h__L2610__DECLARE_FAKE_VALUE_FUNC14.md new file mode 100644 index 00000000..4c665bef --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2610__DECLARE_FAKE_VALUE_FUNC14.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC14` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2610` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC14\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2610:DECLARE_FAKE_VALUE_FUNC14` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2637__DEFINE_FAKE_VALUE_FUNC14.md b/source-research/artifacts/macros/test_include_fff_h__L2637__DEFINE_FAKE_VALUE_FUNC14.md new file mode 100644 index 00000000..65e47cfd --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2637__DEFINE_FAKE_VALUE_FUNC14.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC14` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2637` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC14\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2637:DEFINE_FAKE_VALUE_FUNC14` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2698__FAKE_VALUE_FUNC14.md b/source-research/artifacts/macros/test_include_fff_h__L2698__FAKE_VALUE_FUNC14.md new file mode 100644 index 00000000..17ff37e2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2698__FAKE_VALUE_FUNC14.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC14` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2698` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC14\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2698:FAKE_VALUE_FUNC14` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2703__DECLARE_FAKE_VALUE_FUNC15.md b/source-research/artifacts/macros/test_include_fff_h__L2703__DECLARE_FAKE_VALUE_FUNC15.md new file mode 100644 index 00000000..173cfbc5 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2703__DECLARE_FAKE_VALUE_FUNC15.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC15` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2703` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC15\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2703:DECLARE_FAKE_VALUE_FUNC15` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2731__DEFINE_FAKE_VALUE_FUNC15.md b/source-research/artifacts/macros/test_include_fff_h__L2731__DEFINE_FAKE_VALUE_FUNC15.md new file mode 100644 index 00000000..03b16633 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2731__DEFINE_FAKE_VALUE_FUNC15.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC15` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2731` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC15\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2731:DEFINE_FAKE_VALUE_FUNC15` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L277__FAKE_VOID_FUNC2.md b/source-research/artifacts/macros/test_include_fff_h__L277__FAKE_VOID_FUNC2.md new file mode 100644 index 00000000..336bdb2b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L277__FAKE_VOID_FUNC2.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:277` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:277:FAKE_VOID_FUNC2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2794__FAKE_VALUE_FUNC15.md b/source-research/artifacts/macros/test_include_fff_h__L2794__FAKE_VALUE_FUNC15.md new file mode 100644 index 00000000..f907493b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2794__FAKE_VALUE_FUNC15.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC15` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2794` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC15\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2794:FAKE_VALUE_FUNC15` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2799__DECLARE_FAKE_VALUE_FUNC16.md b/source-research/artifacts/macros/test_include_fff_h__L2799__DECLARE_FAKE_VALUE_FUNC16.md new file mode 100644 index 00000000..64ed94dd --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2799__DECLARE_FAKE_VALUE_FUNC16.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC16` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2799` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC16\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2799:DECLARE_FAKE_VALUE_FUNC16` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2828__DEFINE_FAKE_VALUE_FUNC16.md b/source-research/artifacts/macros/test_include_fff_h__L2828__DEFINE_FAKE_VALUE_FUNC16.md new file mode 100644 index 00000000..1f59f02b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2828__DEFINE_FAKE_VALUE_FUNC16.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC16` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2828` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC16\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2828:DEFINE_FAKE_VALUE_FUNC16` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L282__DECLARE_FAKE_VOID_FUNC3.md b/source-research/artifacts/macros/test_include_fff_h__L282__DECLARE_FAKE_VOID_FUNC3.md new file mode 100644 index 00000000..4c3611e8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L282__DECLARE_FAKE_VOID_FUNC3.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC3` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:282` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC3\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:282:DECLARE_FAKE_VOID_FUNC3` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2893__FAKE_VALUE_FUNC16.md b/source-research/artifacts/macros/test_include_fff_h__L2893__FAKE_VALUE_FUNC16.md new file mode 100644 index 00000000..fe55368f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2893__FAKE_VALUE_FUNC16.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC16` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2893` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC16\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2893:FAKE_VALUE_FUNC16` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2898__DECLARE_FAKE_VALUE_FUNC17.md b/source-research/artifacts/macros/test_include_fff_h__L2898__DECLARE_FAKE_VALUE_FUNC17.md new file mode 100644 index 00000000..ce5d2735 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2898__DECLARE_FAKE_VALUE_FUNC17.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC17` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2898` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC17\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2898:DECLARE_FAKE_VALUE_FUNC17` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2928__DEFINE_FAKE_VALUE_FUNC17.md b/source-research/artifacts/macros/test_include_fff_h__L2928__DEFINE_FAKE_VALUE_FUNC17.md new file mode 100644 index 00000000..f26f32a6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2928__DEFINE_FAKE_VALUE_FUNC17.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC17` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2928` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC17\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2928:DEFINE_FAKE_VALUE_FUNC17` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L296__DEFINE_FAKE_VOID_FUNC3.md b/source-research/artifacts/macros/test_include_fff_h__L296__DEFINE_FAKE_VOID_FUNC3.md new file mode 100644 index 00000000..9c27c1d6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L296__DEFINE_FAKE_VOID_FUNC3.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC3` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:296` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC3\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:296:DEFINE_FAKE_VOID_FUNC3` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L2995__FAKE_VALUE_FUNC17.md b/source-research/artifacts/macros/test_include_fff_h__L2995__FAKE_VALUE_FUNC17.md new file mode 100644 index 00000000..84e7797d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L2995__FAKE_VALUE_FUNC17.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC17` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:2995` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC17\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:2995:FAKE_VALUE_FUNC17` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3000__DECLARE_FAKE_VALUE_FUNC18.md b/source-research/artifacts/macros/test_include_fff_h__L3000__DECLARE_FAKE_VALUE_FUNC18.md new file mode 100644 index 00000000..8e46896d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3000__DECLARE_FAKE_VALUE_FUNC18.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC18` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3000` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC18\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3000:DECLARE_FAKE_VALUE_FUNC18` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3031__DEFINE_FAKE_VALUE_FUNC18.md b/source-research/artifacts/macros/test_include_fff_h__L3031__DEFINE_FAKE_VALUE_FUNC18.md new file mode 100644 index 00000000..3c1d98fa --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3031__DEFINE_FAKE_VALUE_FUNC18.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC18` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3031` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC18\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3031:DEFINE_FAKE_VALUE_FUNC18` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3100__FAKE_VALUE_FUNC18.md b/source-research/artifacts/macros/test_include_fff_h__L3100__FAKE_VALUE_FUNC18.md new file mode 100644 index 00000000..25afcb61 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3100__FAKE_VALUE_FUNC18.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC18` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3100` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC18\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3100:FAKE_VALUE_FUNC18` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3105__DECLARE_FAKE_VALUE_FUNC19.md b/source-research/artifacts/macros/test_include_fff_h__L3105__DECLARE_FAKE_VALUE_FUNC19.md new file mode 100644 index 00000000..bf2007ec --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3105__DECLARE_FAKE_VALUE_FUNC19.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC19` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3105` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC19\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3105:DECLARE_FAKE_VALUE_FUNC19` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3137__DEFINE_FAKE_VALUE_FUNC19.md b/source-research/artifacts/macros/test_include_fff_h__L3137__DEFINE_FAKE_VALUE_FUNC19.md new file mode 100644 index 00000000..8dbe297e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3137__DEFINE_FAKE_VALUE_FUNC19.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC19` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3137` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC19\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3137:DEFINE_FAKE_VALUE_FUNC19` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3208__FAKE_VALUE_FUNC19.md b/source-research/artifacts/macros/test_include_fff_h__L3208__FAKE_VALUE_FUNC19.md new file mode 100644 index 00000000..79ba7a53 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3208__FAKE_VALUE_FUNC19.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC19` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3208` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC19\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3208:FAKE_VALUE_FUNC19` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3213__DECLARE_FAKE_VALUE_FUNC20.md b/source-research/artifacts/macros/test_include_fff_h__L3213__DECLARE_FAKE_VALUE_FUNC20.md new file mode 100644 index 00000000..7993b73c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3213__DECLARE_FAKE_VALUE_FUNC20.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC20` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3213` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC20\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3213:DECLARE_FAKE_VALUE_FUNC20` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3246__DEFINE_FAKE_VALUE_FUNC20.md b/source-research/artifacts/macros/test_include_fff_h__L3246__DEFINE_FAKE_VALUE_FUNC20.md new file mode 100644 index 00000000..1d67e0ef --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3246__DEFINE_FAKE_VALUE_FUNC20.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC20` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3246` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC20\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3246:DEFINE_FAKE_VALUE_FUNC20` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L326__FAKE_VOID_FUNC3.md b/source-research/artifacts/macros/test_include_fff_h__L326__FAKE_VOID_FUNC3.md new file mode 100644 index 00000000..b50882e8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L326__FAKE_VOID_FUNC3.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC3` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:326` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC3\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:326:FAKE_VOID_FUNC3` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L32__FFF_MAX_ARGS.md b/source-research/artifacts/macros/test_include_fff_h__L32__FFF_MAX_ARGS.md new file mode 100644 index 00000000..ff5d9443 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L32__FFF_MAX_ARGS.md @@ -0,0 +1,59 @@ +# `FFF_MAX_ARGS` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:32` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_MAX_ARGS\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:32:FFF_MAX_ARGS` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3319__FAKE_VALUE_FUNC20.md b/source-research/artifacts/macros/test_include_fff_h__L3319__FAKE_VALUE_FUNC20.md new file mode 100644 index 00000000..c9b22c93 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3319__FAKE_VALUE_FUNC20.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC20` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3319` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC20\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3319:FAKE_VALUE_FUNC20` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L331__DECLARE_FAKE_VOID_FUNC4.md b/source-research/artifacts/macros/test_include_fff_h__L331__DECLARE_FAKE_VOID_FUNC4.md new file mode 100644 index 00000000..feb18434 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L331__DECLARE_FAKE_VOID_FUNC4.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC4` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:331` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC4\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:331:DECLARE_FAKE_VOID_FUNC4` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3324__DECLARE_FAKE_VOID_FUNC2_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3324__DECLARE_FAKE_VOID_FUNC2_VARARG.md new file mode 100644 index 00000000..4b843e0b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3324__DECLARE_FAKE_VOID_FUNC2_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC2_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3324` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC2_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3324:DECLARE_FAKE_VOID_FUNC2_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3336__DEFINE_FAKE_VOID_FUNC2_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3336__DEFINE_FAKE_VOID_FUNC2_VARARG.md new file mode 100644 index 00000000..67f4273c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3336__DEFINE_FAKE_VOID_FUNC2_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC2_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3336` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC2_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3336:DEFINE_FAKE_VOID_FUNC2_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3371__FAKE_VOID_FUNC2_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3371__FAKE_VOID_FUNC2_VARARG.md new file mode 100644 index 00000000..d187a87c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3371__FAKE_VOID_FUNC2_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC2_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3371` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC2_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3371:FAKE_VOID_FUNC2_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3376__DECLARE_FAKE_VOID_FUNC3_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3376__DECLARE_FAKE_VOID_FUNC3_VARARG.md new file mode 100644 index 00000000..188166d8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3376__DECLARE_FAKE_VOID_FUNC3_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC3_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3376` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC3_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3376:DECLARE_FAKE_VOID_FUNC3_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3389__DEFINE_FAKE_VOID_FUNC3_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3389__DEFINE_FAKE_VOID_FUNC3_VARARG.md new file mode 100644 index 00000000..4b7f5bbe --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3389__DEFINE_FAKE_VOID_FUNC3_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC3_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3389` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC3_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3389:DEFINE_FAKE_VOID_FUNC3_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3426__FAKE_VOID_FUNC3_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3426__FAKE_VOID_FUNC3_VARARG.md new file mode 100644 index 00000000..6bbfea24 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3426__FAKE_VOID_FUNC3_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC3_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3426` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC3_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3426:FAKE_VOID_FUNC3_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3431__DECLARE_FAKE_VOID_FUNC4_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3431__DECLARE_FAKE_VOID_FUNC4_VARARG.md new file mode 100644 index 00000000..37dbc708 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3431__DECLARE_FAKE_VOID_FUNC4_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC4_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3431` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC4_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3431:DECLARE_FAKE_VOID_FUNC4_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3445__DEFINE_FAKE_VOID_FUNC4_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3445__DEFINE_FAKE_VOID_FUNC4_VARARG.md new file mode 100644 index 00000000..9e5898a6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3445__DEFINE_FAKE_VOID_FUNC4_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC4_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3445` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC4_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3445:DEFINE_FAKE_VOID_FUNC4_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L346__DEFINE_FAKE_VOID_FUNC4.md b/source-research/artifacts/macros/test_include_fff_h__L346__DEFINE_FAKE_VOID_FUNC4.md new file mode 100644 index 00000000..dac99a9f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L346__DEFINE_FAKE_VOID_FUNC4.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC4` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:346` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC4\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:346:DEFINE_FAKE_VOID_FUNC4` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3484__FAKE_VOID_FUNC4_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3484__FAKE_VOID_FUNC4_VARARG.md new file mode 100644 index 00000000..d2b625f7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3484__FAKE_VOID_FUNC4_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC4_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3484` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC4_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3484:FAKE_VOID_FUNC4_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3489__DECLARE_FAKE_VOID_FUNC5_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3489__DECLARE_FAKE_VOID_FUNC5_VARARG.md new file mode 100644 index 00000000..fb6141b6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3489__DECLARE_FAKE_VOID_FUNC5_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC5_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3489` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC5_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3489:DECLARE_FAKE_VOID_FUNC5_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L34__FFF_ARG_HISTORY_LEN.md b/source-research/artifacts/macros/test_include_fff_h__L34__FFF_ARG_HISTORY_LEN.md new file mode 100644 index 00000000..8ffccd22 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L34__FFF_ARG_HISTORY_LEN.md @@ -0,0 +1,59 @@ +# `FFF_ARG_HISTORY_LEN` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:34` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_ARG_HISTORY_LEN\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:34:FFF_ARG_HISTORY_LEN` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3504__DEFINE_FAKE_VOID_FUNC5_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3504__DEFINE_FAKE_VOID_FUNC5_VARARG.md new file mode 100644 index 00000000..8f9923f8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3504__DEFINE_FAKE_VOID_FUNC5_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC5_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3504` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC5_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3504:DEFINE_FAKE_VOID_FUNC5_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3545__FAKE_VOID_FUNC5_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3545__FAKE_VOID_FUNC5_VARARG.md new file mode 100644 index 00000000..121f7053 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3545__FAKE_VOID_FUNC5_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC5_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3545` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC5_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3545:FAKE_VOID_FUNC5_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3550__DECLARE_FAKE_VOID_FUNC6_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3550__DECLARE_FAKE_VOID_FUNC6_VARARG.md new file mode 100644 index 00000000..d1dbb59c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3550__DECLARE_FAKE_VOID_FUNC6_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC6_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3550` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC6_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3550:DECLARE_FAKE_VOID_FUNC6_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3566__DEFINE_FAKE_VOID_FUNC6_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3566__DEFINE_FAKE_VOID_FUNC6_VARARG.md new file mode 100644 index 00000000..8fef7f27 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3566__DEFINE_FAKE_VOID_FUNC6_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC6_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3566` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC6_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3566:DEFINE_FAKE_VOID_FUNC6_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3609__FAKE_VOID_FUNC6_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3609__FAKE_VOID_FUNC6_VARARG.md new file mode 100644 index 00000000..9dc0b762 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3609__FAKE_VOID_FUNC6_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC6_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3609` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC6_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3609:FAKE_VOID_FUNC6_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3614__DECLARE_FAKE_VOID_FUNC7_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3614__DECLARE_FAKE_VOID_FUNC7_VARARG.md new file mode 100644 index 00000000..a60e04bc --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3614__DECLARE_FAKE_VOID_FUNC7_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC7_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3614` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC7_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3614:DECLARE_FAKE_VOID_FUNC7_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3631__DEFINE_FAKE_VOID_FUNC7_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3631__DEFINE_FAKE_VOID_FUNC7_VARARG.md new file mode 100644 index 00000000..ea0912ba --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3631__DEFINE_FAKE_VOID_FUNC7_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC7_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3631` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC7_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3631:DEFINE_FAKE_VOID_FUNC7_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3676__FAKE_VOID_FUNC7_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3676__FAKE_VOID_FUNC7_VARARG.md new file mode 100644 index 00000000..605a044f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3676__FAKE_VOID_FUNC7_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC7_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3676` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC7_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3676:FAKE_VOID_FUNC7_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3681__DECLARE_FAKE_VOID_FUNC8_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3681__DECLARE_FAKE_VOID_FUNC8_VARARG.md new file mode 100644 index 00000000..2952c89d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3681__DECLARE_FAKE_VOID_FUNC8_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC8_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3681` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC8_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3681:DECLARE_FAKE_VOID_FUNC8_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3699__DEFINE_FAKE_VOID_FUNC8_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3699__DEFINE_FAKE_VOID_FUNC8_VARARG.md new file mode 100644 index 00000000..4b546a89 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3699__DEFINE_FAKE_VOID_FUNC8_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC8_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3699` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC8_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3699:DEFINE_FAKE_VOID_FUNC8_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3746__FAKE_VOID_FUNC8_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3746__FAKE_VOID_FUNC8_VARARG.md new file mode 100644 index 00000000..1342a108 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3746__FAKE_VOID_FUNC8_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC8_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3746` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC8_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3746:FAKE_VOID_FUNC8_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3751__DECLARE_FAKE_VOID_FUNC9_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3751__DECLARE_FAKE_VOID_FUNC9_VARARG.md new file mode 100644 index 00000000..3139b6c6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3751__DECLARE_FAKE_VOID_FUNC9_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC9_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3751` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC9_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3751:DECLARE_FAKE_VOID_FUNC9_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3770__DEFINE_FAKE_VOID_FUNC9_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3770__DEFINE_FAKE_VOID_FUNC9_VARARG.md new file mode 100644 index 00000000..f3efe587 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3770__DEFINE_FAKE_VOID_FUNC9_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC9_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3770` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC9_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3770:DEFINE_FAKE_VOID_FUNC9_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L378__FAKE_VOID_FUNC4.md b/source-research/artifacts/macros/test_include_fff_h__L378__FAKE_VOID_FUNC4.md new file mode 100644 index 00000000..1a632bb8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L378__FAKE_VOID_FUNC4.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC4` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:378` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC4\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:378:FAKE_VOID_FUNC4` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L37__FFF_CALL_HISTORY_LEN.md b/source-research/artifacts/macros/test_include_fff_h__L37__FFF_CALL_HISTORY_LEN.md new file mode 100644 index 00000000..f6b11a7b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L37__FFF_CALL_HISTORY_LEN.md @@ -0,0 +1,59 @@ +# `FFF_CALL_HISTORY_LEN` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:37` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFFF_CALL_HISTORY_LEN\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:37:FFF_CALL_HISTORY_LEN` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3819__FAKE_VOID_FUNC9_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3819__FAKE_VOID_FUNC9_VARARG.md new file mode 100644 index 00000000..973afbd9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3819__FAKE_VOID_FUNC9_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC9_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3819` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC9_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3819:FAKE_VOID_FUNC9_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3824__DECLARE_FAKE_VOID_FUNC10_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3824__DECLARE_FAKE_VOID_FUNC10_VARARG.md new file mode 100644 index 00000000..b3d5f64e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3824__DECLARE_FAKE_VOID_FUNC10_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC10_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3824` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC10_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3824:DECLARE_FAKE_VOID_FUNC10_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L383__DECLARE_FAKE_VOID_FUNC5.md b/source-research/artifacts/macros/test_include_fff_h__L383__DECLARE_FAKE_VOID_FUNC5.md new file mode 100644 index 00000000..aa520b4f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L383__DECLARE_FAKE_VOID_FUNC5.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC5` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:383` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC5\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:383:DECLARE_FAKE_VOID_FUNC5` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3844__DEFINE_FAKE_VOID_FUNC10_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3844__DEFINE_FAKE_VOID_FUNC10_VARARG.md new file mode 100644 index 00000000..00dd4f82 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3844__DEFINE_FAKE_VOID_FUNC10_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC10_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3844` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC10_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3844:DEFINE_FAKE_VOID_FUNC10_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3895__FAKE_VOID_FUNC10_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3895__FAKE_VOID_FUNC10_VARARG.md new file mode 100644 index 00000000..55bcc67b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3895__FAKE_VOID_FUNC10_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC10_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3895` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC10_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3895:FAKE_VOID_FUNC10_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3900__DECLARE_FAKE_VOID_FUNC11_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3900__DECLARE_FAKE_VOID_FUNC11_VARARG.md new file mode 100644 index 00000000..9730784c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3900__DECLARE_FAKE_VOID_FUNC11_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC11_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3900` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC11_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3900:DECLARE_FAKE_VOID_FUNC11_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3921__DEFINE_FAKE_VOID_FUNC11_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3921__DEFINE_FAKE_VOID_FUNC11_VARARG.md new file mode 100644 index 00000000..1ea7fdd0 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3921__DEFINE_FAKE_VOID_FUNC11_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC11_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3921` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC11_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3921:DEFINE_FAKE_VOID_FUNC11_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3974__FAKE_VOID_FUNC11_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3974__FAKE_VOID_FUNC11_VARARG.md new file mode 100644 index 00000000..ebdbbc14 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3974__FAKE_VOID_FUNC11_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC11_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3974` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC11_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3974:FAKE_VOID_FUNC11_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L3979__DECLARE_FAKE_VOID_FUNC12_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L3979__DECLARE_FAKE_VOID_FUNC12_VARARG.md new file mode 100644 index 00000000..f00fee75 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L3979__DECLARE_FAKE_VOID_FUNC12_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC12_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:3979` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC12_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:3979:DECLARE_FAKE_VOID_FUNC12_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L399__DEFINE_FAKE_VOID_FUNC5.md b/source-research/artifacts/macros/test_include_fff_h__L399__DEFINE_FAKE_VOID_FUNC5.md new file mode 100644 index 00000000..52cdb32b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L399__DEFINE_FAKE_VOID_FUNC5.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC5` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:399` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC5\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:399:DEFINE_FAKE_VOID_FUNC5` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4001__DEFINE_FAKE_VOID_FUNC12_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4001__DEFINE_FAKE_VOID_FUNC12_VARARG.md new file mode 100644 index 00000000..56ab5b41 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4001__DEFINE_FAKE_VOID_FUNC12_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC12_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4001` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC12_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4001:DEFINE_FAKE_VOID_FUNC12_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4056__FAKE_VOID_FUNC12_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4056__FAKE_VOID_FUNC12_VARARG.md new file mode 100644 index 00000000..ed74cc17 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4056__FAKE_VOID_FUNC12_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC12_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4056` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC12_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4056:FAKE_VOID_FUNC12_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4061__DECLARE_FAKE_VOID_FUNC13_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4061__DECLARE_FAKE_VOID_FUNC13_VARARG.md new file mode 100644 index 00000000..530694e7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4061__DECLARE_FAKE_VOID_FUNC13_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC13_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4061` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC13_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4061:DECLARE_FAKE_VOID_FUNC13_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4084__DEFINE_FAKE_VOID_FUNC13_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4084__DEFINE_FAKE_VOID_FUNC13_VARARG.md new file mode 100644 index 00000000..358c98de --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4084__DEFINE_FAKE_VOID_FUNC13_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC13_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4084` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC13_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4084:DEFINE_FAKE_VOID_FUNC13_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4141__FAKE_VOID_FUNC13_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4141__FAKE_VOID_FUNC13_VARARG.md new file mode 100644 index 00000000..20109cf1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4141__FAKE_VOID_FUNC13_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC13_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4141` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC13_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4141:FAKE_VOID_FUNC13_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4146__DECLARE_FAKE_VOID_FUNC14_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4146__DECLARE_FAKE_VOID_FUNC14_VARARG.md new file mode 100644 index 00000000..db5b78dd --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4146__DECLARE_FAKE_VOID_FUNC14_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC14_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4146` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC14_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4146:DECLARE_FAKE_VOID_FUNC14_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4170__DEFINE_FAKE_VOID_FUNC14_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4170__DEFINE_FAKE_VOID_FUNC14_VARARG.md new file mode 100644 index 00000000..65b8544f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4170__DEFINE_FAKE_VOID_FUNC14_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC14_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4170` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC14_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4170:DEFINE_FAKE_VOID_FUNC14_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4229__FAKE_VOID_FUNC14_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4229__FAKE_VOID_FUNC14_VARARG.md new file mode 100644 index 00000000..68f4b913 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4229__FAKE_VOID_FUNC14_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC14_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4229` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC14_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4229:FAKE_VOID_FUNC14_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4234__DECLARE_FAKE_VOID_FUNC15_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4234__DECLARE_FAKE_VOID_FUNC15_VARARG.md new file mode 100644 index 00000000..182291d0 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4234__DECLARE_FAKE_VOID_FUNC15_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC15_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4234` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC15_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4234:DECLARE_FAKE_VOID_FUNC15_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4259__DEFINE_FAKE_VOID_FUNC15_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4259__DEFINE_FAKE_VOID_FUNC15_VARARG.md new file mode 100644 index 00000000..17da9908 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4259__DEFINE_FAKE_VOID_FUNC15_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC15_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4259` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC15_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4259:DEFINE_FAKE_VOID_FUNC15_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4320__FAKE_VOID_FUNC15_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4320__FAKE_VOID_FUNC15_VARARG.md new file mode 100644 index 00000000..3a89a973 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4320__FAKE_VOID_FUNC15_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC15_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4320` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC15_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4320:FAKE_VOID_FUNC15_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4325__DECLARE_FAKE_VOID_FUNC16_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4325__DECLARE_FAKE_VOID_FUNC16_VARARG.md new file mode 100644 index 00000000..1211973c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4325__DECLARE_FAKE_VOID_FUNC16_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC16_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4325` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC16_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4325:DECLARE_FAKE_VOID_FUNC16_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L433__FAKE_VOID_FUNC5.md b/source-research/artifacts/macros/test_include_fff_h__L433__FAKE_VOID_FUNC5.md new file mode 100644 index 00000000..f6db6b73 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L433__FAKE_VOID_FUNC5.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC5` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:433` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC5\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:433:FAKE_VOID_FUNC5` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4351__DEFINE_FAKE_VOID_FUNC16_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4351__DEFINE_FAKE_VOID_FUNC16_VARARG.md new file mode 100644 index 00000000..c6b38316 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4351__DEFINE_FAKE_VOID_FUNC16_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC16_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4351` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC16_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4351:DEFINE_FAKE_VOID_FUNC16_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L438__DECLARE_FAKE_VOID_FUNC6.md b/source-research/artifacts/macros/test_include_fff_h__L438__DECLARE_FAKE_VOID_FUNC6.md new file mode 100644 index 00000000..a3006ed4 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L438__DECLARE_FAKE_VOID_FUNC6.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC6` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:438` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC6\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:438:DECLARE_FAKE_VOID_FUNC6` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L43__CUSTOM_FFF_FUNCTION_TEMPLATE.md b/source-research/artifacts/macros/test_include_fff_h__L43__CUSTOM_FFF_FUNCTION_TEMPLATE.md new file mode 100644 index 00000000..aa3b30e8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L43__CUSTOM_FFF_FUNCTION_TEMPLATE.md @@ -0,0 +1,59 @@ +# `CUSTOM_FFF_FUNCTION_TEMPLATE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:43` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bCUSTOM_FFF_FUNCTION_TEMPLATE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:43:CUSTOM_FFF_FUNCTION_TEMPLATE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4414__FAKE_VOID_FUNC16_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4414__FAKE_VOID_FUNC16_VARARG.md new file mode 100644 index 00000000..aeaec416 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4414__FAKE_VOID_FUNC16_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC16_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4414` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC16_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4414:FAKE_VOID_FUNC16_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4419__DECLARE_FAKE_VOID_FUNC17_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4419__DECLARE_FAKE_VOID_FUNC17_VARARG.md new file mode 100644 index 00000000..8d1924e9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4419__DECLARE_FAKE_VOID_FUNC17_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC17_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4419` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC17_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4419:DECLARE_FAKE_VOID_FUNC17_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4446__DEFINE_FAKE_VOID_FUNC17_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4446__DEFINE_FAKE_VOID_FUNC17_VARARG.md new file mode 100644 index 00000000..8c877060 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4446__DEFINE_FAKE_VOID_FUNC17_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC17_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4446` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC17_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4446:DEFINE_FAKE_VOID_FUNC17_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4511__FAKE_VOID_FUNC17_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4511__FAKE_VOID_FUNC17_VARARG.md new file mode 100644 index 00000000..cadcc210 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4511__FAKE_VOID_FUNC17_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC17_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4511` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC17_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4511:FAKE_VOID_FUNC17_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4516__DECLARE_FAKE_VOID_FUNC18_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4516__DECLARE_FAKE_VOID_FUNC18_VARARG.md new file mode 100644 index 00000000..0464e865 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4516__DECLARE_FAKE_VOID_FUNC18_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC18_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4516` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC18_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4516:DECLARE_FAKE_VOID_FUNC18_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4544__DEFINE_FAKE_VOID_FUNC18_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4544__DEFINE_FAKE_VOID_FUNC18_VARARG.md new file mode 100644 index 00000000..1e8a7755 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4544__DEFINE_FAKE_VOID_FUNC18_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC18_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4544` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC18_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4544:DEFINE_FAKE_VOID_FUNC18_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L455__DEFINE_FAKE_VOID_FUNC6.md b/source-research/artifacts/macros/test_include_fff_h__L455__DEFINE_FAKE_VOID_FUNC6.md new file mode 100644 index 00000000..f9c88276 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L455__DEFINE_FAKE_VOID_FUNC6.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC6` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:455` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC6\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:455:DEFINE_FAKE_VOID_FUNC6` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4611__FAKE_VOID_FUNC18_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4611__FAKE_VOID_FUNC18_VARARG.md new file mode 100644 index 00000000..a55e8951 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4611__FAKE_VOID_FUNC18_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC18_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4611` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC18_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4611:FAKE_VOID_FUNC18_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4616__DECLARE_FAKE_VOID_FUNC19_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4616__DECLARE_FAKE_VOID_FUNC19_VARARG.md new file mode 100644 index 00000000..09967ba5 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4616__DECLARE_FAKE_VOID_FUNC19_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC19_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4616` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC19_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4616:DECLARE_FAKE_VOID_FUNC19_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4645__DEFINE_FAKE_VOID_FUNC19_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4645__DEFINE_FAKE_VOID_FUNC19_VARARG.md new file mode 100644 index 00000000..e2d76104 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4645__DEFINE_FAKE_VOID_FUNC19_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC19_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4645` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC19_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4645:DEFINE_FAKE_VOID_FUNC19_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4714__FAKE_VOID_FUNC19_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4714__FAKE_VOID_FUNC19_VARARG.md new file mode 100644 index 00000000..6191de48 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4714__FAKE_VOID_FUNC19_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC19_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4714` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC19_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4714:FAKE_VOID_FUNC19_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4719__DECLARE_FAKE_VOID_FUNC20_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4719__DECLARE_FAKE_VOID_FUNC20_VARARG.md new file mode 100644 index 00000000..55780ab1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4719__DECLARE_FAKE_VOID_FUNC20_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC20_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4719` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC20_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4719:DECLARE_FAKE_VOID_FUNC20_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4749__DEFINE_FAKE_VOID_FUNC20_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4749__DEFINE_FAKE_VOID_FUNC20_VARARG.md new file mode 100644 index 00000000..81ae274f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4749__DEFINE_FAKE_VOID_FUNC20_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC20_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4749` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC20_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4749:DEFINE_FAKE_VOID_FUNC20_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L47__SET_RETURN_SEQ.md b/source-research/artifacts/macros/test_include_fff_h__L47__SET_RETURN_SEQ.md new file mode 100644 index 00000000..44f8b9d6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L47__SET_RETURN_SEQ.md @@ -0,0 +1,59 @@ +# `SET_RETURN_SEQ` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:47` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSET_RETURN_SEQ\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:47:SET_RETURN_SEQ` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4820__FAKE_VOID_FUNC20_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4820__FAKE_VOID_FUNC20_VARARG.md new file mode 100644 index 00000000..dd46af67 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4820__FAKE_VOID_FUNC20_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC20_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4820` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC20_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4820:FAKE_VOID_FUNC20_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4825__DECLARE_FAKE_VALUE_FUNC2_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4825__DECLARE_FAKE_VALUE_FUNC2_VARARG.md new file mode 100644 index 00000000..104af9b1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4825__DECLARE_FAKE_VALUE_FUNC2_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC2_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4825` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC2_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4825:DECLARE_FAKE_VALUE_FUNC2_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4839__DEFINE_FAKE_VALUE_FUNC2_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4839__DEFINE_FAKE_VALUE_FUNC2_VARARG.md new file mode 100644 index 00000000..1c929fa9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4839__DEFINE_FAKE_VALUE_FUNC2_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC2_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4839` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC2_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4839:DEFINE_FAKE_VALUE_FUNC2_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4883__FAKE_VALUE_FUNC2_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4883__FAKE_VALUE_FUNC2_VARARG.md new file mode 100644 index 00000000..7a2cd7bf --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4883__FAKE_VALUE_FUNC2_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC2_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4883` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC2_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4883:FAKE_VALUE_FUNC2_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4888__DECLARE_FAKE_VALUE_FUNC3_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4888__DECLARE_FAKE_VALUE_FUNC3_VARARG.md new file mode 100644 index 00000000..c3900991 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4888__DECLARE_FAKE_VALUE_FUNC3_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC3_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4888` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC3_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4888:DECLARE_FAKE_VALUE_FUNC3_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4903__DEFINE_FAKE_VALUE_FUNC3_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4903__DEFINE_FAKE_VALUE_FUNC3_VARARG.md new file mode 100644 index 00000000..0c9ccdbb --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4903__DEFINE_FAKE_VALUE_FUNC3_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC3_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4903` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC3_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4903:DEFINE_FAKE_VALUE_FUNC3_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L491__FAKE_VOID_FUNC6.md b/source-research/artifacts/macros/test_include_fff_h__L491__FAKE_VOID_FUNC6.md new file mode 100644 index 00000000..6b7a61ec --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L491__FAKE_VOID_FUNC6.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC6` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:491` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC6\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:491:FAKE_VOID_FUNC6` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4949__FAKE_VALUE_FUNC3_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4949__FAKE_VALUE_FUNC3_VARARG.md new file mode 100644 index 00000000..1f1150a2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4949__FAKE_VALUE_FUNC3_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC3_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4949` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC3_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4949:FAKE_VALUE_FUNC3_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4954__DECLARE_FAKE_VALUE_FUNC4_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4954__DECLARE_FAKE_VALUE_FUNC4_VARARG.md new file mode 100644 index 00000000..2446716f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4954__DECLARE_FAKE_VALUE_FUNC4_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC4_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4954` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC4_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4954:DECLARE_FAKE_VALUE_FUNC4_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L496__DECLARE_FAKE_VOID_FUNC7.md b/source-research/artifacts/macros/test_include_fff_h__L496__DECLARE_FAKE_VOID_FUNC7.md new file mode 100644 index 00000000..e7622acf --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L496__DECLARE_FAKE_VOID_FUNC7.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC7` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:496` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC7\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:496:DECLARE_FAKE_VOID_FUNC7` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L4970__DEFINE_FAKE_VALUE_FUNC4_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L4970__DEFINE_FAKE_VALUE_FUNC4_VARARG.md new file mode 100644 index 00000000..fedbc3a1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L4970__DEFINE_FAKE_VALUE_FUNC4_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC4_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:4970` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC4_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:4970:DEFINE_FAKE_VALUE_FUNC4_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5018__FAKE_VALUE_FUNC4_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5018__FAKE_VALUE_FUNC4_VARARG.md new file mode 100644 index 00000000..ca8be898 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5018__FAKE_VALUE_FUNC4_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC4_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5018` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC4_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5018:FAKE_VALUE_FUNC4_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5023__DECLARE_FAKE_VALUE_FUNC5_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5023__DECLARE_FAKE_VALUE_FUNC5_VARARG.md new file mode 100644 index 00000000..d81b2ffd --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5023__DECLARE_FAKE_VALUE_FUNC5_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC5_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5023` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC5_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5023:DECLARE_FAKE_VALUE_FUNC5_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5040__DEFINE_FAKE_VALUE_FUNC5_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5040__DEFINE_FAKE_VALUE_FUNC5_VARARG.md new file mode 100644 index 00000000..bcab2061 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5040__DEFINE_FAKE_VALUE_FUNC5_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC5_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5040` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC5_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5040:DEFINE_FAKE_VALUE_FUNC5_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5090__FAKE_VALUE_FUNC5_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5090__FAKE_VALUE_FUNC5_VARARG.md new file mode 100644 index 00000000..42d0b8cf --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5090__FAKE_VALUE_FUNC5_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC5_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5090` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC5_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5090:FAKE_VALUE_FUNC5_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5095__DECLARE_FAKE_VALUE_FUNC6_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5095__DECLARE_FAKE_VALUE_FUNC6_VARARG.md new file mode 100644 index 00000000..fc094aca --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5095__DECLARE_FAKE_VALUE_FUNC6_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC6_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5095` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC6_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5095:DECLARE_FAKE_VALUE_FUNC6_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L50__SET_CUSTOM_FAKE_SEQ.md b/source-research/artifacts/macros/test_include_fff_h__L50__SET_CUSTOM_FAKE_SEQ.md new file mode 100644 index 00000000..069266b2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L50__SET_CUSTOM_FAKE_SEQ.md @@ -0,0 +1,59 @@ +# `SET_CUSTOM_FAKE_SEQ` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:50` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSET_CUSTOM_FAKE_SEQ\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:50:SET_CUSTOM_FAKE_SEQ` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5113__DEFINE_FAKE_VALUE_FUNC6_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5113__DEFINE_FAKE_VALUE_FUNC6_VARARG.md new file mode 100644 index 00000000..760f73ee --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5113__DEFINE_FAKE_VALUE_FUNC6_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC6_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5113` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC6_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5113:DEFINE_FAKE_VALUE_FUNC6_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L514__DEFINE_FAKE_VOID_FUNC7.md b/source-research/artifacts/macros/test_include_fff_h__L514__DEFINE_FAKE_VOID_FUNC7.md new file mode 100644 index 00000000..f7f296d1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L514__DEFINE_FAKE_VOID_FUNC7.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC7` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:514` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC7\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:514:DEFINE_FAKE_VOID_FUNC7` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5165__FAKE_VALUE_FUNC6_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5165__FAKE_VALUE_FUNC6_VARARG.md new file mode 100644 index 00000000..933e50e2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5165__FAKE_VALUE_FUNC6_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC6_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5165` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC6_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5165:FAKE_VALUE_FUNC6_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5170__DECLARE_FAKE_VALUE_FUNC7_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5170__DECLARE_FAKE_VALUE_FUNC7_VARARG.md new file mode 100644 index 00000000..5684032f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5170__DECLARE_FAKE_VALUE_FUNC7_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC7_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5170` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC7_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5170:DECLARE_FAKE_VALUE_FUNC7_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5189__DEFINE_FAKE_VALUE_FUNC7_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5189__DEFINE_FAKE_VALUE_FUNC7_VARARG.md new file mode 100644 index 00000000..34391006 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5189__DEFINE_FAKE_VALUE_FUNC7_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC7_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5189` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC7_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5189:DEFINE_FAKE_VALUE_FUNC7_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5243__FAKE_VALUE_FUNC7_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5243__FAKE_VALUE_FUNC7_VARARG.md new file mode 100644 index 00000000..4784b3ff --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5243__FAKE_VALUE_FUNC7_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC7_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5243` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC7_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5243:FAKE_VALUE_FUNC7_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5248__DECLARE_FAKE_VALUE_FUNC8_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5248__DECLARE_FAKE_VALUE_FUNC8_VARARG.md new file mode 100644 index 00000000..19d4e5b9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5248__DECLARE_FAKE_VALUE_FUNC8_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC8_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5248` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC8_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5248:DECLARE_FAKE_VALUE_FUNC8_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5268__DEFINE_FAKE_VALUE_FUNC8_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5268__DEFINE_FAKE_VALUE_FUNC8_VARARG.md new file mode 100644 index 00000000..371218ec --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5268__DEFINE_FAKE_VALUE_FUNC8_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC8_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5268` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC8_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5268:DEFINE_FAKE_VALUE_FUNC8_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5324__FAKE_VALUE_FUNC8_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5324__FAKE_VALUE_FUNC8_VARARG.md new file mode 100644 index 00000000..3aec95be --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5324__FAKE_VALUE_FUNC8_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC8_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5324` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC8_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5324:FAKE_VALUE_FUNC8_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5329__DECLARE_FAKE_VALUE_FUNC9_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5329__DECLARE_FAKE_VALUE_FUNC9_VARARG.md new file mode 100644 index 00000000..547ba354 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5329__DECLARE_FAKE_VALUE_FUNC9_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC9_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5329` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC9_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5329:DECLARE_FAKE_VALUE_FUNC9_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5350__DEFINE_FAKE_VALUE_FUNC9_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5350__DEFINE_FAKE_VALUE_FUNC9_VARARG.md new file mode 100644 index 00000000..69927a24 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5350__DEFINE_FAKE_VALUE_FUNC9_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC9_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5350` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC9_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5350:DEFINE_FAKE_VALUE_FUNC9_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5408__FAKE_VALUE_FUNC9_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5408__FAKE_VALUE_FUNC9_VARARG.md new file mode 100644 index 00000000..72905f8f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5408__FAKE_VALUE_FUNC9_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC9_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5408` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC9_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5408:FAKE_VALUE_FUNC9_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5413__DECLARE_FAKE_VALUE_FUNC10_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5413__DECLARE_FAKE_VALUE_FUNC10_VARARG.md new file mode 100644 index 00000000..3e08607b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5413__DECLARE_FAKE_VALUE_FUNC10_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC10_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5413` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC10_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5413:DECLARE_FAKE_VALUE_FUNC10_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5435__DEFINE_FAKE_VALUE_FUNC10_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5435__DEFINE_FAKE_VALUE_FUNC10_VARARG.md new file mode 100644 index 00000000..b315faab --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5435__DEFINE_FAKE_VALUE_FUNC10_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC10_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5435` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC10_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5435:DEFINE_FAKE_VALUE_FUNC10_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5495__FAKE_VALUE_FUNC10_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5495__FAKE_VALUE_FUNC10_VARARG.md new file mode 100644 index 00000000..77414f60 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5495__FAKE_VALUE_FUNC10_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC10_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5495` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC10_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5495:FAKE_VALUE_FUNC10_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5500__DECLARE_FAKE_VALUE_FUNC11_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5500__DECLARE_FAKE_VALUE_FUNC11_VARARG.md new file mode 100644 index 00000000..51e57cee --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5500__DECLARE_FAKE_VALUE_FUNC11_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC11_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5500` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC11_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5500:DECLARE_FAKE_VALUE_FUNC11_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5523__DEFINE_FAKE_VALUE_FUNC11_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5523__DEFINE_FAKE_VALUE_FUNC11_VARARG.md new file mode 100644 index 00000000..8e455426 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5523__DEFINE_FAKE_VALUE_FUNC11_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC11_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5523` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC11_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5523:DEFINE_FAKE_VALUE_FUNC11_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L552__FAKE_VOID_FUNC7.md b/source-research/artifacts/macros/test_include_fff_h__L552__FAKE_VOID_FUNC7.md new file mode 100644 index 00000000..ef8cc071 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L552__FAKE_VOID_FUNC7.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC7` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:552` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC7\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:552:FAKE_VOID_FUNC7` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L557__DECLARE_FAKE_VOID_FUNC8.md b/source-research/artifacts/macros/test_include_fff_h__L557__DECLARE_FAKE_VOID_FUNC8.md new file mode 100644 index 00000000..061d5c9b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L557__DECLARE_FAKE_VOID_FUNC8.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC8` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:557` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC8\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:557:DECLARE_FAKE_VOID_FUNC8` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5585__FAKE_VALUE_FUNC11_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5585__FAKE_VALUE_FUNC11_VARARG.md new file mode 100644 index 00000000..164e2f28 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5585__FAKE_VALUE_FUNC11_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC11_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5585` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC11_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5585:FAKE_VALUE_FUNC11_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5590__DECLARE_FAKE_VALUE_FUNC12_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5590__DECLARE_FAKE_VALUE_FUNC12_VARARG.md new file mode 100644 index 00000000..ebeef016 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5590__DECLARE_FAKE_VALUE_FUNC12_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC12_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5590` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC12_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5590:DECLARE_FAKE_VALUE_FUNC12_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L55__RESET_FAKE.md b/source-research/artifacts/macros/test_include_fff_h__L55__RESET_FAKE.md new file mode 100644 index 00000000..9ebc2276 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L55__RESET_FAKE.md @@ -0,0 +1,59 @@ +# `RESET_FAKE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:55` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bRESET_FAKE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:55:RESET_FAKE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5614__DEFINE_FAKE_VALUE_FUNC12_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5614__DEFINE_FAKE_VALUE_FUNC12_VARARG.md new file mode 100644 index 00000000..6899cd9d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5614__DEFINE_FAKE_VALUE_FUNC12_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC12_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5614` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC12_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5614:DEFINE_FAKE_VALUE_FUNC12_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5678__FAKE_VALUE_FUNC12_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5678__FAKE_VALUE_FUNC12_VARARG.md new file mode 100644 index 00000000..e95f8d5d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5678__FAKE_VALUE_FUNC12_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC12_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5678` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC12_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5678:FAKE_VALUE_FUNC12_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5683__DECLARE_FAKE_VALUE_FUNC13_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5683__DECLARE_FAKE_VALUE_FUNC13_VARARG.md new file mode 100644 index 00000000..ed24e139 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5683__DECLARE_FAKE_VALUE_FUNC13_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC13_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5683` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC13_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5683:DECLARE_FAKE_VALUE_FUNC13_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5708__DEFINE_FAKE_VALUE_FUNC13_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5708__DEFINE_FAKE_VALUE_FUNC13_VARARG.md new file mode 100644 index 00000000..29d863b5 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5708__DEFINE_FAKE_VALUE_FUNC13_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC13_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5708` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC13_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5708:DEFINE_FAKE_VALUE_FUNC13_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L576__DEFINE_FAKE_VOID_FUNC8.md b/source-research/artifacts/macros/test_include_fff_h__L576__DEFINE_FAKE_VOID_FUNC8.md new file mode 100644 index 00000000..07a65ec5 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L576__DEFINE_FAKE_VOID_FUNC8.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC8` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:576` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC8\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:576:DEFINE_FAKE_VOID_FUNC8` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5774__FAKE_VALUE_FUNC13_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5774__FAKE_VALUE_FUNC13_VARARG.md new file mode 100644 index 00000000..1d5f9646 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5774__FAKE_VALUE_FUNC13_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC13_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5774` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC13_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5774:FAKE_VALUE_FUNC13_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5779__DECLARE_FAKE_VALUE_FUNC14_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5779__DECLARE_FAKE_VALUE_FUNC14_VARARG.md new file mode 100644 index 00000000..0ed1a39a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5779__DECLARE_FAKE_VALUE_FUNC14_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC14_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5779` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC14_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5779:DECLARE_FAKE_VALUE_FUNC14_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5805__DEFINE_FAKE_VALUE_FUNC14_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5805__DEFINE_FAKE_VALUE_FUNC14_VARARG.md new file mode 100644 index 00000000..c47bce9c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5805__DEFINE_FAKE_VALUE_FUNC14_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC14_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5805` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC14_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5805:DEFINE_FAKE_VALUE_FUNC14_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5873__FAKE_VALUE_FUNC14_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5873__FAKE_VALUE_FUNC14_VARARG.md new file mode 100644 index 00000000..752f926e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5873__FAKE_VALUE_FUNC14_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC14_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5873` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC14_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5873:FAKE_VALUE_FUNC14_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5878__DECLARE_FAKE_VALUE_FUNC15_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5878__DECLARE_FAKE_VALUE_FUNC15_VARARG.md new file mode 100644 index 00000000..34f4f7c7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5878__DECLARE_FAKE_VALUE_FUNC15_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC15_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5878` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC15_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5878:DECLARE_FAKE_VALUE_FUNC15_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5905__DEFINE_FAKE_VALUE_FUNC15_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5905__DEFINE_FAKE_VALUE_FUNC15_VARARG.md new file mode 100644 index 00000000..3774f7b6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5905__DEFINE_FAKE_VALUE_FUNC15_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC15_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5905` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC15_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5905:DEFINE_FAKE_VALUE_FUNC15_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5975__FAKE_VALUE_FUNC15_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5975__FAKE_VALUE_FUNC15_VARARG.md new file mode 100644 index 00000000..26a43cc2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5975__FAKE_VALUE_FUNC15_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC15_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5975` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC15_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5975:FAKE_VALUE_FUNC15_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L5980__DECLARE_FAKE_VALUE_FUNC16_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L5980__DECLARE_FAKE_VALUE_FUNC16_VARARG.md new file mode 100644 index 00000000..36fe2891 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L5980__DECLARE_FAKE_VALUE_FUNC16_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC16_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:5980` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC16_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:5980:DECLARE_FAKE_VALUE_FUNC16_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6008__DEFINE_FAKE_VALUE_FUNC16_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6008__DEFINE_FAKE_VALUE_FUNC16_VARARG.md new file mode 100644 index 00000000..d17cd359 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6008__DEFINE_FAKE_VALUE_FUNC16_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC16_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6008` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC16_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6008:DEFINE_FAKE_VALUE_FUNC16_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6080__FAKE_VALUE_FUNC16_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6080__FAKE_VALUE_FUNC16_VARARG.md new file mode 100644 index 00000000..b1833949 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6080__FAKE_VALUE_FUNC16_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC16_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6080` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC16_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6080:FAKE_VALUE_FUNC16_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6085__DECLARE_FAKE_VALUE_FUNC17_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6085__DECLARE_FAKE_VALUE_FUNC17_VARARG.md new file mode 100644 index 00000000..8b959e2f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6085__DECLARE_FAKE_VALUE_FUNC17_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC17_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6085` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC17_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6085:DECLARE_FAKE_VALUE_FUNC17_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L60__DECLARE_ARG.md b/source-research/artifacts/macros/test_include_fff_h__L60__DECLARE_ARG.md new file mode 100644 index 00000000..324d3056 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L60__DECLARE_ARG.md @@ -0,0 +1,59 @@ +# `DECLARE_ARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:60` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_ARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:60:DECLARE_ARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6114__DEFINE_FAKE_VALUE_FUNC17_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6114__DEFINE_FAKE_VALUE_FUNC17_VARARG.md new file mode 100644 index 00000000..40c4f622 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6114__DEFINE_FAKE_VALUE_FUNC17_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC17_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6114` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC17_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6114:DEFINE_FAKE_VALUE_FUNC17_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L616__FAKE_VOID_FUNC8.md b/source-research/artifacts/macros/test_include_fff_h__L616__FAKE_VOID_FUNC8.md new file mode 100644 index 00000000..54a55ebc --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L616__FAKE_VOID_FUNC8.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC8` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:616` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC8\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:616:FAKE_VOID_FUNC8` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6188__FAKE_VALUE_FUNC17_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6188__FAKE_VALUE_FUNC17_VARARG.md new file mode 100644 index 00000000..e6444d8b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6188__FAKE_VALUE_FUNC17_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC17_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6188` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC17_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6188:FAKE_VALUE_FUNC17_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6193__DECLARE_FAKE_VALUE_FUNC18_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6193__DECLARE_FAKE_VALUE_FUNC18_VARARG.md new file mode 100644 index 00000000..a0dc906e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6193__DECLARE_FAKE_VALUE_FUNC18_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC18_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6193` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC18_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6193:DECLARE_FAKE_VALUE_FUNC18_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L621__DECLARE_FAKE_VOID_FUNC9.md b/source-research/artifacts/macros/test_include_fff_h__L621__DECLARE_FAKE_VOID_FUNC9.md new file mode 100644 index 00000000..8e7c1825 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L621__DECLARE_FAKE_VOID_FUNC9.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC9` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:621` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC9\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:621:DECLARE_FAKE_VOID_FUNC9` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6223__DEFINE_FAKE_VALUE_FUNC18_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6223__DEFINE_FAKE_VALUE_FUNC18_VARARG.md new file mode 100644 index 00000000..e36420d2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6223__DEFINE_FAKE_VALUE_FUNC18_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC18_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6223` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC18_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6223:DEFINE_FAKE_VALUE_FUNC18_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6299__FAKE_VALUE_FUNC18_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6299__FAKE_VALUE_FUNC18_VARARG.md new file mode 100644 index 00000000..898b130a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6299__FAKE_VALUE_FUNC18_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC18_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6299` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC18_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6299:FAKE_VALUE_FUNC18_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6304__DECLARE_FAKE_VALUE_FUNC19_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6304__DECLARE_FAKE_VALUE_FUNC19_VARARG.md new file mode 100644 index 00000000..df9c9789 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6304__DECLARE_FAKE_VALUE_FUNC19_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC19_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6304` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC19_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6304:DECLARE_FAKE_VALUE_FUNC19_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6335__DEFINE_FAKE_VALUE_FUNC19_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6335__DEFINE_FAKE_VALUE_FUNC19_VARARG.md new file mode 100644 index 00000000..f80210dc --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6335__DEFINE_FAKE_VALUE_FUNC19_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC19_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6335` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC19_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6335:DEFINE_FAKE_VALUE_FUNC19_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6413__FAKE_VALUE_FUNC19_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6413__FAKE_VALUE_FUNC19_VARARG.md new file mode 100644 index 00000000..971335ea --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6413__FAKE_VALUE_FUNC19_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC19_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6413` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC19_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6413:FAKE_VALUE_FUNC19_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6418__DECLARE_FAKE_VALUE_FUNC20_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6418__DECLARE_FAKE_VALUE_FUNC20_VARARG.md new file mode 100644 index 00000000..b6a2f485 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6418__DECLARE_FAKE_VALUE_FUNC20_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC20_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6418` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC20_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6418:DECLARE_FAKE_VALUE_FUNC20_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L641__DEFINE_FAKE_VOID_FUNC9.md b/source-research/artifacts/macros/test_include_fff_h__L641__DEFINE_FAKE_VOID_FUNC9.md new file mode 100644 index 00000000..357b5871 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L641__DEFINE_FAKE_VOID_FUNC9.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC9` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:641` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC9\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:641:DEFINE_FAKE_VOID_FUNC9` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6450__DEFINE_FAKE_VALUE_FUNC20_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6450__DEFINE_FAKE_VALUE_FUNC20_VARARG.md new file mode 100644 index 00000000..83458af9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6450__DEFINE_FAKE_VALUE_FUNC20_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC20_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6450` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC20_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6450:DEFINE_FAKE_VALUE_FUNC20_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L64__DECLARE_ALL_FUNC_COMMON.md b/source-research/artifacts/macros/test_include_fff_h__L64__DECLARE_ALL_FUNC_COMMON.md new file mode 100644 index 00000000..0ce43843 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L64__DECLARE_ALL_FUNC_COMMON.md @@ -0,0 +1,59 @@ +# `DECLARE_ALL_FUNC_COMMON` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:64` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_ALL_FUNC_COMMON\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:64:DECLARE_ALL_FUNC_COMMON` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6530__FAKE_VALUE_FUNC20_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6530__FAKE_VALUE_FUNC20_VARARG.md new file mode 100644 index 00000000..69b086e8 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6530__FAKE_VALUE_FUNC20_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC20_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6530` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC20_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6530:FAKE_VALUE_FUNC20_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6535__EXPAND.md b/source-research/artifacts/macros/test_include_fff_h__L6535__EXPAND.md new file mode 100644 index 00000000..2cf33644 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6535__EXPAND.md @@ -0,0 +1,59 @@ +# `EXPAND` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6535` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bEXPAND\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6535:EXPAND` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6537__PP_NARG_MINUS2.md b/source-research/artifacts/macros/test_include_fff_h__L6537__PP_NARG_MINUS2.md new file mode 100644 index 00000000..cf1867e4 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6537__PP_NARG_MINUS2.md @@ -0,0 +1,59 @@ +# `PP_NARG_MINUS2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6537` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_NARG_MINUS2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6537:PP_NARG_MINUS2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6539__PP_NARG_MINUS2.md b/source-research/artifacts/macros/test_include_fff_h__L6539__PP_NARG_MINUS2.md new file mode 100644 index 00000000..eed68ffc --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6539__PP_NARG_MINUS2.md @@ -0,0 +1,59 @@ +# `PP_NARG_MINUS2_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6539` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_NARG_MINUS2_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6539:PP_NARG_MINUS2_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6541__PP_ARG_MINUS2_N.md b/source-research/artifacts/macros/test_include_fff_h__L6541__PP_ARG_MINUS2_N.md new file mode 100644 index 00000000..1a972d46 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6541__PP_ARG_MINUS2_N.md @@ -0,0 +1,59 @@ +# `PP_ARG_MINUS2_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6541` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_ARG_MINUS2_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6541:PP_ARG_MINUS2_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6543__PP_RSEQ_N_MINUS2.md b/source-research/artifacts/macros/test_include_fff_h__L6543__PP_RSEQ_N_MINUS2.md new file mode 100644 index 00000000..32c90353 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6543__PP_RSEQ_N_MINUS2.md @@ -0,0 +1,59 @@ +# `PP_RSEQ_N_MINUS2` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6543` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_RSEQ_N_MINUS2\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6543:PP_RSEQ_N_MINUS2` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6545__PP_NARG_MINUS1.md b/source-research/artifacts/macros/test_include_fff_h__L6545__PP_NARG_MINUS1.md new file mode 100644 index 00000000..53aa82d3 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6545__PP_NARG_MINUS1.md @@ -0,0 +1,59 @@ +# `PP_NARG_MINUS1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6545` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_NARG_MINUS1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6545:PP_NARG_MINUS1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6547__PP_NARG_MINUS1.md b/source-research/artifacts/macros/test_include_fff_h__L6547__PP_NARG_MINUS1.md new file mode 100644 index 00000000..d021209c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6547__PP_NARG_MINUS1.md @@ -0,0 +1,59 @@ +# `PP_NARG_MINUS1_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6547` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_NARG_MINUS1_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6547:PP_NARG_MINUS1_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6549__PP_ARG_MINUS1_N.md b/source-research/artifacts/macros/test_include_fff_h__L6549__PP_ARG_MINUS1_N.md new file mode 100644 index 00000000..268dfef1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6549__PP_ARG_MINUS1_N.md @@ -0,0 +1,59 @@ +# `PP_ARG_MINUS1_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6549` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_ARG_MINUS1_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6549:PP_ARG_MINUS1_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6551__PP_RSEQ_N_MINUS1.md b/source-research/artifacts/macros/test_include_fff_h__L6551__PP_RSEQ_N_MINUS1.md new file mode 100644 index 00000000..072d4f25 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6551__PP_RSEQ_N_MINUS1.md @@ -0,0 +1,59 @@ +# `PP_RSEQ_N_MINUS1` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6551` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bPP_RSEQ_N_MINUS1\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6551:PP_RSEQ_N_MINUS1` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6557__FAKE_VALUE_FUNC.md b/source-research/artifacts/macros/test_include_fff_h__L6557__FAKE_VALUE_FUNC.md new file mode 100644 index 00000000..d9ca8930 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6557__FAKE_VALUE_FUNC.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6557` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6557:FAKE_VALUE_FUNC` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6559__FUNC_VALUE.md b/source-research/artifacts/macros/test_include_fff_h__L6559__FUNC_VALUE.md new file mode 100644 index 00000000..04c3df97 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6559__FUNC_VALUE.md @@ -0,0 +1,59 @@ +# `FUNC_VALUE_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6559` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VALUE_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6559:FUNC_VALUE_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6561__FUNC_VALUE_N.md b/source-research/artifacts/macros/test_include_fff_h__L6561__FUNC_VALUE_N.md new file mode 100644 index 00000000..b8e206af --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6561__FUNC_VALUE_N.md @@ -0,0 +1,59 @@ +# `FUNC_VALUE_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6561` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VALUE_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6561:FUNC_VALUE_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6564__FAKE_VOID_FUNC.md b/source-research/artifacts/macros/test_include_fff_h__L6564__FAKE_VOID_FUNC.md new file mode 100644 index 00000000..624513ba --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6564__FAKE_VOID_FUNC.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6564` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6564:FAKE_VOID_FUNC` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6566__FUNC_VOID.md b/source-research/artifacts/macros/test_include_fff_h__L6566__FUNC_VOID.md new file mode 100644 index 00000000..4ba13a7f --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6566__FUNC_VOID.md @@ -0,0 +1,59 @@ +# `FUNC_VOID_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6566` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VOID_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6566:FUNC_VOID_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6568__FUNC_VOID_N.md b/source-research/artifacts/macros/test_include_fff_h__L6568__FUNC_VOID_N.md new file mode 100644 index 00000000..8f7915fa --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6568__FUNC_VOID_N.md @@ -0,0 +1,59 @@ +# `FUNC_VOID_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6568` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VOID_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6568:FUNC_VOID_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6571__FAKE_VALUE_FUNC_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6571__FAKE_VALUE_FUNC_VARARG.md new file mode 100644 index 00000000..ba001ec7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6571__FAKE_VALUE_FUNC_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VALUE_FUNC_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6571` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VALUE_FUNC_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6571:FAKE_VALUE_FUNC_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6573__FUNC_VALUE_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6573__FUNC_VALUE_VARARG.md new file mode 100644 index 00000000..a6770371 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6573__FUNC_VALUE_VARARG.md @@ -0,0 +1,59 @@ +# `FUNC_VALUE_VARARG_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6573` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VALUE_VARARG_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6573:FUNC_VALUE_VARARG_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6575__FUNC_VALUE_VARARG_N.md b/source-research/artifacts/macros/test_include_fff_h__L6575__FUNC_VALUE_VARARG_N.md new file mode 100644 index 00000000..078b0b5a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6575__FUNC_VALUE_VARARG_N.md @@ -0,0 +1,59 @@ +# `FUNC_VALUE_VARARG_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6575` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VALUE_VARARG_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6575:FUNC_VALUE_VARARG_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6578__FAKE_VOID_FUNC_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6578__FAKE_VOID_FUNC_VARARG.md new file mode 100644 index 00000000..a4447342 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6578__FAKE_VOID_FUNC_VARARG.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6578` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6578:FAKE_VOID_FUNC_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6580__FUNC_VOID_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6580__FUNC_VOID_VARARG.md new file mode 100644 index 00000000..8b1826bd --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6580__FUNC_VOID_VARARG.md @@ -0,0 +1,59 @@ +# `FUNC_VOID_VARARG_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6580` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VOID_VARARG_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6580:FUNC_VOID_VARARG_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6582__FUNC_VOID_VARARG_N.md b/source-research/artifacts/macros/test_include_fff_h__L6582__FUNC_VOID_VARARG_N.md new file mode 100644 index 00000000..c2be1f10 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6582__FUNC_VOID_VARARG_N.md @@ -0,0 +1,59 @@ +# `FUNC_VOID_VARARG_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6582` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFUNC_VOID_VARARG_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6582:FUNC_VOID_VARARG_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6588__DECLARE_FAKE_VALUE_FUNC.md b/source-research/artifacts/macros/test_include_fff_h__L6588__DECLARE_FAKE_VALUE_FUNC.md new file mode 100644 index 00000000..72a2adc4 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6588__DECLARE_FAKE_VALUE_FUNC.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6588` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6588:DECLARE_FAKE_VALUE_FUNC` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6590__DECLARE_FUNC_VALUE.md b/source-research/artifacts/macros/test_include_fff_h__L6590__DECLARE_FUNC_VALUE.md new file mode 100644 index 00000000..f1009351 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6590__DECLARE_FUNC_VALUE.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VALUE_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6590` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VALUE_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6590:DECLARE_FUNC_VALUE_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6592__DECLARE_FUNC_VALUE_N.md b/source-research/artifacts/macros/test_include_fff_h__L6592__DECLARE_FUNC_VALUE_N.md new file mode 100644 index 00000000..47de9734 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6592__DECLARE_FUNC_VALUE_N.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VALUE_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6592` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VALUE_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6592:DECLARE_FUNC_VALUE_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6595__DECLARE_FAKE_VOID_FUNC.md b/source-research/artifacts/macros/test_include_fff_h__L6595__DECLARE_FAKE_VOID_FUNC.md new file mode 100644 index 00000000..fdabda34 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6595__DECLARE_FAKE_VOID_FUNC.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6595` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6595:DECLARE_FAKE_VOID_FUNC` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6597__DECLARE_FUNC_VOID.md b/source-research/artifacts/macros/test_include_fff_h__L6597__DECLARE_FUNC_VOID.md new file mode 100644 index 00000000..7ab4d0b2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6597__DECLARE_FUNC_VOID.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VOID_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6597` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VOID_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6597:DECLARE_FUNC_VOID_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6599__DECLARE_FUNC_VOID_N.md b/source-research/artifacts/macros/test_include_fff_h__L6599__DECLARE_FUNC_VOID_N.md new file mode 100644 index 00000000..d57af5be --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6599__DECLARE_FUNC_VOID_N.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VOID_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6599` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VOID_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6599:DECLARE_FUNC_VOID_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6602__DECLARE_FAKE_VALUE_FUNC_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6602__DECLARE_FAKE_VALUE_FUNC_VARARG.md new file mode 100644 index 00000000..653978a0 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6602__DECLARE_FAKE_VALUE_FUNC_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VALUE_FUNC_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6602` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VALUE_FUNC_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6602:DECLARE_FAKE_VALUE_FUNC_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6604__DECLARE_FUNC_VALUE_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6604__DECLARE_FUNC_VALUE_VARARG.md new file mode 100644 index 00000000..f3921aa1 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6604__DECLARE_FUNC_VALUE_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VALUE_VARARG_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6604` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VALUE_VARARG_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6604:DECLARE_FUNC_VALUE_VARARG_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6606__DECLARE_FUNC_VALUE_VARARG_N.md b/source-research/artifacts/macros/test_include_fff_h__L6606__DECLARE_FUNC_VALUE_VARARG_N.md new file mode 100644 index 00000000..3433966b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6606__DECLARE_FUNC_VALUE_VARARG_N.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VALUE_VARARG_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6606` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VALUE_VARARG_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6606:DECLARE_FUNC_VALUE_VARARG_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6609__DECLARE_FAKE_VOID_FUNC_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6609__DECLARE_FAKE_VOID_FUNC_VARARG.md new file mode 100644 index 00000000..9e49600c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6609__DECLARE_FAKE_VOID_FUNC_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6609` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6609:DECLARE_FAKE_VOID_FUNC_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6611__DECLARE_FUNC_VOID_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6611__DECLARE_FUNC_VOID_VARARG.md new file mode 100644 index 00000000..bce56892 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6611__DECLARE_FUNC_VOID_VARARG.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VOID_VARARG_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6611` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VOID_VARARG_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6611:DECLARE_FUNC_VOID_VARARG_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6613__DECLARE_FUNC_VOID_VARARG_N.md b/source-research/artifacts/macros/test_include_fff_h__L6613__DECLARE_FUNC_VOID_VARARG_N.md new file mode 100644 index 00000000..7a073623 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6613__DECLARE_FUNC_VOID_VARARG_N.md @@ -0,0 +1,59 @@ +# `DECLARE_FUNC_VOID_VARARG_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6613` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FUNC_VOID_VARARG_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6613:DECLARE_FUNC_VOID_VARARG_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6619__DEFINE_FAKE_VALUE_FUNC.md b/source-research/artifacts/macros/test_include_fff_h__L6619__DEFINE_FAKE_VALUE_FUNC.md new file mode 100644 index 00000000..2bc2c46b --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6619__DEFINE_FAKE_VALUE_FUNC.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6619` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6619:DEFINE_FAKE_VALUE_FUNC` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6621__DEFINE_FUNC_VALUE.md b/source-research/artifacts/macros/test_include_fff_h__L6621__DEFINE_FUNC_VALUE.md new file mode 100644 index 00000000..f9e66adb --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6621__DEFINE_FUNC_VALUE.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VALUE_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6621` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VALUE_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6621:DEFINE_FUNC_VALUE_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6623__DEFINE_FUNC_VALUE_N.md b/source-research/artifacts/macros/test_include_fff_h__L6623__DEFINE_FUNC_VALUE_N.md new file mode 100644 index 00000000..b8fbd80a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6623__DEFINE_FUNC_VALUE_N.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VALUE_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6623` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VALUE_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6623:DEFINE_FUNC_VALUE_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6626__DEFINE_FAKE_VOID_FUNC.md b/source-research/artifacts/macros/test_include_fff_h__L6626__DEFINE_FAKE_VOID_FUNC.md new file mode 100644 index 00000000..5f4cf0bc --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6626__DEFINE_FAKE_VOID_FUNC.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6626` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6626:DEFINE_FAKE_VOID_FUNC` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6628__DEFINE_FUNC_VOID.md b/source-research/artifacts/macros/test_include_fff_h__L6628__DEFINE_FUNC_VOID.md new file mode 100644 index 00000000..0ab28938 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6628__DEFINE_FUNC_VOID.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VOID_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6628` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VOID_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6628:DEFINE_FUNC_VOID_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6630__DEFINE_FUNC_VOID_N.md b/source-research/artifacts/macros/test_include_fff_h__L6630__DEFINE_FUNC_VOID_N.md new file mode 100644 index 00000000..f801bc87 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6630__DEFINE_FUNC_VOID_N.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VOID_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6630` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VOID_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6630:DEFINE_FUNC_VOID_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6633__DEFINE_FAKE_VALUE_FUNC_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6633__DEFINE_FAKE_VALUE_FUNC_VARARG.md new file mode 100644 index 00000000..77de3c5d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6633__DEFINE_FAKE_VALUE_FUNC_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VALUE_FUNC_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6633` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VALUE_FUNC_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6633:DEFINE_FAKE_VALUE_FUNC_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6635__DEFINE_FUNC_VALUE_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6635__DEFINE_FUNC_VALUE_VARARG.md new file mode 100644 index 00000000..7081d0b2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6635__DEFINE_FUNC_VALUE_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VALUE_VARARG_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6635` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VALUE_VARARG_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6635:DEFINE_FUNC_VALUE_VARARG_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6637__DEFINE_FUNC_VALUE_VARARG_N.md b/source-research/artifacts/macros/test_include_fff_h__L6637__DEFINE_FUNC_VALUE_VARARG_N.md new file mode 100644 index 00000000..91859ba7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6637__DEFINE_FUNC_VALUE_VARARG_N.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VALUE_VARARG_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6637` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VALUE_VARARG_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6637:DEFINE_FUNC_VALUE_VARARG_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6640__DEFINE_FAKE_VOID_FUNC_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6640__DEFINE_FAKE_VOID_FUNC_VARARG.md new file mode 100644 index 00000000..5e57d4af --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6640__DEFINE_FAKE_VOID_FUNC_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC_VARARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6640` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC_VARARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6640:DEFINE_FAKE_VOID_FUNC_VARARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6642__DEFINE_FUNC_VOID_VARARG.md b/source-research/artifacts/macros/test_include_fff_h__L6642__DEFINE_FUNC_VOID_VARARG.md new file mode 100644 index 00000000..a47a1e3e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6642__DEFINE_FUNC_VOID_VARARG.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VOID_VARARG_` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6642` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VOID_VARARG_\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6642:DEFINE_FUNC_VOID_VARARG_` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L6644__DEFINE_FUNC_VOID_VARARG_N.md b/source-research/artifacts/macros/test_include_fff_h__L6644__DEFINE_FUNC_VOID_VARARG_N.md new file mode 100644 index 00000000..d5315ff6 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L6644__DEFINE_FUNC_VOID_VARARG_N.md @@ -0,0 +1,59 @@ +# `DEFINE_FUNC_VOID_VARARG_N` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:6644` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FUNC_VOID_VARARG_N\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:6644:DEFINE_FUNC_VOID_VARARG_N` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L683__FAKE_VOID_FUNC9.md b/source-research/artifacts/macros/test_include_fff_h__L683__FAKE_VOID_FUNC9.md new file mode 100644 index 00000000..6fc3ca65 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L683__FAKE_VOID_FUNC9.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC9` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:683` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC9\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:683:FAKE_VOID_FUNC9` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L688__DECLARE_FAKE_VOID_FUNC10.md b/source-research/artifacts/macros/test_include_fff_h__L688__DECLARE_FAKE_VOID_FUNC10.md new file mode 100644 index 00000000..3307f5d4 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L688__DECLARE_FAKE_VOID_FUNC10.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC10` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:688` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC10\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:688:DECLARE_FAKE_VOID_FUNC10` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L69__DECLARE_RETURN_VALUE_HISTORY.md b/source-research/artifacts/macros/test_include_fff_h__L69__DECLARE_RETURN_VALUE_HISTORY.md new file mode 100644 index 00000000..b4cfc6ab --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L69__DECLARE_RETURN_VALUE_HISTORY.md @@ -0,0 +1,59 @@ +# `DECLARE_RETURN_VALUE_HISTORY` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:69` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_RETURN_VALUE_HISTORY\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:69:DECLARE_RETURN_VALUE_HISTORY` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L709__DEFINE_FAKE_VOID_FUNC10.md b/source-research/artifacts/macros/test_include_fff_h__L709__DEFINE_FAKE_VOID_FUNC10.md new file mode 100644 index 00000000..759c24e9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L709__DEFINE_FAKE_VOID_FUNC10.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC10` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:709` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC10\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:709:DEFINE_FAKE_VOID_FUNC10` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L72__SAVE_ARG.md b/source-research/artifacts/macros/test_include_fff_h__L72__SAVE_ARG.md new file mode 100644 index 00000000..48f29523 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L72__SAVE_ARG.md @@ -0,0 +1,59 @@ +# `SAVE_ARG` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:72` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSAVE_ARG\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:72:SAVE_ARG` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L753__FAKE_VOID_FUNC10.md b/source-research/artifacts/macros/test_include_fff_h__L753__FAKE_VOID_FUNC10.md new file mode 100644 index 00000000..e2158f51 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L753__FAKE_VOID_FUNC10.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC10` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:753` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC10\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:753:FAKE_VOID_FUNC10` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L758__DECLARE_FAKE_VOID_FUNC11.md b/source-research/artifacts/macros/test_include_fff_h__L758__DECLARE_FAKE_VOID_FUNC11.md new file mode 100644 index 00000000..ff0b7ac7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L758__DECLARE_FAKE_VOID_FUNC11.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC11` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:758` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC11\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:758:DECLARE_FAKE_VOID_FUNC11` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L75__ROOM_FOR_MORE_HISTORY.md b/source-research/artifacts/macros/test_include_fff_h__L75__ROOM_FOR_MORE_HISTORY.md new file mode 100644 index 00000000..5f6f34f9 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L75__ROOM_FOR_MORE_HISTORY.md @@ -0,0 +1,59 @@ +# `ROOM_FOR_MORE_HISTORY` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:75` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bROOM_FOR_MORE_HISTORY\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:75:ROOM_FOR_MORE_HISTORY` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L780__DEFINE_FAKE_VOID_FUNC11.md b/source-research/artifacts/macros/test_include_fff_h__L780__DEFINE_FAKE_VOID_FUNC11.md new file mode 100644 index 00000000..ab00313c --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L780__DEFINE_FAKE_VOID_FUNC11.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC11` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:780` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC11\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:780:DEFINE_FAKE_VOID_FUNC11` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L78__SAVE_RET_HISTORY.md b/source-research/artifacts/macros/test_include_fff_h__L78__SAVE_RET_HISTORY.md new file mode 100644 index 00000000..aa1867fe --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L78__SAVE_RET_HISTORY.md @@ -0,0 +1,59 @@ +# `SAVE_RET_HISTORY` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:78` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSAVE_RET_HISTORY\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:78:SAVE_RET_HISTORY` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L826__FAKE_VOID_FUNC11.md b/source-research/artifacts/macros/test_include_fff_h__L826__FAKE_VOID_FUNC11.md new file mode 100644 index 00000000..82c3b9a2 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L826__FAKE_VOID_FUNC11.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC11` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:826` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC11\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:826:FAKE_VOID_FUNC11` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L82__SAVE_ARG_HISTORY.md b/source-research/artifacts/macros/test_include_fff_h__L82__SAVE_ARG_HISTORY.md new file mode 100644 index 00000000..b189ce9a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L82__SAVE_ARG_HISTORY.md @@ -0,0 +1,59 @@ +# `SAVE_ARG_HISTORY` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:82` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSAVE_ARG_HISTORY\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:82:SAVE_ARG_HISTORY` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L831__DECLARE_FAKE_VOID_FUNC12.md b/source-research/artifacts/macros/test_include_fff_h__L831__DECLARE_FAKE_VOID_FUNC12.md new file mode 100644 index 00000000..f8daf399 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L831__DECLARE_FAKE_VOID_FUNC12.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC12` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:831` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC12\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:831:DECLARE_FAKE_VOID_FUNC12` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L854__DEFINE_FAKE_VOID_FUNC12.md b/source-research/artifacts/macros/test_include_fff_h__L854__DEFINE_FAKE_VOID_FUNC12.md new file mode 100644 index 00000000..63df23c4 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L854__DEFINE_FAKE_VOID_FUNC12.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC12` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:854` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC12\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:854:DEFINE_FAKE_VOID_FUNC12` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L85__HISTORY_DROPPED.md b/source-research/artifacts/macros/test_include_fff_h__L85__HISTORY_DROPPED.md new file mode 100644 index 00000000..727e49cb --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L85__HISTORY_DROPPED.md @@ -0,0 +1,59 @@ +# `HISTORY_DROPPED` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:85` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bHISTORY_DROPPED\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:85:HISTORY_DROPPED` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L88__DECLARE_VALUE_FUNCTION_VARIABLES.md b/source-research/artifacts/macros/test_include_fff_h__L88__DECLARE_VALUE_FUNCTION_VARIABLES.md new file mode 100644 index 00000000..ba2cb7a7 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L88__DECLARE_VALUE_FUNCTION_VARIABLES.md @@ -0,0 +1,59 @@ +# `DECLARE_VALUE_FUNCTION_VARIABLES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:88` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_VALUE_FUNCTION_VARIABLES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:88:DECLARE_VALUE_FUNCTION_VARIABLES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L902__FAKE_VOID_FUNC12.md b/source-research/artifacts/macros/test_include_fff_h__L902__FAKE_VOID_FUNC12.md new file mode 100644 index 00000000..48ccc3ea --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L902__FAKE_VOID_FUNC12.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC12` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:902` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC12\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:902:FAKE_VOID_FUNC12` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L907__DECLARE_FAKE_VOID_FUNC13.md b/source-research/artifacts/macros/test_include_fff_h__L907__DECLARE_FAKE_VOID_FUNC13.md new file mode 100644 index 00000000..6c3f7b8e --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L907__DECLARE_FAKE_VOID_FUNC13.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC13` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:907` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC13\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:907:DECLARE_FAKE_VOID_FUNC13` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L931__DEFINE_FAKE_VOID_FUNC13.md b/source-research/artifacts/macros/test_include_fff_h__L931__DEFINE_FAKE_VOID_FUNC13.md new file mode 100644 index 00000000..fef6f087 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L931__DEFINE_FAKE_VOID_FUNC13.md @@ -0,0 +1,59 @@ +# `DEFINE_FAKE_VOID_FUNC13` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:931` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDEFINE_FAKE_VOID_FUNC13\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:931:DEFINE_FAKE_VOID_FUNC13` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L94__DECLARE_CUSTOM_FAKE_SEQ_VARIABLES.md b/source-research/artifacts/macros/test_include_fff_h__L94__DECLARE_CUSTOM_FAKE_SEQ_VARIABLES.md new file mode 100644 index 00000000..2c27aa6d --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L94__DECLARE_CUSTOM_FAKE_SEQ_VARIABLES.md @@ -0,0 +1,59 @@ +# `DECLARE_CUSTOM_FAKE_SEQ_VARIABLES` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:94` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_CUSTOM_FAKE_SEQ_VARIABLES\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:94:DECLARE_CUSTOM_FAKE_SEQ_VARIABLES` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L981__FAKE_VOID_FUNC13.md b/source-research/artifacts/macros/test_include_fff_h__L981__FAKE_VOID_FUNC13.md new file mode 100644 index 00000000..8993ea9a --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L981__FAKE_VOID_FUNC13.md @@ -0,0 +1,59 @@ +# `FAKE_VOID_FUNC13` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:981` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFAKE_VOID_FUNC13\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:981:FAKE_VOID_FUNC13` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L986__DECLARE_FAKE_VOID_FUNC14.md b/source-research/artifacts/macros/test_include_fff_h__L986__DECLARE_FAKE_VOID_FUNC14.md new file mode 100644 index 00000000..256d25ed --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L986__DECLARE_FAKE_VOID_FUNC14.md @@ -0,0 +1,59 @@ +# `DECLARE_FAKE_VOID_FUNC14` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:986` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bDECLARE_FAKE_VOID_FUNC14\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:986:DECLARE_FAKE_VOID_FUNC14` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_include_fff_h__L98__INCREMENT_CALL_COUNT.md b/source-research/artifacts/macros/test_include_fff_h__L98__INCREMENT_CALL_COUNT.md new file mode 100644 index 00000000..52731563 --- /dev/null +++ b/source-research/artifacts/macros/test_include_fff_h__L98__INCREMENT_CALL_COUNT.md @@ -0,0 +1,59 @@ +# `INCREMENT_CALL_COUNT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/include/fff.h:98` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bINCREMENT_CALL_COUNT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/include/fff.h:98:INCREMENT_CALL_COUNT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L26__FIELD.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L26__FIELD.md new file mode 100644 index 00000000..1c672ba1 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L26__FIELD.md @@ -0,0 +1,59 @@ +# `FIELD` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:26` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bFIELD\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:26:FIELD` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L28__JINTEGER_MAX_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L28__JINTEGER_MAX_STR.md new file mode 100644 index 00000000..08e1c190 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L28__JINTEGER_MAX_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MAX_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:28` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MAX_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:28:JINTEGER_MAX_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L33__JINTEGER_MAX_TO_FLOAT.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L33__JINTEGER_MAX_TO_FLOAT.md new file mode 100644 index 00000000..c5e38c2f --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L33__JINTEGER_MAX_TO_FLOAT.md @@ -0,0 +1,59 @@ +# `JINTEGER_MAX_TO_FLOAT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:33` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MAX_TO_FLOAT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:33:JINTEGER_MAX_TO_FLOAT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L34__JINTEGER_MAX_TO_FLOAT_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L34__JINTEGER_MAX_TO_FLOAT_STR.md new file mode 100644 index 00000000..ad0b09f7 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L34__JINTEGER_MAX_TO_FLOAT_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MAX_TO_FLOAT_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:34` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MAX_TO_FLOAT_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:34:JINTEGER_MAX_TO_FLOAT_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L38__JINTEGER_MAX_PLUS_4096.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L38__JINTEGER_MAX_PLUS_4096.md new file mode 100644 index 00000000..06df0885 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L38__JINTEGER_MAX_PLUS_4096.md @@ -0,0 +1,59 @@ +# `JINTEGER_MAX_PLUS_4096` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:38` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MAX_PLUS_4096\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:38:JINTEGER_MAX_PLUS_4096` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L39__JINTEGER_MAX_PLUS_4096_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L39__JINTEGER_MAX_PLUS_4096_STR.md new file mode 100644 index 00000000..d47a9266 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L39__JINTEGER_MAX_PLUS_4096_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MAX_PLUS_4096_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:39` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MAX_PLUS_4096_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:39:JINTEGER_MAX_PLUS_4096_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L41__JINTEGER_MAX_PLUS_4096_TO_FLOAT.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L41__JINTEGER_MAX_PLUS_4096_TO_FLOAT.md new file mode 100644 index 00000000..e1fa0ab6 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L41__JINTEGER_MAX_PLUS_4096_TO_FLOAT.md @@ -0,0 +1,59 @@ +# `JINTEGER_MAX_PLUS_4096_TO_FLOAT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:41` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MAX_PLUS_4096_TO_FLOAT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:41:JINTEGER_MAX_PLUS_4096_TO_FLOAT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L42__JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L42__JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR.md new file mode 100644 index 00000000..0eb9e3e5 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L42__JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:42` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MAX_PLUS_4096_TO_FLOAT_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:42:JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L44__JINTEGER_MIN_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L44__JINTEGER_MIN_STR.md new file mode 100644 index 00000000..da3b4721 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L44__JINTEGER_MIN_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MIN_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:44` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MIN_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:44:JINTEGER_MIN_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L47__JINTEGER_MIN_TO_FLOAT.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L47__JINTEGER_MIN_TO_FLOAT.md new file mode 100644 index 00000000..4b3b1885 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L47__JINTEGER_MIN_TO_FLOAT.md @@ -0,0 +1,59 @@ +# `JINTEGER_MIN_TO_FLOAT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:47` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MIN_TO_FLOAT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:47:JINTEGER_MIN_TO_FLOAT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L48__JINTEGER_MIN_TO_FLOAT_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L48__JINTEGER_MIN_TO_FLOAT_STR.md new file mode 100644 index 00000000..a2b7fb63 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L48__JINTEGER_MIN_TO_FLOAT_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MIN_TO_FLOAT_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:48` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MIN_TO_FLOAT_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:48:JINTEGER_MIN_TO_FLOAT_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L50__JINTEGER_MIN_MINUS_4096.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L50__JINTEGER_MIN_MINUS_4096.md new file mode 100644 index 00000000..d675a52d --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L50__JINTEGER_MIN_MINUS_4096.md @@ -0,0 +1,59 @@ +# `JINTEGER_MIN_MINUS_4096` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:50` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MIN_MINUS_4096\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:50:JINTEGER_MIN_MINUS_4096` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L51__JINTEGER_MIN_MINUS_4096_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L51__JINTEGER_MIN_MINUS_4096_STR.md new file mode 100644 index 00000000..efb9d83a --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L51__JINTEGER_MIN_MINUS_4096_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MIN_MINUS_4096_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:51` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MIN_MINUS_4096_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:51:JINTEGER_MIN_MINUS_4096_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L53__JINTEGER_MIN_MINUS_4096_TO_FLOAT.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L53__JINTEGER_MIN_MINUS_4096_TO_FLOAT.md new file mode 100644 index 00000000..28f087e9 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L53__JINTEGER_MIN_MINUS_4096_TO_FLOAT.md @@ -0,0 +1,59 @@ +# `JINTEGER_MIN_MINUS_4096_TO_FLOAT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:53` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MIN_MINUS_4096_TO_FLOAT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:53:JINTEGER_MIN_MINUS_4096_TO_FLOAT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L54__JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L54__JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR.md new file mode 100644 index 00000000..2eed2b53 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L54__JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR.md @@ -0,0 +1,59 @@ +# `JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:54` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bJINTEGER_MIN_MINUS_4096_TO_FLOAT_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:54:JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L56__SMALL_FLOAT.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L56__SMALL_FLOAT.md new file mode 100644 index 00000000..33d92ad6 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L56__SMALL_FLOAT.md @@ -0,0 +1,59 @@ +# `SMALL_FLOAT` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:56` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSMALL_FLOAT\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:56:SMALL_FLOAT` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L57__SMALL_FLOAT_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L57__SMALL_FLOAT_STR.md new file mode 100644 index 00000000..d32faa28 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L57__SMALL_FLOAT_STR.md @@ -0,0 +1,59 @@ +# `SMALL_FLOAT_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:57` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSMALL_FLOAT_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:57:SMALL_FLOAT_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L59__UNIX_TIMESTAMP.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L59__UNIX_TIMESTAMP.md new file mode 100644 index 00000000..34e90908 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L59__UNIX_TIMESTAMP.md @@ -0,0 +1,59 @@ +# `UNIX_TIMESTAMP` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:59` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bUNIX_TIMESTAMP\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:59:UNIX_TIMESTAMP` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L60__UNIX_TIMESTAMP_STR.md b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L60__UNIX_TIMESTAMP_STR.md new file mode 100644 index 00000000..a48010e9 --- /dev/null +++ b/source-research/artifacts/macros/test_src_JSON_number_handling_test_cpp__L60__UNIX_TIMESTAMP_STR.md @@ -0,0 +1,59 @@ +# `UNIX_TIMESTAMP_STR` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/JSON_number_handling_test.cpp:60` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bUNIX_TIMESTAMP_STR\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/JSON_number_handling_test.cpp:60:UNIX_TIMESTAMP_STR` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/macros/test_src__serialNoteTransaction_test_cpp__L80__SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE.md b/source-research/artifacts/macros/test_src__serialNoteTransaction_test_cpp__L80__SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE.md new file mode 100644 index 00000000..847f607f --- /dev/null +++ b/source-research/artifacts/macros/test_src__serialNoteTransaction_test_cpp__L80__SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE.md @@ -0,0 +1,59 @@ +# `SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: macro +- Definition: `test/src/_serialNoteTransaction_test.cpp:80` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `macro:test/src/_serialNoteTransaction_test.cpp:80:SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/n_cjson_c__L232__lconv.md b/source-research/artifacts/types/n_cjson_c__L232__lconv.md new file mode 100644 index 00000000..d655d926 --- /dev/null +++ b/source-research/artifacts/types/n_cjson_c__L232__lconv.md @@ -0,0 +1,55 @@ +# `lconv` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: struct reference +- Definition: `n_cjson.c:232` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `lconv` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: external C library `struct lconv *` local variable +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: External `struct lconv` from locale support. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +This is not a project-defined struct; the extractor captured the locale-library `struct lconv` reference used only when `ENABLE_LOCALES` is defined. `_get_decimal_point` reads `decimal_point[0]`; otherwise it returns `'.'`. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used only by `_get_decimal_point` under `ENABLE_LOCALES`. + +## Role In Callers + +Provides locale-aware decimal separator lookup when locale support is enabled. + +## Tests Observed + +No focused test found for `ENABLE_LOCALES` branch. + +## Graph Links + +- Graph node id: `struct:n_cjson.c:232:lconv` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edge to `_get_decimal_point`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_c__L239__typedef_239.md b/source-research/artifacts/types/n_cjson_c__L239__typedef_239.md new file mode 100644 index 00000000..db1e4c32 --- /dev/null +++ b/source-research/artifacts/types/n_cjson_c__L239__typedef_239.md @@ -0,0 +1,55 @@ +# `typedef_239` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_cjson.c:239` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_239` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: anonymous `parse_buffer` struct typedef +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Internal parser state object. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Carries parser content pointer, length, offset, and recursion depth through cJSON parse helpers. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `JParseWithOpts`, whitespace/BOM skip helpers, `_parse_value`, `_parse_array`, `_parse_object`, `_parse_number`, and `_parse_string`. + +## Role In Callers + +Centralizes parser cursor and nesting-depth state, including nesting-limit enforcement. + +## Tests Observed + +Focused cJSON parse tests cover parsing behavior; nesting-limit tests cover depth behavior. + +## Graph Links + +- Graph node id: `typedef:n_cjson.c:239:typedef_239` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_c__L340__typedef_340.md b/source-research/artifacts/types/n_cjson_c__L340__typedef_340.md new file mode 100644 index 00000000..87b8c62d --- /dev/null +++ b/source-research/artifacts/types/n_cjson_c__L340__typedef_340.md @@ -0,0 +1,55 @@ +# `typedef_340` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_cjson.c:340` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_340` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: anonymous `printbuffer` struct typedef +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Uses `Jbool` fields for print options. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Carries output buffer pointer, capacity, offset, nesting depth, allocation mode, formatting flag, and omit-empty flag through cJSON print helpers. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `_ensure`, `_update_offset`, `_print`, `JPrintBuffered`, `JPrintPreallocated`, `_print_value`, `_print_array`, `_print_object`, and related print helpers. + +## Role In Callers + +Centralizes print buffer growth and formatted/unformatted/omit-empty behavior. + +## Tests Observed + +Focused cJSON print tests cover formatted, unformatted, preallocated, and omit-empty output behavior. + +## Graph Links + +- Graph node id: `typedef:n_cjson.c:340:typedef_340` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_c__L82__typedef_82.md b/source-research/artifacts/types/n_cjson_c__L82__typedef_82.md new file mode 100644 index 00000000..9ad3f12b --- /dev/null +++ b/source-research/artifacts/types/n_cjson_c__L82__typedef_82.md @@ -0,0 +1,55 @@ +# `typedef_82` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_cjson.c:82` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_82` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: anonymous `error` struct typedef with `json` pointer and `position` offset +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Internal cJSON parse-error state. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the translation-unit-local parse error record used by `global_error` and returned through `JGetErrorPtr`. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `global_error`, `JGetErrorPtr`, and `JParseWithOpts` parse error recording. + +## Role In Callers + +Stores parse error location without allocating. + +## Tests Observed + +Focused parse-error tests exercise `JGetErrorPtr` behavior. + +## Graph Links + +- Graph node id: `typedef:n_cjson.c:82:typedef_82` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_h__L103__Jbool.md b/source-research/artifacts/types/n_cjson_h__L103__Jbool.md new file mode 100644 index 00000000..c7a1a457 --- /dev/null +++ b/source-research/artifacts/types/n_cjson_h__L103__Jbool.md @@ -0,0 +1,55 @@ +# `Jbool` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_cjson.h:103` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `Jbool` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `typedef int Jbool` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Alias to `int`. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the cJSON-compatible boolean return/parameter type used by parse/print/classifier APIs. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used broadly by cJSON functions such as `JParseWithOpts`, `JCreateBool`, `JPrintPreallocated`, classifiers, compare, and internal parse/print helpers. + +## Role In Callers + +Provides ABI-compatible boolean-ish integer type distinct from C `bool` in the cJSON layer. + +## Tests Observed + +Focused cJSON tests exercise functions returning and accepting `Jbool`. + +## Graph Links + +- Graph node id: `typedef:n_cjson.h:103:Jbool` +- Structured graph: `inventory/dependency-graph.json` +- Representative `uses_type` edges connect cJSON bool APIs to this typedef. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_h__L78__typedef_78.md b/source-research/artifacts/types/n_cjson_h__L78__typedef_78.md new file mode 100644 index 00000000..4cd505d1 --- /dev/null +++ b/source-research/artifacts/types/n_cjson_h__L78__typedef_78.md @@ -0,0 +1,55 @@ +# `typedef_78` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_cjson.h:78` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_78` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `typedef struct J { ... } J` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Depends on `JINTEGER` and `JNUMBER` fields. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the core JSON object type used throughout note-c. The struct includes linked-list pointers, child pointer, type flags, string/number values, and object key string. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Referenced by nearly all JSON APIs as `J *` or `const J *`. + +## Role In Callers + +Provides the central in-memory JSON representation. Public comments advise treating it as opaque even though fields are visible for cJSON compatibility. + +## Tests Observed + +Focused cJSON and helper tests cover creation, parsing, printing, lookup, deletion, and mutation behavior. + +## Graph Links + +- Graph node id: `typedef:n_cjson.h:78:typedef_78` +- Structured graph: `inventory/dependency-graph.json` +- Representative `uses_type` edges connect core JSON functions to this typedef. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_h__L80__J.md b/source-research/artifacts/types/n_cjson_h__L80__J.md new file mode 100644 index 00000000..aa97e914 --- /dev/null +++ b/source-research/artifacts/types/n_cjson_h__L80__J.md @@ -0,0 +1,55 @@ +# `J` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: struct field +- Definition: `n_cjson.h:80` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `J` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `next` sibling pointer inside `typedef struct J` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Field belongs to `typedef struct J` / `J`. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Represents a recursive pointer field in the public cJSON-compatible `J` object struct; it is not a separate project-defined struct despite the generated node kind. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used throughout cJSON object/array manipulation through `J *` objects; exact field use is concentrated in list traversal, deletion, duplication, and object/array helpers. + +## Role In Callers + +Maintains linked-list and child-chain topology for JSON arrays and objects. + +## Tests Observed + +Focused cJSON tests exercise object/array creation, traversal, deletion, and duplication behavior. + +## Graph Links + +- Graph node id: `struct:n_cjson.h:80:J` +- Structured graph: `inventory/dependency-graph.json` +- Linked to representative `J` object users in the graph. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_h__L81__J.md b/source-research/artifacts/types/n_cjson_h__L81__J.md new file mode 100644 index 00000000..79f5e60a --- /dev/null +++ b/source-research/artifacts/types/n_cjson_h__L81__J.md @@ -0,0 +1,55 @@ +# `J` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: struct field +- Definition: `n_cjson.h:81` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `J` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `prev` sibling pointer inside `typedef struct J` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Field belongs to `typedef struct J` / `J`. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Represents a recursive pointer field in the public cJSON-compatible `J` object struct; it is not a separate project-defined struct despite the generated node kind. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used throughout cJSON object/array manipulation through `J *` objects; exact field use is concentrated in list traversal, deletion, duplication, and object/array helpers. + +## Role In Callers + +Maintains linked-list and child-chain topology for JSON arrays and objects. + +## Tests Observed + +Focused cJSON tests exercise object/array creation, traversal, deletion, and duplication behavior. + +## Graph Links + +- Graph node id: `struct:n_cjson.h:81:J` +- Structured graph: `inventory/dependency-graph.json` +- Linked to representative `J` object users in the graph. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_h__L83__J.md b/source-research/artifacts/types/n_cjson_h__L83__J.md new file mode 100644 index 00000000..20f5f074 --- /dev/null +++ b/source-research/artifacts/types/n_cjson_h__L83__J.md @@ -0,0 +1,55 @@ +# `J` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: struct field +- Definition: `n_cjson.h:83` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `J` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `child` chain pointer inside `typedef struct J` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Field belongs to `typedef struct J` / `J`. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Represents a recursive pointer field in the public cJSON-compatible `J` object struct; it is not a separate project-defined struct despite the generated node kind. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used throughout cJSON object/array manipulation through `J *` objects; exact field use is concentrated in list traversal, deletion, duplication, and object/array helpers. + +## Role In Callers + +Maintains linked-list and child-chain topology for JSON arrays and objects. + +## Tests Observed + +Focused cJSON tests exercise object/array creation, traversal, deletion, and duplication behavior. + +## Graph Links + +- Graph node id: `struct:n_cjson.h:83:J` +- Structured graph: `inventory/dependency-graph.json` +- Linked to representative `J` object users in the graph. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_cjson_h__L98__typedef_98.md b/source-research/artifacts/types/n_cjson_h__L98__typedef_98.md new file mode 100644 index 00000000..18c55238 --- /dev/null +++ b/source-research/artifacts/types/n_cjson_h__L98__typedef_98.md @@ -0,0 +1,55 @@ +# `typedef_98` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_cjson.h:98` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_98` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `typedef struct JHooks { malloc_fn, free_fn } JHooks` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Uses function pointer fields for allocation/free callbacks. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines custom allocator hooks for cJSON-compatible memory management. It carries allocator and free function pointers. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Declared in `n_cjson.h`; exact source search found the public `JInitHooks(JHooks *hooks)` declaration but no in-repo implementation body. + +## Role In Callers + +Preserves cJSON API compatibility for allocator customization. + +## Tests Observed + +No focused test found for `JInitHooks`/`JHooks` behavior. + +## Graph Links + +- Graph node id: `typedef:n_cjson.h:98:typedef_98` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_helpers_c__L2388__typedef_2388.md b/source-research/artifacts/types/n_helpers_c__L2388__typedef_2388.md new file mode 100644 index 00000000..39c2ef7b --- /dev/null +++ b/source-research/artifacts/types/n_helpers_c__L2388__typedef_2388.md @@ -0,0 +1,55 @@ +# `typedef_2388` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_helpers.c:2388` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_2388` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `typedef struct objHeader_s { ... } objHeader` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Internal helper struct alias. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines an internal linked allocation header used only by `NoteMemAvailable` while probing heap capacity. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `NoteMemAvailable` for allocation-chain bookkeeping and free-list exercise. + +## Role In Callers + +Supports a diagnostic memory-availability probe; not part of public API. + +## Tests Observed + +No focused test found for `NoteMemAvailable` internals. + +## Graph Links + +- Graph node id: `typedef:n_helpers.c:2388:typedef_2388` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edge to `NoteMemAvailable`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_helpers_c__L2389__objHeader_s.md b/source-research/artifacts/types/n_helpers_c__L2389__objHeader_s.md new file mode 100644 index 00000000..7d274504 --- /dev/null +++ b/source-research/artifacts/types/n_helpers_c__L2389__objHeader_s.md @@ -0,0 +1,55 @@ +# `objHeader_s` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: struct field +- Definition: `n_helpers.c:2389` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `objHeader_s` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: recursive `prev` field inside `objHeader_s` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Field belongs to `objHeader` typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Represents the previous-header link inside the internal `objHeader_s` chain; the generated node is field-level rather than a distinct external type. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `NoteMemAvailable` through `objHeader *lastObj` and `prev` chain traversal. + +## Role In Callers + +Allows the memory probe to free all successfully allocated blocks after probing. + +## Tests Observed + +No focused test found for this internal memory probe. + +## Graph Links + +- Graph node id: `struct:n_helpers.c:2389:objHeader_s` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edge to `NoteMemAvailable`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_hooks_c__L190__nNoteResetFn.md b/source-research/artifacts/types/n_hooks_c__L190__nNoteResetFn.md new file mode 100644 index 00000000..324607b8 --- /dev/null +++ b/source-research/artifacts/types/n_hooks_c__L190__nNoteResetFn.md @@ -0,0 +1,55 @@ +# `nNoteResetFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_hooks.c:190` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `nNoteResetFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `bool (*)(void)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Internal function pointer type. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the internal active-interface function-pointer slot type used by `n_hooks.c` to route hard reset, JSON transaction, chunked receive, or chunked transmit through the selected I2C/serial implementation. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by the corresponding `notecard*` static function pointer global and assigned by `_noteSetActiveInterface`. + +## Role In Callers + +Keeps platform-specific transport dispatch behind typed internal hooks. + +## Tests Observed + +Focused hook/transport tests exercise active interface selection and dispatch behavior. + +## Graph Links + +- Graph node id: `typedef:n_hooks.c:190:nNoteResetFn` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edge to `_noteSetActiveInterface`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_hooks_c__L191__nTransactionFn.md b/source-research/artifacts/types/n_hooks_c__L191__nTransactionFn.md new file mode 100644 index 00000000..5156e8e7 --- /dev/null +++ b/source-research/artifacts/types/n_hooks_c__L191__nTransactionFn.md @@ -0,0 +1,55 @@ +# `nTransactionFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_hooks.c:191` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `nTransactionFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `const char *(*)(const char *, size_t, char **, uint32_t)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Internal function pointer type. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the internal active-interface function-pointer slot type used by `n_hooks.c` to route hard reset, JSON transaction, chunked receive, or chunked transmit through the selected I2C/serial implementation. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by the corresponding `notecard*` static function pointer global and assigned by `_noteSetActiveInterface`. + +## Role In Callers + +Keeps platform-specific transport dispatch behind typed internal hooks. + +## Tests Observed + +Focused hook/transport tests exercise active interface selection and dispatch behavior. + +## Graph Links + +- Graph node id: `typedef:n_hooks.c:191:nTransactionFn` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edge to `_noteSetActiveInterface`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_hooks_c__L192__nReceiveFn.md b/source-research/artifacts/types/n_hooks_c__L192__nReceiveFn.md new file mode 100644 index 00000000..5bd452a0 --- /dev/null +++ b/source-research/artifacts/types/n_hooks_c__L192__nReceiveFn.md @@ -0,0 +1,55 @@ +# `nReceiveFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_hooks.c:192` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `nReceiveFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `const char *(*)(uint8_t *, uint32_t *, bool, uint32_t, uint32_t *)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Internal function pointer type. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the internal active-interface function-pointer slot type used by `n_hooks.c` to route hard reset, JSON transaction, chunked receive, or chunked transmit through the selected I2C/serial implementation. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by the corresponding `notecard*` static function pointer global and assigned by `_noteSetActiveInterface`. + +## Role In Callers + +Keeps platform-specific transport dispatch behind typed internal hooks. + +## Tests Observed + +Focused hook/transport tests exercise active interface selection and dispatch behavior. + +## Graph Links + +- Graph node id: `typedef:n_hooks.c:192:nReceiveFn` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edge to `_noteSetActiveInterface`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/n_hooks_c__L193__nTransmitFn.md b/source-research/artifacts/types/n_hooks_c__L193__nTransmitFn.md new file mode 100644 index 00000000..21169d18 --- /dev/null +++ b/source-research/artifacts/types/n_hooks_c__L193__nTransmitFn.md @@ -0,0 +1,55 @@ +# `nTransmitFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `n_hooks.c:193` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `nTransmitFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `const char *(*)(const uint8_t *, uint32_t, bool)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Internal function pointer type. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the internal active-interface function-pointer slot type used by `n_hooks.c` to route hard reset, JSON transaction, chunked receive, or chunked transmit through the selected I2C/serial implementation. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by the corresponding `notecard*` static function pointer global and assigned by `_noteSetActiveInterface`. + +## Role In Callers + +Keeps platform-specific transport dispatch behind typed internal hooks. + +## Tests Observed + +Focused hook/transport tests exercise active interface selection and dispatch behavior. + +## Graph Links + +- Graph node id: `typedef:n_hooks.c:193:nTransmitFn` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edge to `_noteSetActiveInterface`. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L100__JUINTEGER.md b/source-research/artifacts/types/note_h__L100__JUINTEGER.md new file mode 100644 index 00000000..7ec431a3 --- /dev/null +++ b/source-research/artifacts/types/note_h__L100__JUINTEGER.md @@ -0,0 +1,55 @@ +# `JUINTEGER` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:100` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `JUINTEGER` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `typedef uint64_t JUINTEGER` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Aliases a standard integer/floating type or another SDK typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines unsigned integer helper type, including safe conversion support for `JItoA`. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `JTIME` and `JItoA` unsigned conversion of negative values. + +## Role In Callers + +Provides the public scalar contract for JSON numeric or time APIs. + +## Tests Observed + +Focused `JItoA_test.cpp` covers min/max conversion behavior. + +## Graph Links + +- Graph node id: `typedef:note.h:100:JUINTEGER` +- Structured graph: `inventory/dependency-graph.json` +- Representative `uses_type` graph edges connect consuming APIs to this typedef. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L105__JTIME.md b/source-research/artifacts/types/note_h__L105__JTIME.md new file mode 100644 index 00000000..8acb2d06 --- /dev/null +++ b/source-research/artifacts/types/note_h__L105__JTIME.md @@ -0,0 +1,55 @@ +# `JTIME` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:105` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `JTIME` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `typedef JUINTEGER JTIME` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Aliases a standard integer/floating type or another SDK typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines epoch-second time values returned by Notecard time/status/location helpers. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by time base globals and functions such as `NoteTime`, `NoteTimeST`, `NoteTimeSet`, `NoteGetLocation`, and status helpers. + +## Role In Callers + +Provides the public scalar contract for JSON numeric or time APIs. + +## Tests Observed + +Focused time/location/status tests exercise JTIME-valued APIs. + +## Graph Links + +- Graph node id: `typedef:note.h:105:JTIME` +- Structured graph: `inventory/dependency-graph.json` +- Representative `uses_type` graph edges connect consuming APIs to this typedef. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L124__delayMsFn.md b/source-research/artifacts/types/note_h__L124__delayMsFn.md new file mode 100644 index 00000000..7e3a2acb --- /dev/null +++ b/source-research/artifacts/types/note_h__L124__delayMsFn.md @@ -0,0 +1,55 @@ +# `delayMsFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:124` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `delayMsFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `void (*)(uint32_t ms)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the delay hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnDefault/NoteSetFn/NoteGetFn and `NoteDelayMs` hook dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:124:delayMsFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L133__freeFn.md b/source-research/artifacts/types/note_h__L133__freeFn.md new file mode 100644 index 00000000..6619fd4f --- /dev/null +++ b/source-research/artifacts/types/note_h__L133__freeFn.md @@ -0,0 +1,55 @@ +# `freeFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:133` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `freeFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `void (*)(void *mem)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the free hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnDefault/NoteSetFn/NoteGetFn and `NoteFree` hook dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:133:freeFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L142__getMsFn.md b/source-research/artifacts/types/note_h__L142__getMsFn.md new file mode 100644 index 00000000..1add9c64 --- /dev/null +++ b/source-research/artifacts/types/note_h__L142__getMsFn.md @@ -0,0 +1,55 @@ +# `getMsFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:142` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `getMsFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `uint32_t (*)(void)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the millisecond counter hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnDefault/NoteSetFn/NoteGetFn and `NoteGetMs` hook dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:142:getMsFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L1523__typedef_1523.md b/source-research/artifacts/types/note_h__L1523__typedef_1523.md new file mode 100644 index 00000000..7ddc1fef --- /dev/null +++ b/source-research/artifacts/types/note_h__L1523__typedef_1523.md @@ -0,0 +1,55 @@ +# `typedef_1523` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:1523` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_1523` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: anonymous struct typedef `NoteMD5Context` with `buf[4]`, `bits[2]`, and `in[64]` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public MD5 context struct. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public incremental MD5 context storage. MD5 init/update/final functions mutate this caller-owned struct; string/hash helpers create stack contexts internally. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `NoteMD5Init`, `NoteMD5Update`, `NoteMD5Final`, and `NoteMD5Hash`. + +## Role In Callers + +Carries MD5 state across incremental hashing calls without dynamic allocation. + +## Tests Observed + +Focused binary-store tests exercise MD5 hash-string behavior through helpers. + +## Graph Links + +- Graph node id: `typedef:note.h:1523:typedef_1523` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edges to MD5 functions. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L153__debugOutputFn.md b/source-research/artifacts/types/note_h__L153__debugOutputFn.md new file mode 100644 index 00000000..28ad72da --- /dev/null +++ b/source-research/artifacts/types/note_h__L153__debugOutputFn.md @@ -0,0 +1,55 @@ +# `debugOutputFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:153` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `debugOutputFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `size_t (*)(const char *text)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the debug output hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnDebugOutput/NoteGetFnDebugOutput and debug output dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:153:debugOutputFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L166__heartbeatFn.md b/source-research/artifacts/types/note_h__L166__heartbeatFn.md new file mode 100644 index 00000000..efd5462a --- /dev/null +++ b/source-research/artifacts/types/note_h__L166__heartbeatFn.md @@ -0,0 +1,55 @@ +# `heartbeatFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:166` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `heartbeatFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `bool (*)(const char *heartbeatJson, void *context)` under `NOTE_C_HEARTBEAT_CALLBACK` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the heartbeat callback hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnHeartbeat/NoteGetFnHeartbeat and heartbeat dispatch when callback support is compiled + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:166:heartbeatFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L183__i2cReceiveFn.md b/source-research/artifacts/types/note_h__L183__i2cReceiveFn.md new file mode 100644 index 00000000..0c1e0001 --- /dev/null +++ b/source-research/artifacts/types/note_h__L183__i2cReceiveFn.md @@ -0,0 +1,55 @@ +# `i2cReceiveFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:183` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `i2cReceiveFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `const char *(*)(uint16_t,uint8_t*,uint16_t,uint32_t*)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the I2C receive hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnI2C/NoteSetFnI2CDefault/NoteGetFnI2C and I2C receive dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:183:i2cReceiveFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L196__i2cResetFn.md b/source-research/artifacts/types/note_h__L196__i2cResetFn.md new file mode 100644 index 00000000..c62521db --- /dev/null +++ b/source-research/artifacts/types/note_h__L196__i2cResetFn.md @@ -0,0 +1,55 @@ +# `i2cResetFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:196` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `i2cResetFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `bool (*)(uint16_t)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the I2C reset hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnI2C/NoteSetFnI2CDefault/NoteGetFnI2C and I2C reset dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:196:i2cResetFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L2109__typedef_2109.md b/source-research/artifacts/types/note_h__L2109__typedef_2109.md new file mode 100644 index 00000000..5ee57af7 --- /dev/null +++ b/source-research/artifacts/types/note_h__L2109__typedef_2109.md @@ -0,0 +1,55 @@ +# `typedef_2109` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:2109` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `typedef_2109` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: anonymous struct typedef `NotePayloadDesc` with `data`, `alloc`, and `length` fields +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public payload descriptor struct. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines caller-visible segmented payload descriptor state. Payload functions set, allocate/free, append, find, and copy segments through this descriptor. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `NotePayloadSet`, `NotePayloadFree`, `NotePayloadAddSegment`, `NotePayloadFindSegment`, `NotePayloadGetSegment`, `NotePayloadSaveAndSleep`, and `NotePayloadRetrieveAfterSleep`. + +## Role In Callers + +Owns or references payload storage depending on setup; allocation/free behavior is managed by payload helper functions. + +## Tests Observed + +Focused `NotePayload_test.cpp` covers segment add/find/get, missing/duplicate behavior, and reallocation. + +## Graph Links + +- Graph node id: `typedef:note.h:2109:typedef_2109` +- Structured graph: `inventory/dependency-graph.json` +- Verified `uses_type` edges to payload functions. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L211__i2cTransmitFn.md b/source-research/artifacts/types/note_h__L211__i2cTransmitFn.md new file mode 100644 index 00000000..cdd11fae --- /dev/null +++ b/source-research/artifacts/types/note_h__L211__i2cTransmitFn.md @@ -0,0 +1,55 @@ +# `i2cTransmitFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:211` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `i2cTransmitFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `const char *(*)(uint16_t,uint8_t*,uint16_t)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the I2C transmit hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnI2C/NoteSetFnI2CDefault/NoteGetFnI2C and I2C transmit dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:211:i2cTransmitFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L223__mallocFn.md b/source-research/artifacts/types/note_h__L223__mallocFn.md new file mode 100644 index 00000000..c49c21b0 --- /dev/null +++ b/source-research/artifacts/types/note_h__L223__mallocFn.md @@ -0,0 +1,55 @@ +# `mallocFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:223` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `mallocFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `void *(*)(size_t size)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the allocation hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnDefault/NoteSetFn/NoteGetFn and `NoteMalloc` dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:223:mallocFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L230__mutexFn.md b/source-research/artifacts/types/note_h__L230__mutexFn.md new file mode 100644 index 00000000..aff2a568 --- /dev/null +++ b/source-research/artifacts/types/note_h__L230__mutexFn.md @@ -0,0 +1,55 @@ +# `mutexFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:230` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `mutexFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `void (*)(void)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the mutex hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnMutex/I2C/Note mutex setters/getters and lock/unlock dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:230:mutexFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L239__serialAvailableFn.md b/source-research/artifacts/types/note_h__L239__serialAvailableFn.md new file mode 100644 index 00000000..66383e03 --- /dev/null +++ b/source-research/artifacts/types/note_h__L239__serialAvailableFn.md @@ -0,0 +1,55 @@ +# `serialAvailableFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:239` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `serialAvailableFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `bool (*)(void)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the serial available hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnSerial/NoteSetFnSerialDefault/NoteGetFnSerial and serial availability dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:239:serialAvailableFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L248__serialReceiveFn.md b/source-research/artifacts/types/note_h__L248__serialReceiveFn.md new file mode 100644 index 00000000..d7c2d909 --- /dev/null +++ b/source-research/artifacts/types/note_h__L248__serialReceiveFn.md @@ -0,0 +1,55 @@ +# `serialReceiveFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:248` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `serialReceiveFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `char (*)(void)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the serial receive hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnSerial/NoteSetFnSerialDefault/NoteGetFnSerial and serial receive dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:248:serialReceiveFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L260__serialResetFn.md b/source-research/artifacts/types/note_h__L260__serialResetFn.md new file mode 100644 index 00000000..08f6f88c --- /dev/null +++ b/source-research/artifacts/types/note_h__L260__serialResetFn.md @@ -0,0 +1,55 @@ +# `serialResetFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:260` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `serialResetFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `bool (*)(void)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the serial reset hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnSerial/NoteSetFnSerialDefault/NoteGetFnSerial and serial reset dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:260:serialResetFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L271__serialTransmitFn.md b/source-research/artifacts/types/note_h__L271__serialTransmitFn.md new file mode 100644 index 00000000..071a563a --- /dev/null +++ b/source-research/artifacts/types/note_h__L271__serialTransmitFn.md @@ -0,0 +1,55 @@ +# `serialTransmitFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:271` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `serialTransmitFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `void (*)(uint8_t *, size_t, bool)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the serial transmit hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnSerial/NoteSetFnSerialDefault/NoteGetFnSerial and serial transmit dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:271:serialTransmitFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L282__txnStartFn.md b/source-research/artifacts/types/note_h__L282__txnStartFn.md new file mode 100644 index 00000000..0203ad0c --- /dev/null +++ b/source-research/artifacts/types/note_h__L282__txnStartFn.md @@ -0,0 +1,55 @@ +# `txnStartFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:282` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `txnStartFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `bool (*)(uint32_t timeoutMs)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the transaction start hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnTransaction/NoteGetFnTransaction and transaction start dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:282:txnStartFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L289__txnStopFn.md b/source-research/artifacts/types/note_h__L289__txnStopFn.md new file mode 100644 index 00000000..501831b1 --- /dev/null +++ b/source-research/artifacts/types/note_h__L289__txnStopFn.md @@ -0,0 +1,55 @@ +# `txnStopFn` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:289` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `txnStopFn` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `void (*)(void)` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Public function pointer typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines the public platform hook callback type for the transaction stop hook. Hook setter/getter APIs store or return function pointers of this type; wrapper functions dispatch through the configured hook when set. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +NoteSetFnTransaction/NoteGetFnTransaction and transaction stop dispatch + +## Role In Callers + +Keeps platform-specific behavior behind typed hooks so the portable C SDK core does not depend on platform APIs. + +## Tests Observed + +Focused hook tests exercise setter/getter and dispatch behavior for these callback families. + +## Graph Links + +- Graph node id: `typedef:note.h:289:txnStopFn` +- Structured graph: `inventory/dependency-graph.json` + + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L85__JNUMBER.md b/source-research/artifacts/types/note_h__L85__JNUMBER.md new file mode 100644 index 00000000..dd055c7f --- /dev/null +++ b/source-research/artifacts/types/note_h__L85__JNUMBER.md @@ -0,0 +1,55 @@ +# `JNUMBER` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:85` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `JNUMBER` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: single-precision branch `typedef float JNUMBER` under `NOTE_C_SINGLE_PRECISION` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Aliases a standard integer/floating type or another SDK typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines JSON numeric storage as float on single-precision/low-memory platforms. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used across numeric parse/print/helper APIs and `J` struct `valuenumber` field. + +## Role In Callers + +Provides the public scalar contract for JSON numeric or time APIs. + +## Tests Observed + +Focused numeric parsing, printing, ftoa, and helper tests exercise active numeric behavior. + +## Graph Links + +- Graph node id: `typedef:note.h:85:JNUMBER` +- Structured graph: `inventory/dependency-graph.json` +- Representative `uses_type` graph edges connect consuming APIs to this typedef. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L87__JNUMBER.md b/source-research/artifacts/types/note_h__L87__JNUMBER.md new file mode 100644 index 00000000..15806805 --- /dev/null +++ b/source-research/artifacts/types/note_h__L87__JNUMBER.md @@ -0,0 +1,55 @@ +# `JNUMBER` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:87` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `JNUMBER` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: default branch `typedef double JNUMBER` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Aliases a standard integer/floating type or another SDK typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines JSON numeric storage as double on default platforms. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used across numeric parse/print/helper APIs and `J` struct `valuenumber` field. + +## Role In Callers + +Provides the public scalar contract for JSON numeric or time APIs. + +## Tests Observed + +Focused numeric parsing, printing, ftoa, and helper tests exercise active numeric behavior. + +## Graph Links + +- Graph node id: `typedef:note.h:87:JNUMBER` +- Structured graph: `inventory/dependency-graph.json` +- Representative `uses_type` graph edges connect consuming APIs to this typedef. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/note_h__L93__JINTEGER.md b/source-research/artifacts/types/note_h__L93__JINTEGER.md new file mode 100644 index 00000000..e7a31ec3 --- /dev/null +++ b/source-research/artifacts/types/note_h__L93__JINTEGER.md @@ -0,0 +1,55 @@ +# `JINTEGER` + +## Status + +Finalized. Source-inspected declaration, direct references, ownership role, graph links, and focused test evidence where available. + +## Identity + +- Kind: typedef +- Definition: `note.h:93` +- Declaration/interface: source/header type declaration as noted. +- Public/exported names: `JINTEGER` where named; generated placeholder names are internal extractor labels. +- Macro aliases/wrappers: not applicable. +- Signature/API shape: `typedef int64_t JINTEGER` +- Visibility: determined by the declaring source/header. +- Ownership/lifetime role: described below. + +## Dependency Status + +- Project-local dependencies: Aliases a standard integer/floating type or another SDK typedef. +- External/system dependencies: standard C types and SDK typedefs referenced in the declaration. +- Data/type/global dependencies: direct consumers listed below. +- Artifact coverage: source-inspected artifact exists. + +## Behavior + +Defines signed JSON integer storage and API integer type. + +## Important Boundaries + +- Compile-time type contract; no runtime code by itself. +- Ownership and lifetime are enforced by the functions that allocate, store, or consume values of this type. +- Direct source references were inspected with exact symbol search. + +## Direct Call Sites + +Used by `J` struct `valueint`, integer creation/getter/setter helpers, environment integer helpers, and `JItoA`/`JAtoI`. + +## Role In Callers + +Provides the public scalar contract for JSON numeric or time APIs. + +## Tests Observed + +Focused integer conversion and JSON number handling tests cover integer bounds and saturation. + +## Graph Links + +- Graph node id: `typedef:note.h:93:JINTEGER` +- Structured graph: `inventory/dependency-graph.json` +- Representative `uses_type` graph edges connect consuming APIs to this typedef. + +## Evidence Gaps + +No unresolved source gaps for this node. diff --git a/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L27__BinaryImage.md b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L27__BinaryImage.md new file mode 100644 index 00000000..99bd73f5 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L27__BinaryImage.md @@ -0,0 +1,59 @@ +# `BinaryImage` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:27` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBinaryImage\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:27:BinaryImage` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L342__TransferDetails.md b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L342__TransferDetails.md new file mode 100644 index 00000000..d690dec4 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L342__TransferDetails.md @@ -0,0 +1,59 @@ +# `TransferDetails` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:342` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTransferDetails\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:342:TransferDetails` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L356__TransferHandlerContext.md b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L356__TransferHandlerContext.md new file mode 100644 index 00000000..b3cf2f2a --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L356__TransferHandlerContext.md @@ -0,0 +1,59 @@ +# `TransferHandlerContext` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:356` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bTransferHandlerContext\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:356:TransferHandlerContext` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L372__BinaryTransfer.md b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L372__BinaryTransfer.md new file mode 100644 index 00000000..fbaaa40a --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L372__BinaryTransfer.md @@ -0,0 +1,59 @@ +# `BinaryTransfer` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:372` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBinaryTransfer\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:372:BinaryTransfer` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L37__BinaryGenerator.md b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L37__BinaryGenerator.md new file mode 100644 index 00000000..8e3a314b --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L37__BinaryGenerator.md @@ -0,0 +1,59 @@ +# `BinaryGenerator` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:37` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBinaryGenerator\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h:37:BinaryGenerator` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L6__NotecardInterface.md b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L6__NotecardInterface.md new file mode 100644 index 00000000..2b0042e0 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L6__NotecardInterface.md @@ -0,0 +1,59 @@ +# `NotecardInterface` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: enum +- Definition: `test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:6` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bNotecardInterface\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `enum:test/hitl/card.binary/lib/notecard_binary/NotecardComms.h:6:NotecardInterface` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_cpp__L21__content_check_fn.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_cpp__L21__content_check_fn.md new file mode 100644 index 00000000..b31416a0 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_cpp__L21__content_check_fn.md @@ -0,0 +1,59 @@ +# `content_check_fn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/hitl/card.binary/test/test_binary_generators.cpp:21` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bcontent_check_fn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/hitl/card.binary/test/test_binary_generators.cpp:21:content_check_fn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L12__BuildAllSameValue.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L12__BuildAllSameValue.md new file mode 100644 index 00000000..55352c93 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L12__BuildAllSameValue.md @@ -0,0 +1,59 @@ +# `BuildAllSameValue` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/test/test_binary_generators.h:12` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBuildAllSameValue\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/test/test_binary_generators.h:12:BuildAllSameValue` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L29__AllZeros.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L29__AllZeros.md new file mode 100644 index 00000000..77e7cdfd --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L29__AllZeros.md @@ -0,0 +1,59 @@ +# `AllZeros` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/test/test_binary_generators.h:29` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bAllZeros\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/test/test_binary_generators.h:29:AllZeros` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L33__AllSevens.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L33__AllSevens.md new file mode 100644 index 00000000..8d0cc7dd --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L33__AllSevens.md @@ -0,0 +1,59 @@ +# `AllSevens` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/test/test_binary_generators.h:33` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bAllSevens\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/test/test_binary_generators.h:33:AllSevens` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L37__BuildFromBinaryImage.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L37__BuildFromBinaryImage.md new file mode 100644 index 00000000..82042f74 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L37__BuildFromBinaryImage.md @@ -0,0 +1,59 @@ +# `BuildFromBinaryImage` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/test/test_binary_generators.h:37` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBuildFromBinaryImage\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/test/test_binary_generators.h:37:BuildFromBinaryImage` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L49__SmallBinaryImage.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L49__SmallBinaryImage.md new file mode 100644 index 00000000..d2604139 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L49__SmallBinaryImage.md @@ -0,0 +1,59 @@ +# `SmallBinaryImage` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/test/test_binary_generators.h:49` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bSmallBinaryImage\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/test/test_binary_generators.h:49:SmallBinaryImage` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L53__BuildRandom.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L53__BuildRandom.md new file mode 100644 index 00000000..965a00bd --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L53__BuildRandom.md @@ -0,0 +1,59 @@ +# `BuildRandom` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/test/test_binary_generators.h:53` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBuildRandom\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/test/test_binary_generators.h:53:BuildRandom` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L63__BinaryTestArgs.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L63__BinaryTestArgs.md new file mode 100644 index 00000000..7d9d75b0 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L63__BinaryTestArgs.md @@ -0,0 +1,59 @@ +# `BinaryTestArgs` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: struct +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:63` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bBinaryTestArgs\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `struct:test/hitl/card.binary/test/test_card_binary.cpp:63:BinaryTestArgs` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L77__Handler.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L77__Handler.md new file mode 100644 index 00000000..9a1e7d99 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L77__Handler.md @@ -0,0 +1,59 @@ +# `Handler` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: enum +- Definition: `test/hitl/card.binary/test/test_card_binary.cpp:77` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bHandler\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `enum:test/hitl/card.binary/test/test_card_binary.cpp:77:Handler` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L13__test_suite_hook_fn.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L13__test_suite_hook_fn.md new file mode 100644 index 00000000..c6d8c95d --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L13__test_suite_hook_fn.md @@ -0,0 +1,59 @@ +# `test_suite_hook_fn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/hitl/card.binary/test/test_unity_util.h:13` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btest_suite_hook_fn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/hitl/card.binary/test/test_unity_util.h:13:test_suite_hook_fn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L14__test_suite_filter_fn.md b/source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L14__test_suite_filter_fn.md new file mode 100644 index 00000000..46b6cb07 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L14__test_suite_filter_fn.md @@ -0,0 +1,59 @@ +# `test_suite_filter_fn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/hitl/card.binary/test/test_unity_util.h:14` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btest_suite_filter_fn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/hitl/card.binary/test/test_unity_util.h:14:test_suite_filter_fn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_scripts_md5srv_py__L25__HTTPException.md b/source-research/artifacts/types/test_hitl_scripts_md5srv_py__L25__HTTPException.md new file mode 100644 index 00000000..8b070d5a --- /dev/null +++ b/source-research/artifacts/types/test_hitl_scripts_md5srv_py__L25__HTTPException.md @@ -0,0 +1,59 @@ +# `HTTPException` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: class +- Definition: `test/hitl/scripts/md5srv.py:25` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bHTTPException\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `class:test/hitl/scripts/md5srv.py:25:HTTPException` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_hitl_scripts_md5srv_py__L33__WebRequestHandler.md b/source-research/artifacts/types/test_hitl_scripts_md5srv_py__L33__WebRequestHandler.md new file mode 100644 index 00000000..560c0a81 --- /dev/null +++ b/source-research/artifacts/types/test_hitl_scripts_md5srv_py__L33__WebRequestHandler.md @@ -0,0 +1,59 @@ +# `WebRequestHandler` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: class +- Definition: `test/hitl/scripts/md5srv.py:33` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bWebRequestHandler\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `class:test/hitl/scripts/md5srv.py:33:WebRequestHandler` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1069__typedef_1069.md b/source-research/artifacts/types/test_include_fff_h__L1069__typedef_1069.md new file mode 100644 index 00000000..75c05842 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1069__typedef_1069.md @@ -0,0 +1,59 @@ +# `typedef_1069` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1069` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1069\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1069:typedef_1069` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1154__typedef_1154.md b/source-research/artifacts/types/test_include_fff_h__L1154__typedef_1154.md new file mode 100644 index 00000000..e8f9dfb6 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1154__typedef_1154.md @@ -0,0 +1,59 @@ +# `typedef_1154` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1154` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1154\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1154:typedef_1154` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1242__typedef_1242.md b/source-research/artifacts/types/test_include_fff_h__L1242__typedef_1242.md new file mode 100644 index 00000000..e0667cbe --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1242__typedef_1242.md @@ -0,0 +1,59 @@ +# `typedef_1242` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1242` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1242\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1242:typedef_1242` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L130__fff_function_t.md b/source-research/artifacts/types/test_include_fff_h__L130__fff_function_t.md new file mode 100644 index 00000000..70c1e236 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L130__fff_function_t.md @@ -0,0 +1,59 @@ +# `fff_function_t` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:130` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bfff_function_t\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:130:fff_function_t` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L131__typedef_131.md b/source-research/artifacts/types/test_include_fff_h__L131__typedef_131.md new file mode 100644 index 00000000..902e8cd1 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L131__typedef_131.md @@ -0,0 +1,59 @@ +# `typedef_131` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:131` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_131\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:131:typedef_131` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1333__typedef_1333.md b/source-research/artifacts/types/test_include_fff_h__L1333__typedef_1333.md new file mode 100644 index 00000000..20362955 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1333__typedef_1333.md @@ -0,0 +1,59 @@ +# `typedef_1333` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1333` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1333\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1333:typedef_1333` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1427__typedef_1427.md b/source-research/artifacts/types/test_include_fff_h__L1427__typedef_1427.md new file mode 100644 index 00000000..3bbb60ba --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1427__typedef_1427.md @@ -0,0 +1,59 @@ +# `typedef_1427` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1427` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1427\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1427:typedef_1427` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1524__typedef_1524.md b/source-research/artifacts/types/test_include_fff_h__L1524__typedef_1524.md new file mode 100644 index 00000000..478d79d8 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1524__typedef_1524.md @@ -0,0 +1,59 @@ +# `typedef_1524` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1524` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1524\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1524:typedef_1524` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L154__typedef_154.md b/source-research/artifacts/types/test_include_fff_h__L154__typedef_154.md new file mode 100644 index 00000000..77e15292 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L154__typedef_154.md @@ -0,0 +1,59 @@ +# `typedef_154` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:154` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_154\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:154:typedef_154` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1624__typedef_1624.md b/source-research/artifacts/types/test_include_fff_h__L1624__typedef_1624.md new file mode 100644 index 00000000..8f0fbe38 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1624__typedef_1624.md @@ -0,0 +1,59 @@ +# `typedef_1624` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1624` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1624\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1624:typedef_1624` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1675__typedef_1675.md b/source-research/artifacts/types/test_include_fff_h__L1675__typedef_1675.md new file mode 100644 index 00000000..0dcf12ed --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1675__typedef_1675.md @@ -0,0 +1,59 @@ +# `typedef_1675` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1675` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1675\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1675:typedef_1675` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1729__typedef_1729.md b/source-research/artifacts/types/test_include_fff_h__L1729__typedef_1729.md new file mode 100644 index 00000000..aed5516c --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1729__typedef_1729.md @@ -0,0 +1,59 @@ +# `typedef_1729` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1729` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1729\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1729:typedef_1729` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1786__typedef_1786.md b/source-research/artifacts/types/test_include_fff_h__L1786__typedef_1786.md new file mode 100644 index 00000000..be8f6a65 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1786__typedef_1786.md @@ -0,0 +1,59 @@ +# `typedef_1786` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1786` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1786\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1786:typedef_1786` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1846__typedef_1846.md b/source-research/artifacts/types/test_include_fff_h__L1846__typedef_1846.md new file mode 100644 index 00000000..8d467d90 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1846__typedef_1846.md @@ -0,0 +1,59 @@ +# `typedef_1846` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1846` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1846\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1846:typedef_1846` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1909__typedef_1909.md b/source-research/artifacts/types/test_include_fff_h__L1909__typedef_1909.md new file mode 100644 index 00000000..84743a0a --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1909__typedef_1909.md @@ -0,0 +1,59 @@ +# `typedef_1909` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1909` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1909\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1909:typedef_1909` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L194__typedef_194.md b/source-research/artifacts/types/test_include_fff_h__L194__typedef_194.md new file mode 100644 index 00000000..13de6275 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L194__typedef_194.md @@ -0,0 +1,59 @@ +# `typedef_194` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:194` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_194\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:194:typedef_194` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L1975__typedef_1975.md b/source-research/artifacts/types/test_include_fff_h__L1975__typedef_1975.md new file mode 100644 index 00000000..5871aa1b --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L1975__typedef_1975.md @@ -0,0 +1,59 @@ +# `typedef_1975` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:1975` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_1975\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:1975:typedef_1975` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2044__typedef_2044.md b/source-research/artifacts/types/test_include_fff_h__L2044__typedef_2044.md new file mode 100644 index 00000000..023255fa --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2044__typedef_2044.md @@ -0,0 +1,59 @@ +# `typedef_2044` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2044` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2044\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2044:typedef_2044` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2116__typedef_2116.md b/source-research/artifacts/types/test_include_fff_h__L2116__typedef_2116.md new file mode 100644 index 00000000..92934025 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2116__typedef_2116.md @@ -0,0 +1,59 @@ +# `typedef_2116` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2116` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2116\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2116:typedef_2116` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2191__typedef_2191.md b/source-research/artifacts/types/test_include_fff_h__L2191__typedef_2191.md new file mode 100644 index 00000000..8bc8d148 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2191__typedef_2191.md @@ -0,0 +1,59 @@ +# `typedef_2191` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2191` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2191\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2191:typedef_2191` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2269__typedef_2269.md b/source-research/artifacts/types/test_include_fff_h__L2269__typedef_2269.md new file mode 100644 index 00000000..a2f9dfe7 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2269__typedef_2269.md @@ -0,0 +1,59 @@ +# `typedef_2269` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2269` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2269\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2269:typedef_2269` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2350__typedef_2350.md b/source-research/artifacts/types/test_include_fff_h__L2350__typedef_2350.md new file mode 100644 index 00000000..fca3c4ca --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2350__typedef_2350.md @@ -0,0 +1,59 @@ +# `typedef_2350` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2350` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2350\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2350:typedef_2350` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L237__typedef_237.md b/source-research/artifacts/types/test_include_fff_h__L237__typedef_237.md new file mode 100644 index 00000000..1199ca84 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L237__typedef_237.md @@ -0,0 +1,59 @@ +# `typedef_237` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:237` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_237\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:237:typedef_237` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2434__typedef_2434.md b/source-research/artifacts/types/test_include_fff_h__L2434__typedef_2434.md new file mode 100644 index 00000000..3afb9654 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2434__typedef_2434.md @@ -0,0 +1,59 @@ +# `typedef_2434` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2434` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2434\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2434:typedef_2434` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2521__typedef_2521.md b/source-research/artifacts/types/test_include_fff_h__L2521__typedef_2521.md new file mode 100644 index 00000000..4caee25d --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2521__typedef_2521.md @@ -0,0 +1,59 @@ +# `typedef_2521` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2521` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2521\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2521:typedef_2521` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2611__typedef_2611.md b/source-research/artifacts/types/test_include_fff_h__L2611__typedef_2611.md new file mode 100644 index 00000000..66e9df48 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2611__typedef_2611.md @@ -0,0 +1,59 @@ +# `typedef_2611` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2611` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2611\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2611:typedef_2611` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2704__typedef_2704.md b/source-research/artifacts/types/test_include_fff_h__L2704__typedef_2704.md new file mode 100644 index 00000000..d8e0413d --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2704__typedef_2704.md @@ -0,0 +1,59 @@ +# `typedef_2704` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2704` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2704\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2704:typedef_2704` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2800__typedef_2800.md b/source-research/artifacts/types/test_include_fff_h__L2800__typedef_2800.md new file mode 100644 index 00000000..99fddb8f --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2800__typedef_2800.md @@ -0,0 +1,59 @@ +# `typedef_2800` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2800` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2800\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2800:typedef_2800` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L283__typedef_283.md b/source-research/artifacts/types/test_include_fff_h__L283__typedef_283.md new file mode 100644 index 00000000..35526a14 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L283__typedef_283.md @@ -0,0 +1,59 @@ +# `typedef_283` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:283` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_283\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:283:typedef_283` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L2899__typedef_2899.md b/source-research/artifacts/types/test_include_fff_h__L2899__typedef_2899.md new file mode 100644 index 00000000..1becd3e7 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L2899__typedef_2899.md @@ -0,0 +1,59 @@ +# `typedef_2899` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:2899` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_2899\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:2899:typedef_2899` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3001__typedef_3001.md b/source-research/artifacts/types/test_include_fff_h__L3001__typedef_3001.md new file mode 100644 index 00000000..173ec8cf --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3001__typedef_3001.md @@ -0,0 +1,59 @@ +# `typedef_3001` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3001` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3001\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3001:typedef_3001` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3106__typedef_3106.md b/source-research/artifacts/types/test_include_fff_h__L3106__typedef_3106.md new file mode 100644 index 00000000..304d196f --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3106__typedef_3106.md @@ -0,0 +1,59 @@ +# `typedef_3106` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3106` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3106\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3106:typedef_3106` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3214__typedef_3214.md b/source-research/artifacts/types/test_include_fff_h__L3214__typedef_3214.md new file mode 100644 index 00000000..12017ff4 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3214__typedef_3214.md @@ -0,0 +1,59 @@ +# `typedef_3214` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3214` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3214\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3214:typedef_3214` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3325__typedef_3325.md b/source-research/artifacts/types/test_include_fff_h__L3325__typedef_3325.md new file mode 100644 index 00000000..b2c4f975 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3325__typedef_3325.md @@ -0,0 +1,59 @@ +# `typedef_3325` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3325` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3325\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3325:typedef_3325` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L332__typedef_332.md b/source-research/artifacts/types/test_include_fff_h__L332__typedef_332.md new file mode 100644 index 00000000..ffdfcba8 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L332__typedef_332.md @@ -0,0 +1,59 @@ +# `typedef_332` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:332` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_332\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:332:typedef_332` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3377__typedef_3377.md b/source-research/artifacts/types/test_include_fff_h__L3377__typedef_3377.md new file mode 100644 index 00000000..d6e80bb5 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3377__typedef_3377.md @@ -0,0 +1,59 @@ +# `typedef_3377` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3377` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3377\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3377:typedef_3377` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3432__typedef_3432.md b/source-research/artifacts/types/test_include_fff_h__L3432__typedef_3432.md new file mode 100644 index 00000000..97084ec4 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3432__typedef_3432.md @@ -0,0 +1,59 @@ +# `typedef_3432` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3432` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3432\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3432:typedef_3432` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3490__typedef_3490.md b/source-research/artifacts/types/test_include_fff_h__L3490__typedef_3490.md new file mode 100644 index 00000000..a50b08a0 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3490__typedef_3490.md @@ -0,0 +1,59 @@ +# `typedef_3490` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3490` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3490\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3490:typedef_3490` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3551__typedef_3551.md b/source-research/artifacts/types/test_include_fff_h__L3551__typedef_3551.md new file mode 100644 index 00000000..1d63a0af --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3551__typedef_3551.md @@ -0,0 +1,59 @@ +# `typedef_3551` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3551` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3551\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3551:typedef_3551` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3615__typedef_3615.md b/source-research/artifacts/types/test_include_fff_h__L3615__typedef_3615.md new file mode 100644 index 00000000..98769e6e --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3615__typedef_3615.md @@ -0,0 +1,59 @@ +# `typedef_3615` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3615` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3615\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3615:typedef_3615` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3682__typedef_3682.md b/source-research/artifacts/types/test_include_fff_h__L3682__typedef_3682.md new file mode 100644 index 00000000..3eb45285 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3682__typedef_3682.md @@ -0,0 +1,59 @@ +# `typedef_3682` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3682` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3682\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3682:typedef_3682` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3752__typedef_3752.md b/source-research/artifacts/types/test_include_fff_h__L3752__typedef_3752.md new file mode 100644 index 00000000..a541531e --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3752__typedef_3752.md @@ -0,0 +1,59 @@ +# `typedef_3752` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3752` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3752\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3752:typedef_3752` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3825__typedef_3825.md b/source-research/artifacts/types/test_include_fff_h__L3825__typedef_3825.md new file mode 100644 index 00000000..5174b04f --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3825__typedef_3825.md @@ -0,0 +1,59 @@ +# `typedef_3825` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3825` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3825\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3825:typedef_3825` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L384__typedef_384.md b/source-research/artifacts/types/test_include_fff_h__L384__typedef_384.md new file mode 100644 index 00000000..126928a1 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L384__typedef_384.md @@ -0,0 +1,59 @@ +# `typedef_384` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:384` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_384\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:384:typedef_384` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3901__typedef_3901.md b/source-research/artifacts/types/test_include_fff_h__L3901__typedef_3901.md new file mode 100644 index 00000000..2e7b6a11 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3901__typedef_3901.md @@ -0,0 +1,59 @@ +# `typedef_3901` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3901` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3901\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3901:typedef_3901` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L3980__typedef_3980.md b/source-research/artifacts/types/test_include_fff_h__L3980__typedef_3980.md new file mode 100644 index 00000000..fe5c9848 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L3980__typedef_3980.md @@ -0,0 +1,59 @@ +# `typedef_3980` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:3980` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_3980\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:3980:typedef_3980` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4062__typedef_4062.md b/source-research/artifacts/types/test_include_fff_h__L4062__typedef_4062.md new file mode 100644 index 00000000..f5d475bf --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4062__typedef_4062.md @@ -0,0 +1,59 @@ +# `typedef_4062` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4062` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4062\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4062:typedef_4062` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4147__typedef_4147.md b/source-research/artifacts/types/test_include_fff_h__L4147__typedef_4147.md new file mode 100644 index 00000000..a6477748 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4147__typedef_4147.md @@ -0,0 +1,59 @@ +# `typedef_4147` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4147` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4147\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4147:typedef_4147` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4235__typedef_4235.md b/source-research/artifacts/types/test_include_fff_h__L4235__typedef_4235.md new file mode 100644 index 00000000..b5474d42 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4235__typedef_4235.md @@ -0,0 +1,59 @@ +# `typedef_4235` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4235` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4235\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4235:typedef_4235` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4326__typedef_4326.md b/source-research/artifacts/types/test_include_fff_h__L4326__typedef_4326.md new file mode 100644 index 00000000..39010146 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4326__typedef_4326.md @@ -0,0 +1,59 @@ +# `typedef_4326` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4326` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4326\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4326:typedef_4326` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L439__typedef_439.md b/source-research/artifacts/types/test_include_fff_h__L439__typedef_439.md new file mode 100644 index 00000000..0e7a5693 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L439__typedef_439.md @@ -0,0 +1,59 @@ +# `typedef_439` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:439` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_439\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:439:typedef_439` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4420__typedef_4420.md b/source-research/artifacts/types/test_include_fff_h__L4420__typedef_4420.md new file mode 100644 index 00000000..02d7f5ab --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4420__typedef_4420.md @@ -0,0 +1,59 @@ +# `typedef_4420` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4420` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4420\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4420:typedef_4420` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4517__typedef_4517.md b/source-research/artifacts/types/test_include_fff_h__L4517__typedef_4517.md new file mode 100644 index 00000000..0f0bf598 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4517__typedef_4517.md @@ -0,0 +1,59 @@ +# `typedef_4517` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4517` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4517\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4517:typedef_4517` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4617__typedef_4617.md b/source-research/artifacts/types/test_include_fff_h__L4617__typedef_4617.md new file mode 100644 index 00000000..b3c40957 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4617__typedef_4617.md @@ -0,0 +1,59 @@ +# `typedef_4617` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4617` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4617\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4617:typedef_4617` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4720__typedef_4720.md b/source-research/artifacts/types/test_include_fff_h__L4720__typedef_4720.md new file mode 100644 index 00000000..fd2f495f --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4720__typedef_4720.md @@ -0,0 +1,59 @@ +# `typedef_4720` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4720` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4720\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4720:typedef_4720` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4826__typedef_4826.md b/source-research/artifacts/types/test_include_fff_h__L4826__typedef_4826.md new file mode 100644 index 00000000..73bdca3b --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4826__typedef_4826.md @@ -0,0 +1,59 @@ +# `typedef_4826` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4826` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4826\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4826:typedef_4826` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4889__typedef_4889.md b/source-research/artifacts/types/test_include_fff_h__L4889__typedef_4889.md new file mode 100644 index 00000000..bec02b7f --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4889__typedef_4889.md @@ -0,0 +1,59 @@ +# `typedef_4889` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4889` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4889\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4889:typedef_4889` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L4955__typedef_4955.md b/source-research/artifacts/types/test_include_fff_h__L4955__typedef_4955.md new file mode 100644 index 00000000..9d2e3657 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L4955__typedef_4955.md @@ -0,0 +1,59 @@ +# `typedef_4955` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:4955` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_4955\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:4955:typedef_4955` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L497__typedef_497.md b/source-research/artifacts/types/test_include_fff_h__L497__typedef_497.md new file mode 100644 index 00000000..bb8183ce --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L497__typedef_497.md @@ -0,0 +1,59 @@ +# `typedef_497` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:497` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_497\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:497:typedef_497` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5024__typedef_5024.md b/source-research/artifacts/types/test_include_fff_h__L5024__typedef_5024.md new file mode 100644 index 00000000..e47e701e --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5024__typedef_5024.md @@ -0,0 +1,59 @@ +# `typedef_5024` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5024` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5024\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5024:typedef_5024` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5096__typedef_5096.md b/source-research/artifacts/types/test_include_fff_h__L5096__typedef_5096.md new file mode 100644 index 00000000..640bd51d --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5096__typedef_5096.md @@ -0,0 +1,59 @@ +# `typedef_5096` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5096` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5096\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5096:typedef_5096` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5171__typedef_5171.md b/source-research/artifacts/types/test_include_fff_h__L5171__typedef_5171.md new file mode 100644 index 00000000..05ebd182 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5171__typedef_5171.md @@ -0,0 +1,59 @@ +# `typedef_5171` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5171` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5171\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5171:typedef_5171` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5249__typedef_5249.md b/source-research/artifacts/types/test_include_fff_h__L5249__typedef_5249.md new file mode 100644 index 00000000..e626084d --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5249__typedef_5249.md @@ -0,0 +1,59 @@ +# `typedef_5249` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5249` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5249\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5249:typedef_5249` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5330__typedef_5330.md b/source-research/artifacts/types/test_include_fff_h__L5330__typedef_5330.md new file mode 100644 index 00000000..901e00ca --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5330__typedef_5330.md @@ -0,0 +1,59 @@ +# `typedef_5330` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5330` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5330\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5330:typedef_5330` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5414__typedef_5414.md b/source-research/artifacts/types/test_include_fff_h__L5414__typedef_5414.md new file mode 100644 index 00000000..33a2b09f --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5414__typedef_5414.md @@ -0,0 +1,59 @@ +# `typedef_5414` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5414` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5414\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5414:typedef_5414` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5501__typedef_5501.md b/source-research/artifacts/types/test_include_fff_h__L5501__typedef_5501.md new file mode 100644 index 00000000..427f763a --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5501__typedef_5501.md @@ -0,0 +1,59 @@ +# `typedef_5501` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5501` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5501\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5501:typedef_5501` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L558__typedef_558.md b/source-research/artifacts/types/test_include_fff_h__L558__typedef_558.md new file mode 100644 index 00000000..bd257529 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L558__typedef_558.md @@ -0,0 +1,59 @@ +# `typedef_558` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:558` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_558\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:558:typedef_558` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5591__typedef_5591.md b/source-research/artifacts/types/test_include_fff_h__L5591__typedef_5591.md new file mode 100644 index 00000000..3c4a3417 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5591__typedef_5591.md @@ -0,0 +1,59 @@ +# `typedef_5591` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5591` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5591\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5591:typedef_5591` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5684__typedef_5684.md b/source-research/artifacts/types/test_include_fff_h__L5684__typedef_5684.md new file mode 100644 index 00000000..d4d2e41b --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5684__typedef_5684.md @@ -0,0 +1,59 @@ +# `typedef_5684` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5684` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5684\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5684:typedef_5684` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5780__typedef_5780.md b/source-research/artifacts/types/test_include_fff_h__L5780__typedef_5780.md new file mode 100644 index 00000000..2fe9c1d7 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5780__typedef_5780.md @@ -0,0 +1,59 @@ +# `typedef_5780` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5780` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5780\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5780:typedef_5780` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5879__typedef_5879.md b/source-research/artifacts/types/test_include_fff_h__L5879__typedef_5879.md new file mode 100644 index 00000000..9bf75773 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5879__typedef_5879.md @@ -0,0 +1,59 @@ +# `typedef_5879` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5879` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5879\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5879:typedef_5879` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L5981__typedef_5981.md b/source-research/artifacts/types/test_include_fff_h__L5981__typedef_5981.md new file mode 100644 index 00000000..22474b68 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L5981__typedef_5981.md @@ -0,0 +1,59 @@ +# `typedef_5981` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:5981` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_5981\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:5981:typedef_5981` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L6086__typedef_6086.md b/source-research/artifacts/types/test_include_fff_h__L6086__typedef_6086.md new file mode 100644 index 00000000..47a96fe2 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L6086__typedef_6086.md @@ -0,0 +1,59 @@ +# `typedef_6086` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:6086` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_6086\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:6086:typedef_6086` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L6194__typedef_6194.md b/source-research/artifacts/types/test_include_fff_h__L6194__typedef_6194.md new file mode 100644 index 00000000..69a9e09b --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L6194__typedef_6194.md @@ -0,0 +1,59 @@ +# `typedef_6194` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:6194` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_6194\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:6194:typedef_6194` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L622__typedef_622.md b/source-research/artifacts/types/test_include_fff_h__L622__typedef_622.md new file mode 100644 index 00000000..3049a4e0 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L622__typedef_622.md @@ -0,0 +1,59 @@ +# `typedef_622` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:622` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_622\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:622:typedef_622` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L6305__typedef_6305.md b/source-research/artifacts/types/test_include_fff_h__L6305__typedef_6305.md new file mode 100644 index 00000000..bd0d9af7 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L6305__typedef_6305.md @@ -0,0 +1,59 @@ +# `typedef_6305` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:6305` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_6305\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:6305:typedef_6305` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L6419__typedef_6419.md b/source-research/artifacts/types/test_include_fff_h__L6419__typedef_6419.md new file mode 100644 index 00000000..d2464c23 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L6419__typedef_6419.md @@ -0,0 +1,59 @@ +# `typedef_6419` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:6419` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_6419\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:6419:typedef_6419` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L689__typedef_689.md b/source-research/artifacts/types/test_include_fff_h__L689__typedef_689.md new file mode 100644 index 00000000..a5f9a3ac --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L689__typedef_689.md @@ -0,0 +1,59 @@ +# `typedef_689` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:689` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_689\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:689:typedef_689` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L759__typedef_759.md b/source-research/artifacts/types/test_include_fff_h__L759__typedef_759.md new file mode 100644 index 00000000..824e505f --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L759__typedef_759.md @@ -0,0 +1,59 @@ +# `typedef_759` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:759` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_759\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:759:typedef_759` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L832__typedef_832.md b/source-research/artifacts/types/test_include_fff_h__L832__typedef_832.md new file mode 100644 index 00000000..bcb96242 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L832__typedef_832.md @@ -0,0 +1,59 @@ +# `typedef_832` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:832` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_832\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:832:typedef_832` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L908__typedef_908.md b/source-research/artifacts/types/test_include_fff_h__L908__typedef_908.md new file mode 100644 index 00000000..6af66055 --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L908__typedef_908.md @@ -0,0 +1,59 @@ +# `typedef_908` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:908` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_908\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:908:typedef_908` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_include_fff_h__L987__typedef_987.md b/source-research/artifacts/types/test_include_fff_h__L987__typedef_987.md new file mode 100644 index 00000000..619cefda --- /dev/null +++ b/source-research/artifacts/types/test_include_fff_h__L987__typedef_987.md @@ -0,0 +1,59 @@ +# `typedef_987` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/include/fff.h:987` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_987\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/include/fff.h:987:typedef_987` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_src_JGetType_test_cpp__L63__AddStringFn.md b/source-research/artifacts/types/test_src_JGetType_test_cpp__L63__AddStringFn.md new file mode 100644 index 00000000..9ac5accf --- /dev/null +++ b/source-research/artifacts/types/test_src_JGetType_test_cpp__L63__AddStringFn.md @@ -0,0 +1,59 @@ +# `AddStringFn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/src/JGetType_test.cpp:63` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bAddStringFn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/src/JGetType_test.cpp:63:AddStringFn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_src_NoteDebug_test_cpp__L21__typedef_21.md b/source-research/artifacts/types/test_src_NoteDebug_test_cpp__L21__typedef_21.md new file mode 100644 index 00000000..f9baba08 --- /dev/null +++ b/source-research/artifacts/types/test_src_NoteDebug_test_cpp__L21__typedef_21.md @@ -0,0 +1,59 @@ +# `typedef_21` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/src/NoteDebug_test.cpp:21` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\btypedef_21\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/src/NoteDebug_test.cpp:21:typedef_21` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_src_NotePing_test_cpp__L40__class.md b/source-research/artifacts/types/test_src_NotePing_test_cpp__L40__class.md new file mode 100644 index 00000000..da764814 --- /dev/null +++ b/source-research/artifacts/types/test_src_NotePing_test_cpp__L40__class.md @@ -0,0 +1,59 @@ +# `class` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: enum +- Definition: `test/src/NotePing_test.cpp:40` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bclass\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `enum:test/src/NotePing_test.cpp:40:class` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_src__noteChunkedReceive_test_cpp__L18__nReceiveFn.md b/source-research/artifacts/types/test_src__noteChunkedReceive_test_cpp__L18__nReceiveFn.md new file mode 100644 index 00000000..868baec1 --- /dev/null +++ b/source-research/artifacts/types/test_src__noteChunkedReceive_test_cpp__L18__nReceiveFn.md @@ -0,0 +1,59 @@ +# `nReceiveFn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/src/_noteChunkedReceive_test.cpp:18` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bnReceiveFn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/src/_noteChunkedReceive_test.cpp:18:nReceiveFn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_src__noteChunkedTransmit_test_cpp__L18__nTransmitFn.md b/source-research/artifacts/types/test_src__noteChunkedTransmit_test_cpp__L18__nTransmitFn.md new file mode 100644 index 00000000..0e6f5927 --- /dev/null +++ b/source-research/artifacts/types/test_src__noteChunkedTransmit_test_cpp__L18__nTransmitFn.md @@ -0,0 +1,59 @@ +# `nTransmitFn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/src/_noteChunkedTransmit_test.cpp:18` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bnTransmitFn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/src/_noteChunkedTransmit_test.cpp:18:nTransmitFn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_src__noteHardReset_test_cpp__L18__nNoteResetFn.md b/source-research/artifacts/types/test_src__noteHardReset_test_cpp__L18__nNoteResetFn.md new file mode 100644 index 00000000..5fb57927 --- /dev/null +++ b/source-research/artifacts/types/test_src__noteHardReset_test_cpp__L18__nNoteResetFn.md @@ -0,0 +1,59 @@ +# `nNoteResetFn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/src/_noteHardReset_test.cpp:18` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bnNoteResetFn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/src/_noteHardReset_test.cpp:18:nNoteResetFn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/artifacts/types/test_src__noteJSONTransaction_test_cpp__L18__nTransactionFn.md b/source-research/artifacts/types/test_src__noteJSONTransaction_test_cpp__L18__nTransactionFn.md new file mode 100644 index 00000000..406de3c4 --- /dev/null +++ b/source-research/artifacts/types/test_src__noteJSONTransaction_test_cpp__L18__nTransactionFn.md @@ -0,0 +1,59 @@ +# `nTransactionFn` + +## Status + +Preliminary. Generated by `scripts/source_inventory.py`; behavior and direct call sites are uninspected. + +## Identity + +- Kind: typedef +- Definition: `test/src/_noteJSONTransaction_test.cpp:18` +- Declaration/interface: unverified +- Public/exported names: unverified +- Macro aliases/wrappers: unverified +- Signature/API shape: inspect source at definition +- Visibility: source/header dependent +- Ownership/lifetime role: uninspected + +## Dependency Status + +- Project-local dependencies: +- No project-local callees found by generated scan. +- External/system dependencies: uninspected +- Data/type/global dependencies: uninspected +- Artifact coverage: generated artifact exists + +## Behavior + +Uninspected. Read source and direct call sites before upgrading this artifact. + +## Important Boundaries + +- Preconditions and assumptions: uninspected +- Error/null/empty behavior: uninspected +- Ownership and lifetime: uninspected +- Concurrency/global state: uninspected +- Portability/platform constraints: uninspected +- Performance shape: uninspected +- Security or parsing constraints: uninspected + +## Direct Call Sites + +Not inspected. Suggested search: `rg -n "\bnTransactionFn\b"`. + +## Role In Callers + +Uninspected. + +## Tests Observed + +None. Tests are excluded unless focused evidence is requested. + +## Graph Links + +- Graph node id: `typedef:test/src/_noteJSONTransaction_test.cpp:18:nTransactionFn` +- Structured graph: `inventory/dependency-graph.json` + +## Evidence Gaps + +Generated identity and candidate callee facts only. Verify implementation, declarations, aliases, callers, ownership, and errors from source. diff --git a/source-research/frontier/active-slice.json b/source-research/frontier/active-slice.json new file mode 100644 index 00000000..48f13f75 --- /dev/null +++ b/source-research/frontier/active-slice.json @@ -0,0 +1,1542 @@ +{ + "blocked_nodes": [], + "checkpoint_reason": null, + "current_node_id": null, + "dfs_stack": [], + "fanout_batches": [], + "finalized_nodes": [ + "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "macro:note.h:1400:JTYPE_NOT_PRESENT", + "macro:note.h:1401:JTYPE_BOOL_TRUE", + "macro:note.h:1402:JTYPE_BOOL_FALSE", + "macro:note.h:1403:JTYPE_BOOL", + "macro:note.h:1404:JTYPE_NULL", + "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "macro:note.h:1406:JTYPE_NUMBER", + "macro:note.h:1407:JTYPE_STRING_BLANK", + "macro:note.h:1408:JTYPE_STRING_ZERO", + "macro:note.h:1409:JTYPE_STRING_NUMBER", + "macro:note.h:1410:JTYPE_STRING_BOOL_TRUE", + "macro:note.h:1411:JTYPE_STRING_BOOL_FALSE", + "macro:note.h:1412:JTYPE_STRING", + "macro:note.h:1413:JTYPE_OBJECT", + "macro:note.h:1414:JTYPE_ARRAY", + "macro:n_lib.h:35:NOTE_C_STATIC", + "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "macro:n_lib.h:56:CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "macro:n_lib.h:74:CARD_REQUEST_I2C_NACK_WAIT_MS", + "macro:n_lib.h:80:CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "macro:n_lib.h:92:CARD_RESET_DRAIN_MS", + "macro:n_lib.h:98:CARD_REQUEST_RETRIES_ALLOWED", + "macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES", + "macro:n_lib.h:111:ALLOC_CHUNK", + "macro:n_lib.h:113:ALLOC_CHUNK", + "macro:n_lib.h:258:_DebugIntln", + "macro:n_request.c:31:CRC_FIELD_LENGTH", + "macro:n_request.c:32:CRC_FIELD_NAME_OFFSET", + "macro:n_request.c:33:CRC_FIELD_NAME_TEST", + "macro:n_request.c:34:ERR_FIELD_NAME_TEST", + "macro:n_ua.c:107:PLUS", + "macro:n_ua.c:109:PLUS", + "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "macro:note.h:1028:NOTE_C_LOG_LEVEL", + "macro:n_lib.h:174:c_bad_len", + "macro:n_lib.h:177:c_badbinerr_len", + "macro:n_lib.h:180:c_cmd_len", + "macro:n_lib.h:183:c_err_len", + "macro:n_lib.h:186:c_false_len", + "macro:n_lib.h:189:c_heartbeat_len", + "macro:n_lib.h:192:c_iobad_len", + "macro:n_lib.h:195:c_ioerr_len", + "macro:n_lib.h:198:c_iotimeout_len", + "macro:n_lib.h:201:c_mem_len", + "macro:n_lib.h:204:c_newline_len", + "macro:n_lib.h:207:c_null_len", + "macro:n_lib.h:210:c_nullstring_len", + "macro:n_lib.h:213:c_req_len", + "macro:n_lib.h:216:c_status_len", + "macro:n_lib.h:219:c_true_len", + "macro:n_lib.h:222:c_unsupported_len", + "macro:note.h:322:NoteNewBody", + "macro:note.h:323:NoteAddBodyToObject", + "macro:note.h:324:NoteGetBody", + "macro:note.h:410:SYNCSTATUS_LEVEL_MAJOR", + "macro:note.h:411:SYNCSTATUS_LEVEL_MINOR", + "macro:note.h:412:SYNCSTATUS_LEVEL_DETAILED", + "macro:note.h:413:SYNCSTATUS_LEVEL_ALGORITHMIC", + "macro:note.h:414:SYNCSTATUS_LEVEL_ALL", + "macro:note.h:480:NoteResponseErrorContains", + "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "macro:note.h:954:NOTE_C_LOG_LEVEL_WARN", + "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "macro:note.h:956:NOTE_C_LOG_LEVEL_DEBUG", + "macro:note.h:1440:JGetObjectItemName", + "macro:note.h:1443:JNTOA_PRECISION", + "macro:note.h:1444:JNTOA_MAX", + "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "macro:note.h:19:NOTE_C_DEPRECATED", + "macro:note.h:21:NOTE_C_DEPRECATED", + "macro:note.h:39:_NOTE_C_STRINGIZE", + "macro:note.h:42:NOTE_C_VERSION_MAJOR", + "macro:note.h:43:NOTE_C_VERSION_MINOR", + "macro:note.h:44:NOTE_C_VERSION_PATCH", + "macro:note.h:46:NOTE_C_VERSION", + "macro:note.h:94:JINTEGER_MIN", + "macro:note.h:95:JINTEGER_MAX", + "macro:note.h:829:NOTE_I2C_ADDR_DEFAULT", + "macro:note.h:833:NOTE_I2C_HEADER_SIZE", + "macro:note.h:843:NOTE_I2C_MAX_MAX", + "macro:note.h:845:NOTE_I2C_MAX_MAX", + "macro:note.h:849:NOTE_I2C_MTU_MAX", + "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "macro:note.h:876:NOTE_I2C_MAX_DEFAULT", + "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "macro:note.h:2102:NP_SEGTYPE_LEN", + "macro:note.h:2103:NP_SEGLEN_LEN", + "macro:note.h:2104:NP_SEGHDR_LEN", + "macro:note.h:2182:TBOOL", + "macro:note.h:2183:TINT8", + "macro:note.h:2184:TINT16", + "macro:note.h:2185:TINT24", + "macro:note.h:2186:TINT32", + "macro:note.h:2187:TINT64", + "macro:note.h:2188:TUINT8", + "macro:note.h:2189:TUINT16", + "macro:note.h:2190:TUINT24", + "macro:note.h:2191:TUINT32", + "macro:note.h:2192:TFLOAT16", + "macro:note.h:2193:TFLOAT32", + "macro:note.h:2194:TFLOAT64", + "macro:note.h:2195:TSTRING", + "macro:note.h:2196:TSTRINGV", + "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "struct:n_cjson.c:232:lconv", + "struct:n_cjson.h:80:J", + "struct:n_cjson.h:81:J", + "struct:n_cjson.h:83:J", + "struct:n_helpers.c:2389:objHeader_s", + "typedef:n_cjson.c:82:typedef_82", + "typedef:n_cjson.c:239:typedef_239", + "typedef:n_cjson.c:340:typedef_340", + "typedef:n_cjson.h:103:Jbool", + "typedef:n_cjson.h:78:typedef_78", + "typedef:n_cjson.h:98:typedef_98", + "typedef:n_helpers.c:2388:typedef_2388", + "typedef:n_hooks.c:190:nNoteResetFn", + "typedef:n_hooks.c:191:nTransactionFn", + "typedef:n_hooks.c:192:nReceiveFn", + "typedef:n_hooks.c:193:nTransmitFn", + "typedef:note.h:100:JUINTEGER", + "typedef:note.h:105:JTIME", + "typedef:note.h:124:delayMsFn", + "typedef:note.h:133:freeFn", + "typedef:note.h:142:getMsFn", + "typedef:note.h:1523:typedef_1523", + "typedef:note.h:153:debugOutputFn", + "typedef:note.h:166:heartbeatFn", + "typedef:note.h:183:i2cReceiveFn", + "typedef:note.h:196:i2cResetFn", + "typedef:note.h:2109:typedef_2109", + "typedef:note.h:211:i2cTransmitFn", + "typedef:note.h:223:mallocFn", + "typedef:note.h:230:mutexFn", + "typedef:note.h:239:serialAvailableFn", + "typedef:note.h:248:serialReceiveFn", + "typedef:note.h:260:serialResetFn", + "typedef:note.h:271:serialTransmitFn", + "typedef:note.h:282:txnStartFn", + "typedef:note.h:289:txnStopFn", + "typedef:note.h:85:JNUMBER", + "typedef:note.h:87:JNUMBER", + "typedef:note.h:93:JINTEGER" + ], + "generated_at_utc": "2026-06-29T22:19:02+00:00", + "history": [ + { + "at": "2026-06-29T22:19:02+00:00", + "event": "start", + "node_id": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "note": null + }, + { + "at": "2026-06-29T22:19:02+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "note": "Source-inspected malloc/free debug logging compile-time switch; verified compile-guard edges from _n_ptoa32, NoteMalloc, and NoteFree; no focused enabled-logging test found.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:19:02+00:00", + "event": "complete", + "note": "Completed NOTE_C_SHOW_MALLOC compile-time logging slice." + }, + { + "at": "2026-06-29T22:25:06+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1400:JTYPE_NOT_PRESENT", + "note": "Verified absent/unclassifiable JSON type code from note.h and n_cjson_helpers.c JGetType/JGetItemType; focused JGetType tests cover missing, null-item, and invalid cases.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:06+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1401:JTYPE_BOOL_TRUE", + "note": "Verified true JSON classification from note.h and JGetItemType, with JBaseItemType bool coalescing; focused tests cover true and base-type behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "note": "Verified false JSON classification and omit-empty checks in object printing; focused tests cover false and bool base-type behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1403:JTYPE_BOOL", + "note": "Verified alias to JTYPE_BOOL_TRUE and base bool code returned by JBaseItemType; focused base-type tests cover bool coalescing and passthrough.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1404:JTYPE_NULL", + "note": "Verified null JSON classification from JGetItemType; focused JGetType and print behavior tests cover null classification behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "note": "Verified zero-number detailed code and omit-empty checks; focused tests cover zero-number classification and base number coalescing.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1406:JTYPE_NUMBER", + "note": "Verified nonzero/base numeric classification through JGetItemType and JBaseItemType; focused tests cover numeric and base-type behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1407:JTYPE_STRING_BLANK", + "note": "Verified blank-string detailed code and omit-empty checks; focused tests cover blank-string classification and base string coalescing.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1408:JTYPE_STRING_ZERO", + "note": "Verified numeric zero string classification through JAtoN branch and JBaseItemType; focused tests cover string-zero and base string behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1409:JTYPE_STRING_NUMBER", + "note": "Verified nonzero numeric string classification through JAtoN branch and JBaseItemType; focused tests cover numeric-string and base string behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1410:JTYPE_STRING_BOOL_TRUE", + "note": "Verified case-insensitive true-string classification and base string coalescing; focused tests cover string-bool-true behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1411:JTYPE_STRING_BOOL_FALSE", + "note": "Verified case-insensitive false-string classification and base string coalescing; focused tests cover string-bool-false behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1412:JTYPE_STRING", + "note": "Verified ordinary/base string classification through JGetItemType and JBaseItemType; focused tests cover string and base string behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1413:JTYPE_OBJECT", + "note": "Verified object classification from JGetItemType; focused tests cover object classification and base-type passthrough.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:25:07+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1414:JTYPE_ARRAY", + "note": "Verified array classification from JGetItemType; focused tests cover array classification and base-type passthrough.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:41+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:35:NOTE_C_STATIC", + "note": "Verified NOTE_C_STATIC linkage macro branches from n_lib.h, CMake NOTE_C_TEST definition, and test_static override.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "note": "Verified inter-transaction timeout macro, override global, n_request users, and focused timeout tests.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "note": "Verified intra-transaction timeout macro across binary, I2C, and serial receive paths.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:56:CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "note": "Verified I2C segment max constant in _i2cChunkedTransmit.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "note": "Verified I2C segment delay use in reset and chunked transmit pacing.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "note": "Verified I2C chunk delay use in reset drain and chunked transmit loops.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:74:CARD_REQUEST_I2C_NACK_WAIT_MS", + "note": "Verified I2C NACK wait use in _i2cNoteReset retry path.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:80:CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "note": "Verified serial segment max constant in _serialChunkedTransmit.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "note": "Verified serial segment delay use in reset and chunked transmit pacing.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:92:CARD_RESET_DRAIN_MS", + "note": "Verified reset drain duration in I2C and serial reset loops.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:98:CARD_REQUEST_RETRIES_ALLOWED", + "note": "Verified request retry budget in _noteTransactionShouldLock, including heartbeat non-consumption behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES", + "note": "Verified reset sync retry cap in I2C and serial reset loops.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:111:ALLOC_CHUNK", + "note": "Verified low-memory ALLOC_CHUNK branch and allocation users in I/O buffers and cJSON print growth.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:113:ALLOC_CHUNK", + "note": "Verified default ALLOC_CHUNK branch and allocation users in I/O buffers and cJSON print growth.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:258:_DebugIntln", + "note": "Verified debug-enabled wrapper to NoteDebugIntln and NOTE_NODEBUG no-op branch; exact production macro calls none found.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_request.c:31:CRC_FIELD_LENGTH", + "note": "Verified CRC field length in _crcAdd allocation and _crcError tail math.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_request.c:32:CRC_FIELD_NAME_OFFSET", + "note": "Verified CRC field name offset in _crcError tail matching and payload pointer math.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_request.c:33:CRC_FIELD_NAME_TEST", + "note": "Verified CRC field prefix matching in _crcError.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_request.c:34:ERR_FIELD_NAME_TEST", + "note": "Verified early error-response bypass in _crcError.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_ua.c:107:PLUS", + "note": "Verified C++ PLUS marker in NoteUserAgent compiler string construction.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_ua.c:109:PLUS", + "note": "Verified C PLUS empty branch in NoteUserAgent compiler string construction.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "note": "Verified default log level alias to NOTE_C_LOG_LEVEL_INFO and focused log-level tests.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:42+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1028:NOTE_C_LOG_LEVEL", + "note": "Verified guarded compile-time log-level fallback and n_hooks noteLogLevel initialization/filtering behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:174:c_bad_len", + "note": "Verified c_bad_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:177:c_badbinerr_len", + "note": "Verified c_badbinerr_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:180:c_cmd_len", + "note": "Verified c_cmd_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:183:c_err_len", + "note": "Verified c_err_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:186:c_false_len", + "note": "Verified c_false_len parse and print users in n_cjson.c.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:189:c_heartbeat_len", + "note": "Verified c_heartbeat_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:192:c_iobad_len", + "note": "Verified c_iobad_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:195:c_ioerr_len", + "note": "Verified c_ioerr_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:198:c_iotimeout_len", + "note": "Verified c_iotimeout_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:201:c_mem_len", + "note": "Verified c_mem_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:204:c_newline_len", + "note": "Verified c_newline_len serial CRLF transmit use.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:207:c_null_len", + "note": "Verified c_null_len parse and print users in n_cjson.c.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:210:c_nullstring_len", + "note": "Verified c_nullstring_len literal and paired empty n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:213:c_req_len", + "note": "Verified c_req_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:216:c_status_len", + "note": "Verified c_status_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:219:c_true_len", + "note": "Verified c_true_len parse and print users in n_cjson.c.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:30:43+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:n_lib.h:222:c_unsupported_len", + "note": "Verified c_unsupported_len literal and paired n_const.c string; exact _len production use none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:34:28+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:322:NoteNewBody", + "note": "Verified public body creation alias to JCreateObject; exact production macro calls none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:34:28+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:323:NoteAddBodyToObject", + "note": "Verified public body add wrapper to JAddItemToObject with fixed body key; exact production macro calls none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:34:28+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:324:NoteGetBody", + "note": "Verified public body getter wrapper to JGetObject with fixed body key; exact production macro calls none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:34:28+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:410:SYNCSTATUS_LEVEL_MAJOR", + "note": "Verified sync status level 0 public constant against NoteDebugSyncStatus max-level contract; exact production macro calls none found.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:28+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:411:SYNCSTATUS_LEVEL_MINOR", + "note": "Verified sync status level 1 public constant against NoteDebugSyncStatus max-level contract; exact production macro calls none found.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:412:SYNCSTATUS_LEVEL_DETAILED", + "note": "Verified sync status level 2 public constant against NoteDebugSyncStatus max-level contract; exact production macro calls none found.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:413:SYNCSTATUS_LEVEL_ALGORITHMIC", + "note": "Verified sync status level 3 public constant against NoteDebugSyncStatus max-level contract; exact production macro calls none found.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:414:SYNCSTATUS_LEVEL_ALL", + "note": "Verified negative sync status all-level constant and NoteDebugSyncStatus maxLevel < 0 behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:480:NoteResponseErrorContains", + "note": "Verified public error contains wrapper to JContainsString with fixed err key; focused test calls macro directly.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "note": "Verified error log-level constant in log wrappers and direct request error logging.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:954:NOTE_C_LOG_LEVEL_WARN", + "note": "Verified warn log-level constant in log wrappers and runtime log-level tests.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "note": "Verified info log-level constant in log wrappers and default log level alias.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:956:NOTE_C_LOG_LEVEL_DEBUG", + "note": "Verified debug log-level constant in log wrappers and default suppression tests.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1440:JGetObjectItemName", + "note": "Verified direct J item string-field accessor; exact production macro calls none found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1443:JNTOA_PRECISION", + "note": "Verified default JNtoA precision use for negative precision requests.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1444:JNTOA_MAX", + "note": "Verified number formatting buffer bound across ftoa, cJSON printing, and environment number helpers.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "note": "Verified binary MD5 digest byte count in MD5 helper loops and buffers.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:34:29+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "note": "Verified derived MD5 hex string buffer size in binary receive/transmit helpers and tests.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:19:NOTE_C_DEPRECATED", + "note": "GCC/Clang deprecated attribute branch annotates deprecated public declarations.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:21:NOTE_C_DEPRECATED", + "note": "MSVC deprecated attribute branch annotates deprecated public declarations.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:39:_NOTE_C_STRINGIZE", + "note": "Raw stringize primitive verified through NOTE_C_STRINGIZE, TSTRING, and TSTRINGV macro users.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:42:NOTE_C_VERSION_MAJOR", + "note": "Version major component verified as dependency of NOTE_C_VERSION.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:43:NOTE_C_VERSION_MINOR", + "note": "Version minor component verified as dependency of NOTE_C_VERSION.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:44:NOTE_C_VERSION_PATCH", + "note": "Version patch component verified as dependency of NOTE_C_VERSION.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:46:NOTE_C_VERSION", + "note": "Version string verified through NOTE_C_STRINGIZE expression and NoteUserAgent default agent use.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:94:JINTEGER_MIN", + "note": "JINTEGER minimum alias verified in cJSON saturation and JItoA minimum conversion paths.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:95:JINTEGER_MAX", + "note": "JINTEGER maximum alias verified in cJSON saturation paths.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:829:NOTE_I2C_ADDR_DEFAULT", + "note": "I2C default address verified in NoteI2CAddress and focused tests.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:833:NOTE_I2C_HEADER_SIZE", + "note": "I2C header-size default verified as dependency of default max MTU computation.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:843:NOTE_I2C_MAX_MAX", + "note": "I2C max compatibility branch verified in macro lattice.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:845:NOTE_I2C_MAX_MAX", + "note": "I2C default max branch verified as UCHAR_MAX minus header size.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "note": "I2C MTU max mirror verified in NoteI2CMax clamp behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "note": "I2C default compatibility branch verified in macro lattice.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:39+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "note": "STM32 I2C default branch verified as max-MTU default.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:876:NOTE_I2C_MAX_DEFAULT", + "note": "Conservative I2C default branch verified as 30-byte default.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "note": "I2C MTU default mirror verified in NoteI2CMax default behavior.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2102:NP_SEGTYPE_LEN", + "note": "Payload segment type width verified in add/find segment logic.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2103:NP_SEGLEN_LEN", + "note": "Payload segment length-field width verified in add-segment serialization.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2104:NP_SEGHDR_LEN", + "note": "Payload segment header width verified in add/find segment logic.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2182:TBOOL", + "note": "Public template bool code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2183:TINT8", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2184:TINT16", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2185:TINT24", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2186:TINT32", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2187:TINT64", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2188:TUINT8", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2189:TUINT16", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2190:TUINT24", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2191:TUINT32", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2192:TFLOAT16", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2193:TFLOAT32", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2194:TFLOAT64", + "note": "Public template numeric code verified; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2195:TSTRING", + "note": "Public template string code verified through _NOTE_C_STRINGIZE; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:37:40+00:00", + "caller_status": "none-found", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:2196:TSTRINGV", + "note": "Public template variable string code verified through _NOTE_C_STRINGIZE; no in-repo direct macro use found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "note": "Verified optional file/line logging macro branch and log-wrapper users.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "struct:n_cjson.c:232:lconv", + "note": "Verified external locale struct reference in _get_decimal_point ENABLE_LOCALES branch.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "struct:n_cjson.h:80:J", + "note": "Verified J next-pointer field as part of core JSON object topology.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "struct:n_cjson.h:81:J", + "note": "Verified J prev-pointer field as part of core JSON object topology.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "struct:n_cjson.h:83:J", + "note": "Verified J child-pointer field as part of array/object child topology.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "struct:n_helpers.c:2389:objHeader_s", + "note": "Verified objHeader_s recursive field use in NoteMemAvailable allocation probe.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_cjson.c:82:typedef_82", + "note": "Verified internal parse error typedef and global_error/JGetErrorPtr users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_cjson.c:239:typedef_239", + "note": "Verified parse_buffer parser cursor/depth state users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_cjson.c:340:typedef_340", + "note": "Verified printbuffer print/growth state users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_cjson.h:103:Jbool", + "note": "Verified cJSON Jbool API/internal boolean type users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_cjson.h:78:typedef_78", + "note": "Verified core J object typedef and representative JSON API users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_cjson.h:98:typedef_98", + "note": "Verified JHooks allocator hook typedef declaration; no in-repo implementation/test found.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_helpers.c:2388:typedef_2388", + "note": "Verified objHeader typedef use in NoteMemAvailable allocation probe.", + "test_status": "none" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_hooks.c:190:nNoteResetFn", + "note": "Verified internal active-interface reset function pointer type.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:04+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_hooks.c:191:nTransactionFn", + "note": "Verified internal active-interface JSON transaction function pointer type.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_hooks.c:192:nReceiveFn", + "note": "Verified internal active-interface chunked receive function pointer type.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:n_hooks.c:193:nTransmitFn", + "note": "Verified internal active-interface chunked transmit function pointer type.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:100:JUINTEGER", + "note": "Verified public unsigned integer typedef used by JTIME and JItoA conversion support.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:105:JTIME", + "note": "Verified public epoch time typedef across time/location/status APIs.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:124:delayMsFn", + "note": "Verified delay hook function pointer typedef and setter/getter/dispatch users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:133:freeFn", + "note": "Verified free hook function pointer typedef and setter/getter/dispatch users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:142:getMsFn", + "note": "Verified millisecond hook function pointer typedef and setter/getter/dispatch users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:1523:typedef_1523", + "note": "Verified NoteMD5Context public MD5 state typedef and MD5 function users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:153:debugOutputFn", + "note": "Verified debug output hook typedef and setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:166:heartbeatFn", + "note": "Verified heartbeat callback typedef and callback setter/getter users under callback feature.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:183:i2cReceiveFn", + "note": "Verified I2C receive hook typedef and I2C hook setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:196:i2cResetFn", + "note": "Verified I2C reset hook typedef and I2C hook setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:2109:typedef_2109", + "note": "Verified NotePayloadDesc public payload descriptor typedef and payload function users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:211:i2cTransmitFn", + "note": "Verified I2C transmit hook typedef and I2C hook setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:223:mallocFn", + "note": "Verified malloc hook typedef and setter/getter/dispatch users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:230:mutexFn", + "note": "Verified mutex hook typedef and mutex setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:239:serialAvailableFn", + "note": "Verified serial available hook typedef and serial setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:248:serialReceiveFn", + "note": "Verified serial receive hook typedef and serial setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:260:serialResetFn", + "note": "Verified serial reset hook typedef and serial setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:271:serialTransmitFn", + "note": "Verified serial transmit hook typedef and serial setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:282:txnStartFn", + "note": "Verified transaction start hook typedef and transaction setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:05+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:289:txnStopFn", + "note": "Verified transaction stop hook typedef and transaction setter/getter users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:06+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:85:JNUMBER", + "note": "Verified single-precision JNUMBER branch and numeric API users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:06+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:87:JNUMBER", + "note": "Verified default double JNUMBER branch and numeric API users.", + "test_status": "focused" + }, + { + "at": "2026-06-29T22:41:06+00:00", + "caller_status": "verified", + "confidence": "high", + "event": "finalize", + "node_id": "typedef:note.h:93:JINTEGER", + "note": "Verified public signed JSON integer typedef and integer API users.", + "test_status": "focused" + } + ], + "next_commands": [], + "next_node_id": null, + "next_required_action": "complete_slice", + "queued_callers": [], + "root_target": { + "artifact": "artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md", + "file": "n_hooks.c", + "line": 33, + "node_id": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "node_type": "macro", + "qualified_name": "NOTE_C_SHOW_MALLOC" + }, + "schema_version": 1, + "slice_id": "slice-f95c3d2e0317", + "status": "complete", + "unresolved_callees": { + "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC": [] + }, + "updated_at_utc": "2026-06-29T22:41:06+00:00" +} diff --git a/source-research/frontier/work-queue.json b/source-research/frontier/work-queue.json new file mode 100644 index 00000000..56cbfcab --- /dev/null +++ b/source-research/frontier/work-queue.json @@ -0,0 +1,12 @@ +{ + "fanout_batches": [], + "generated_at_utc": "2026-07-02T23:46:50+00:00", + "ready_nodes": [], + "schema_version": 1, + "summary": { + "fanout_batches_total": 0, + "fanout_threshold": 20, + "ready_nodes_emitted": 0, + "ready_nodes_total": 0 + } +} diff --git a/source-research/inventory/artifact-status.json b/source-research/inventory/artifact-status.json new file mode 100644 index 00000000..6213923d --- /dev/null +++ b/source-research/inventory/artifact-status.json @@ -0,0 +1,5922 @@ +{ + "generated_at_utc": "2026-07-02T23:46:50+00:00", + "missing_artifacts": [], + "orphan_artifacts": [ + "artifacts/functions/test_hitl_card_binary_after_upload_py__L14__wait_for_test_port.md", + "artifacts/functions/test_hitl_card_binary_after_upload_py__L30__start_tests.md", + "artifacts/functions/test_hitl_card_binary_after_upload_py__L36__after_upload.md", + "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_cpp__L13__BinaryGenerator.md", + "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L106__readDataUntilTimeout.md", + "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L11__set_aux_serial_baudrate.md", + "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L52__initialize_notecard_interface.md", + "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L79__uninitialize_notecard_interface.md", + "artifacts/functions/test_hitl_card_binary_src_main_cpp__L14__loop.md", + "artifacts/functions/test_hitl_card_binary_src_main_cpp__L4__setup.md", + "artifacts/functions/test_hitl_card_binary_src_main_cpp__L9__showHelp.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L13__testsuite_binary_generators_setUp.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L17__testsuite_binary_generators_tearDown.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L23__check_binary.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L41__check_content_fixed_value.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L53__TEST.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L64__TEST.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L84__testsuite_binary_generators.md", + "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L8__testsuite_binary_generators_filter.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L121__binaryTransferTest.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L308__get_expected_max_binary_length.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L30__testsuite_card_binary_filter.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L338__test_get_max_binary_length.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L35__testsuite_card_binary_setUp.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L370__base_test_max_length.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L388__TEST.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L393__TEST.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L398__TEST.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L40__testsuite_card_binary_tearDown.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L429__waitForNotecardConnected.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L439__testsuite_card_binary.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L44__assert_initialize_notecard.md", + "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L53__AssertNoteBinaryReset.md", + "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L20__waitForStartCommand.md", + "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L41__setup.md", + "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L60__loop.md", + "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L8__runUnityTests.md", + "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L15__setUp.md", + "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L22__tearDown.md", + "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L29__filterTest.md", + "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L8__test_suite_hooks.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L120__WebRequestHandler_log_request_headers.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L126__WebRequestHandler_do.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L13__log.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L140__WebRequestHandler_validate_token.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L148__WebRequestHandler_get_md5.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L163__WebRequestHandler_chunk_content.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L166__WebRequestHandler_md5_for_directory.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L189__WebRequestHandler_delete_files.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L196__WebRequestHandler_write_file_or_note.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L202__WebRequestHandler_write_note.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L20__log_sensitive.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L227__WebRequestHandler_write_file.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L235__WebRequestHandler__read_file.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L243__WebRequestHandler__chunk_file.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L251__WebRequestHandler__write_file.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L27__HTTPException___init.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L286__WebRequestHandler_validate_url_path.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L290__WebRequestHandler_validate_path.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L297__WebRequestHandler_dump_request.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L306__main.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L315__main_build_request_handler.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L49__WebRequestHandler___init.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L57__WebRequestHandler_url.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L61__WebRequestHandler_query_data.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L65__WebRequestHandler_post_data.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L80__WebRequestHandler_form_data.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L83__WebRequestHandler_do_GET.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L86__WebRequestHandler_do_DELETE.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L89__WebRequestHandler_do_POST.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L92__WebRequestHandler_do_PUT.md", + "artifacts/functions/test_hitl_scripts_md5srv_py__L95__WebRequestHandler_send_status.md", + "artifacts/functions/test_include_fff_h__L1013__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1096__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1182__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L122__reset.md", + "artifacts/functions/test_include_fff_h__L1271__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1363__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1458__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1556__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1638__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L166__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1690__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1745__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1803__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1864__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1928__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L1995__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2065__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L207__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2138__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2214__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2293__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2375__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2460__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L251__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2548__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2639__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2733__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2830__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L2930__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L298__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3033__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3139__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3248__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3338__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3391__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3447__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L348__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3506__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3568__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3633__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3701__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3772__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3846__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L3923__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4003__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L401__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4086__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4172__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4261__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4353__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4448__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4546__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L457__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4647__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4751__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4841__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4905__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L4972__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5042__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5115__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L516__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5191__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5270__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5352__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5437__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5525__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5616__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5710__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L578__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5807__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L5907__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L6010__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L6116__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L6225__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L6337__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L643__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L6452__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L711__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L782__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L856__FUNCNAME.md", + "artifacts/functions/test_include_fff_h__L933__FUNCNAME.md", + "artifacts/functions/test_include_time_mocks_h__L16__NoteGetMsIncrement.md", + "artifacts/functions/test_integration_link_test_c__L9__main.md", + "artifacts/functions/test_src_NoteResponseError_test_cpp__L26__SCENARIO.md", + "artifacts/functions/test_src_NoteUserAgent_test_cpp__L29__NoteUserAgentUpdate.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L15__TINY_SIZE.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L16__TINY_SIZE_NAME.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L17__SMALL_SIZE.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L18__SMALL_SIZE_NAME.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L19__MEDIUM_SIZE.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L20__MEDIUM_SIZE_NAME.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L21__LARGE_SIZE.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L22__LARGE_SIZE_NAME.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L23__XLARGE_SIZE.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L24__XLARGE_SIZE_NAME.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L320__PRODUCT_UID.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L325__PRODUCT_UID.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L785__NOT_CONNECTED_TIMEOUT.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L789__MIME_APPLICATION_OCTETSTREAM.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L8__FEATHER_AUX_EN_PIN.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L13__NOTECARD_IF_SERIAL_PORT.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L17__NOTECARD_IF_SERIAL_BAUDRATE.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L21__NOTECARD_IF_AUX_SERIAL_PORT.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L25__NOTECARD_IF_AUX_SERIAL_BAUDRATE.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L29__NOTECARD_IF_I2C_ADDRESS.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L34__dbgSerial.md", + "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L36__dbgSerial.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L15__NOTEHUB_PROXY_ROUTE_ALIAS.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L216__RUN_SIZE.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L227__RUN_ALL_SIZES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L236__RUN_ALL_SIZES_ALL_IFACES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L242__RUN_AUX_SERIAL_BAUDRATE_CHUNK.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L250__RUN_AUX_SERIAL_BAUDRATE.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L258__RUN_AUX_SERIAL_ALL_CHUNK_SIZES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L265__RUN_AUX_SERIAL_SELECT_CHUNK_SIZES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L271__RUN_AUX_SERIAL_ALL_BAUDRATES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L279__RUN_AUX_SERIAL_SELECT_BAUDRATES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L27__TEST_CARD_BINARY_FILTER.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L285__TEST_AUX_SERIAL_EXHAUSTIVELY.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L289__RUN_AUX_SERIAL_BAUDRATES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L291__RUN_AUX_SERIAL_BAUDRATES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L298__RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L404__RUN_AUX_SERIAL_ALL_SIZES.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L416__RUN_SMOKE_TESTS.md", + "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L8__TEST_CARD_BINARY_EXHAUSTIVELY.md", + "artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L11__TEST.md", + "artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L19__TEST_SUITE.md", + "artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L29__RUN_FILTER.md", + "artifacts/macros/test_include_fff_h__L1011__DEFINE_FAKE_VOID_FUNC14.md", + "artifacts/macros/test_include_fff_h__L101__RETURN_FAKE_RESULT.md", + "artifacts/macros/test_include_fff_h__L1063__FAKE_VOID_FUNC14.md", + "artifacts/macros/test_include_fff_h__L1068__DECLARE_FAKE_VOID_FUNC15.md", + "artifacts/macros/test_include_fff_h__L1094__DEFINE_FAKE_VOID_FUNC15.md", + "artifacts/macros/test_include_fff_h__L1148__FAKE_VOID_FUNC15.md", + "artifacts/macros/test_include_fff_h__L114__FFF_EXTERN_C.md", + "artifacts/macros/test_include_fff_h__L1153__DECLARE_FAKE_VOID_FUNC16.md", + "artifacts/macros/test_include_fff_h__L115__FFF_END_EXTERN_C.md", + "artifacts/macros/test_include_fff_h__L117__FFF_EXTERN_C.md", + "artifacts/macros/test_include_fff_h__L1180__DEFINE_FAKE_VOID_FUNC16.md", + "artifacts/macros/test_include_fff_h__L118__FFF_END_EXTERN_C.md", + "artifacts/macros/test_include_fff_h__L121__DEFINE_RESET_FUNCTION.md", + "artifacts/macros/test_include_fff_h__L1236__FAKE_VOID_FUNC16.md", + "artifacts/macros/test_include_fff_h__L1241__DECLARE_FAKE_VOID_FUNC17.md", + "artifacts/macros/test_include_fff_h__L1269__DEFINE_FAKE_VOID_FUNC17.md", + "artifacts/macros/test_include_fff_h__L1327__FAKE_VOID_FUNC17.md", + "artifacts/macros/test_include_fff_h__L1332__DECLARE_FAKE_VOID_FUNC18.md", + "artifacts/macros/test_include_fff_h__L1361__DEFINE_FAKE_VOID_FUNC18.md", + "artifacts/macros/test_include_fff_h__L140__DEFINE_FFF_GLOBALS.md", + "artifacts/macros/test_include_fff_h__L1421__FAKE_VOID_FUNC18.md", + "artifacts/macros/test_include_fff_h__L1426__DECLARE_FAKE_VOID_FUNC19.md", + "artifacts/macros/test_include_fff_h__L1456__DEFINE_FAKE_VOID_FUNC19.md", + "artifacts/macros/test_include_fff_h__L145__FFF_RESET_HISTORY.md", + "artifacts/macros/test_include_fff_h__L149__REGISTER_CALL.md", + "artifacts/macros/test_include_fff_h__L1518__FAKE_VOID_FUNC19.md", + "artifacts/macros/test_include_fff_h__L1523__DECLARE_FAKE_VOID_FUNC20.md", + "artifacts/macros/test_include_fff_h__L153__DECLARE_FAKE_VOID_FUNC0.md", + "artifacts/macros/test_include_fff_h__L1554__DEFINE_FAKE_VOID_FUNC20.md", + "artifacts/macros/test_include_fff_h__L1618__FAKE_VOID_FUNC20.md", + "artifacts/macros/test_include_fff_h__L1623__DECLARE_FAKE_VALUE_FUNC0.md", + "artifacts/macros/test_include_fff_h__L1636__DEFINE_FAKE_VALUE_FUNC0.md", + "artifacts/macros/test_include_fff_h__L164__DEFINE_FAKE_VOID_FUNC0.md", + "artifacts/macros/test_include_fff_h__L1669__FAKE_VALUE_FUNC0.md", + "artifacts/macros/test_include_fff_h__L1674__DECLARE_FAKE_VALUE_FUNC1.md", + "artifacts/macros/test_include_fff_h__L1688__DEFINE_FAKE_VALUE_FUNC1.md", + "artifacts/macros/test_include_fff_h__L1723__FAKE_VALUE_FUNC1.md", + "artifacts/macros/test_include_fff_h__L1728__DECLARE_FAKE_VALUE_FUNC2.md", + "artifacts/macros/test_include_fff_h__L1743__DEFINE_FAKE_VALUE_FUNC2.md", + "artifacts/macros/test_include_fff_h__L1780__FAKE_VALUE_FUNC2.md", + "artifacts/macros/test_include_fff_h__L1785__DECLARE_FAKE_VALUE_FUNC3.md", + "artifacts/macros/test_include_fff_h__L1801__DEFINE_FAKE_VALUE_FUNC3.md", + "artifacts/macros/test_include_fff_h__L1840__FAKE_VALUE_FUNC3.md", + "artifacts/macros/test_include_fff_h__L1845__DECLARE_FAKE_VALUE_FUNC4.md", + "artifacts/macros/test_include_fff_h__L1862__DEFINE_FAKE_VALUE_FUNC4.md", + "artifacts/macros/test_include_fff_h__L188__FAKE_VOID_FUNC0.md", + "artifacts/macros/test_include_fff_h__L1903__FAKE_VALUE_FUNC4.md", + "artifacts/macros/test_include_fff_h__L1908__DECLARE_FAKE_VALUE_FUNC5.md", + "artifacts/macros/test_include_fff_h__L1926__DEFINE_FAKE_VALUE_FUNC5.md", + "artifacts/macros/test_include_fff_h__L193__DECLARE_FAKE_VOID_FUNC1.md", + "artifacts/macros/test_include_fff_h__L1969__FAKE_VALUE_FUNC5.md", + "artifacts/macros/test_include_fff_h__L1974__DECLARE_FAKE_VALUE_FUNC6.md", + "artifacts/macros/test_include_fff_h__L1993__DEFINE_FAKE_VALUE_FUNC6.md", + "artifacts/macros/test_include_fff_h__L2038__FAKE_VALUE_FUNC6.md", + "artifacts/macros/test_include_fff_h__L2043__DECLARE_FAKE_VALUE_FUNC7.md", + "artifacts/macros/test_include_fff_h__L205__DEFINE_FAKE_VOID_FUNC1.md", + "artifacts/macros/test_include_fff_h__L2063__DEFINE_FAKE_VALUE_FUNC7.md", + "artifacts/macros/test_include_fff_h__L2110__FAKE_VALUE_FUNC7.md", + "artifacts/macros/test_include_fff_h__L2115__DECLARE_FAKE_VALUE_FUNC8.md", + "artifacts/macros/test_include_fff_h__L2136__DEFINE_FAKE_VALUE_FUNC8.md", + "artifacts/macros/test_include_fff_h__L2185__FAKE_VALUE_FUNC8.md", + "artifacts/macros/test_include_fff_h__L2190__DECLARE_FAKE_VALUE_FUNC9.md", + "artifacts/macros/test_include_fff_h__L2212__DEFINE_FAKE_VALUE_FUNC9.md", + "artifacts/macros/test_include_fff_h__L2263__FAKE_VALUE_FUNC9.md", + "artifacts/macros/test_include_fff_h__L2268__DECLARE_FAKE_VALUE_FUNC10.md", + "artifacts/macros/test_include_fff_h__L2291__DEFINE_FAKE_VALUE_FUNC10.md", + "artifacts/macros/test_include_fff_h__L231__FAKE_VOID_FUNC1.md", + "artifacts/macros/test_include_fff_h__L2344__FAKE_VALUE_FUNC10.md", + "artifacts/macros/test_include_fff_h__L2349__DECLARE_FAKE_VALUE_FUNC11.md", + "artifacts/macros/test_include_fff_h__L236__DECLARE_FAKE_VOID_FUNC2.md", + "artifacts/macros/test_include_fff_h__L2373__DEFINE_FAKE_VALUE_FUNC11.md", + "artifacts/macros/test_include_fff_h__L2428__FAKE_VALUE_FUNC11.md", + "artifacts/macros/test_include_fff_h__L2433__DECLARE_FAKE_VALUE_FUNC12.md", + "artifacts/macros/test_include_fff_h__L2458__DEFINE_FAKE_VALUE_FUNC12.md", + "artifacts/macros/test_include_fff_h__L249__DEFINE_FAKE_VOID_FUNC2.md", + "artifacts/macros/test_include_fff_h__L2515__FAKE_VALUE_FUNC12.md", + "artifacts/macros/test_include_fff_h__L2520__DECLARE_FAKE_VALUE_FUNC13.md", + "artifacts/macros/test_include_fff_h__L2546__DEFINE_FAKE_VALUE_FUNC13.md", + "artifacts/macros/test_include_fff_h__L2605__FAKE_VALUE_FUNC13.md", + "artifacts/macros/test_include_fff_h__L2610__DECLARE_FAKE_VALUE_FUNC14.md", + "artifacts/macros/test_include_fff_h__L2637__DEFINE_FAKE_VALUE_FUNC14.md", + "artifacts/macros/test_include_fff_h__L2698__FAKE_VALUE_FUNC14.md", + "artifacts/macros/test_include_fff_h__L2703__DECLARE_FAKE_VALUE_FUNC15.md", + "artifacts/macros/test_include_fff_h__L2731__DEFINE_FAKE_VALUE_FUNC15.md", + "artifacts/macros/test_include_fff_h__L277__FAKE_VOID_FUNC2.md", + "artifacts/macros/test_include_fff_h__L2794__FAKE_VALUE_FUNC15.md", + "artifacts/macros/test_include_fff_h__L2799__DECLARE_FAKE_VALUE_FUNC16.md", + "artifacts/macros/test_include_fff_h__L2828__DEFINE_FAKE_VALUE_FUNC16.md", + "artifacts/macros/test_include_fff_h__L282__DECLARE_FAKE_VOID_FUNC3.md", + "artifacts/macros/test_include_fff_h__L2893__FAKE_VALUE_FUNC16.md", + "artifacts/macros/test_include_fff_h__L2898__DECLARE_FAKE_VALUE_FUNC17.md", + "artifacts/macros/test_include_fff_h__L2928__DEFINE_FAKE_VALUE_FUNC17.md", + "artifacts/macros/test_include_fff_h__L296__DEFINE_FAKE_VOID_FUNC3.md", + "artifacts/macros/test_include_fff_h__L2995__FAKE_VALUE_FUNC17.md", + "artifacts/macros/test_include_fff_h__L3000__DECLARE_FAKE_VALUE_FUNC18.md", + "artifacts/macros/test_include_fff_h__L3031__DEFINE_FAKE_VALUE_FUNC18.md", + "artifacts/macros/test_include_fff_h__L3100__FAKE_VALUE_FUNC18.md", + "artifacts/macros/test_include_fff_h__L3105__DECLARE_FAKE_VALUE_FUNC19.md", + "artifacts/macros/test_include_fff_h__L3137__DEFINE_FAKE_VALUE_FUNC19.md", + "artifacts/macros/test_include_fff_h__L3208__FAKE_VALUE_FUNC19.md", + "artifacts/macros/test_include_fff_h__L3213__DECLARE_FAKE_VALUE_FUNC20.md", + "artifacts/macros/test_include_fff_h__L3246__DEFINE_FAKE_VALUE_FUNC20.md", + "artifacts/macros/test_include_fff_h__L326__FAKE_VOID_FUNC3.md", + "artifacts/macros/test_include_fff_h__L32__FFF_MAX_ARGS.md", + "artifacts/macros/test_include_fff_h__L3319__FAKE_VALUE_FUNC20.md", + "artifacts/macros/test_include_fff_h__L331__DECLARE_FAKE_VOID_FUNC4.md", + "artifacts/macros/test_include_fff_h__L3324__DECLARE_FAKE_VOID_FUNC2_VARARG.md", + "artifacts/macros/test_include_fff_h__L3336__DEFINE_FAKE_VOID_FUNC2_VARARG.md", + "artifacts/macros/test_include_fff_h__L3371__FAKE_VOID_FUNC2_VARARG.md", + "artifacts/macros/test_include_fff_h__L3376__DECLARE_FAKE_VOID_FUNC3_VARARG.md", + "artifacts/macros/test_include_fff_h__L3389__DEFINE_FAKE_VOID_FUNC3_VARARG.md", + "artifacts/macros/test_include_fff_h__L3426__FAKE_VOID_FUNC3_VARARG.md", + "artifacts/macros/test_include_fff_h__L3431__DECLARE_FAKE_VOID_FUNC4_VARARG.md", + "artifacts/macros/test_include_fff_h__L3445__DEFINE_FAKE_VOID_FUNC4_VARARG.md", + "artifacts/macros/test_include_fff_h__L346__DEFINE_FAKE_VOID_FUNC4.md", + "artifacts/macros/test_include_fff_h__L3484__FAKE_VOID_FUNC4_VARARG.md", + "artifacts/macros/test_include_fff_h__L3489__DECLARE_FAKE_VOID_FUNC5_VARARG.md", + "artifacts/macros/test_include_fff_h__L34__FFF_ARG_HISTORY_LEN.md", + "artifacts/macros/test_include_fff_h__L3504__DEFINE_FAKE_VOID_FUNC5_VARARG.md", + "artifacts/macros/test_include_fff_h__L3545__FAKE_VOID_FUNC5_VARARG.md", + "artifacts/macros/test_include_fff_h__L3550__DECLARE_FAKE_VOID_FUNC6_VARARG.md", + "artifacts/macros/test_include_fff_h__L3566__DEFINE_FAKE_VOID_FUNC6_VARARG.md", + "artifacts/macros/test_include_fff_h__L3609__FAKE_VOID_FUNC6_VARARG.md", + "artifacts/macros/test_include_fff_h__L3614__DECLARE_FAKE_VOID_FUNC7_VARARG.md", + "artifacts/macros/test_include_fff_h__L3631__DEFINE_FAKE_VOID_FUNC7_VARARG.md", + "artifacts/macros/test_include_fff_h__L3676__FAKE_VOID_FUNC7_VARARG.md", + "artifacts/macros/test_include_fff_h__L3681__DECLARE_FAKE_VOID_FUNC8_VARARG.md", + "artifacts/macros/test_include_fff_h__L3699__DEFINE_FAKE_VOID_FUNC8_VARARG.md", + "artifacts/macros/test_include_fff_h__L3746__FAKE_VOID_FUNC8_VARARG.md", + "artifacts/macros/test_include_fff_h__L3751__DECLARE_FAKE_VOID_FUNC9_VARARG.md", + "artifacts/macros/test_include_fff_h__L3770__DEFINE_FAKE_VOID_FUNC9_VARARG.md", + "artifacts/macros/test_include_fff_h__L378__FAKE_VOID_FUNC4.md", + "artifacts/macros/test_include_fff_h__L37__FFF_CALL_HISTORY_LEN.md", + "artifacts/macros/test_include_fff_h__L3819__FAKE_VOID_FUNC9_VARARG.md", + "artifacts/macros/test_include_fff_h__L3824__DECLARE_FAKE_VOID_FUNC10_VARARG.md", + "artifacts/macros/test_include_fff_h__L383__DECLARE_FAKE_VOID_FUNC5.md", + "artifacts/macros/test_include_fff_h__L3844__DEFINE_FAKE_VOID_FUNC10_VARARG.md", + "artifacts/macros/test_include_fff_h__L3895__FAKE_VOID_FUNC10_VARARG.md", + "artifacts/macros/test_include_fff_h__L3900__DECLARE_FAKE_VOID_FUNC11_VARARG.md", + "artifacts/macros/test_include_fff_h__L3921__DEFINE_FAKE_VOID_FUNC11_VARARG.md", + "artifacts/macros/test_include_fff_h__L3974__FAKE_VOID_FUNC11_VARARG.md", + "artifacts/macros/test_include_fff_h__L3979__DECLARE_FAKE_VOID_FUNC12_VARARG.md", + "artifacts/macros/test_include_fff_h__L399__DEFINE_FAKE_VOID_FUNC5.md", + "artifacts/macros/test_include_fff_h__L4001__DEFINE_FAKE_VOID_FUNC12_VARARG.md", + "artifacts/macros/test_include_fff_h__L4056__FAKE_VOID_FUNC12_VARARG.md", + "artifacts/macros/test_include_fff_h__L4061__DECLARE_FAKE_VOID_FUNC13_VARARG.md", + "artifacts/macros/test_include_fff_h__L4084__DEFINE_FAKE_VOID_FUNC13_VARARG.md", + "artifacts/macros/test_include_fff_h__L4141__FAKE_VOID_FUNC13_VARARG.md", + "artifacts/macros/test_include_fff_h__L4146__DECLARE_FAKE_VOID_FUNC14_VARARG.md", + "artifacts/macros/test_include_fff_h__L4170__DEFINE_FAKE_VOID_FUNC14_VARARG.md", + "artifacts/macros/test_include_fff_h__L4229__FAKE_VOID_FUNC14_VARARG.md", + "artifacts/macros/test_include_fff_h__L4234__DECLARE_FAKE_VOID_FUNC15_VARARG.md", + "artifacts/macros/test_include_fff_h__L4259__DEFINE_FAKE_VOID_FUNC15_VARARG.md", + "artifacts/macros/test_include_fff_h__L4320__FAKE_VOID_FUNC15_VARARG.md", + "artifacts/macros/test_include_fff_h__L4325__DECLARE_FAKE_VOID_FUNC16_VARARG.md", + "artifacts/macros/test_include_fff_h__L433__FAKE_VOID_FUNC5.md", + "artifacts/macros/test_include_fff_h__L4351__DEFINE_FAKE_VOID_FUNC16_VARARG.md", + "artifacts/macros/test_include_fff_h__L438__DECLARE_FAKE_VOID_FUNC6.md", + "artifacts/macros/test_include_fff_h__L43__CUSTOM_FFF_FUNCTION_TEMPLATE.md", + "artifacts/macros/test_include_fff_h__L4414__FAKE_VOID_FUNC16_VARARG.md", + "artifacts/macros/test_include_fff_h__L4419__DECLARE_FAKE_VOID_FUNC17_VARARG.md", + "artifacts/macros/test_include_fff_h__L4446__DEFINE_FAKE_VOID_FUNC17_VARARG.md", + "artifacts/macros/test_include_fff_h__L4511__FAKE_VOID_FUNC17_VARARG.md", + "artifacts/macros/test_include_fff_h__L4516__DECLARE_FAKE_VOID_FUNC18_VARARG.md", + "artifacts/macros/test_include_fff_h__L4544__DEFINE_FAKE_VOID_FUNC18_VARARG.md", + "artifacts/macros/test_include_fff_h__L455__DEFINE_FAKE_VOID_FUNC6.md", + "artifacts/macros/test_include_fff_h__L4611__FAKE_VOID_FUNC18_VARARG.md", + "artifacts/macros/test_include_fff_h__L4616__DECLARE_FAKE_VOID_FUNC19_VARARG.md", + "artifacts/macros/test_include_fff_h__L4645__DEFINE_FAKE_VOID_FUNC19_VARARG.md", + "artifacts/macros/test_include_fff_h__L4714__FAKE_VOID_FUNC19_VARARG.md", + "artifacts/macros/test_include_fff_h__L4719__DECLARE_FAKE_VOID_FUNC20_VARARG.md", + "artifacts/macros/test_include_fff_h__L4749__DEFINE_FAKE_VOID_FUNC20_VARARG.md", + "artifacts/macros/test_include_fff_h__L47__SET_RETURN_SEQ.md", + "artifacts/macros/test_include_fff_h__L4820__FAKE_VOID_FUNC20_VARARG.md", + "artifacts/macros/test_include_fff_h__L4825__DECLARE_FAKE_VALUE_FUNC2_VARARG.md", + "artifacts/macros/test_include_fff_h__L4839__DEFINE_FAKE_VALUE_FUNC2_VARARG.md", + "artifacts/macros/test_include_fff_h__L4883__FAKE_VALUE_FUNC2_VARARG.md", + "artifacts/macros/test_include_fff_h__L4888__DECLARE_FAKE_VALUE_FUNC3_VARARG.md", + "artifacts/macros/test_include_fff_h__L4903__DEFINE_FAKE_VALUE_FUNC3_VARARG.md", + "artifacts/macros/test_include_fff_h__L491__FAKE_VOID_FUNC6.md", + "artifacts/macros/test_include_fff_h__L4949__FAKE_VALUE_FUNC3_VARARG.md", + "artifacts/macros/test_include_fff_h__L4954__DECLARE_FAKE_VALUE_FUNC4_VARARG.md", + "artifacts/macros/test_include_fff_h__L496__DECLARE_FAKE_VOID_FUNC7.md", + "artifacts/macros/test_include_fff_h__L4970__DEFINE_FAKE_VALUE_FUNC4_VARARG.md", + "artifacts/macros/test_include_fff_h__L5018__FAKE_VALUE_FUNC4_VARARG.md", + "artifacts/macros/test_include_fff_h__L5023__DECLARE_FAKE_VALUE_FUNC5_VARARG.md", + "artifacts/macros/test_include_fff_h__L5040__DEFINE_FAKE_VALUE_FUNC5_VARARG.md", + "artifacts/macros/test_include_fff_h__L5090__FAKE_VALUE_FUNC5_VARARG.md", + "artifacts/macros/test_include_fff_h__L5095__DECLARE_FAKE_VALUE_FUNC6_VARARG.md", + "artifacts/macros/test_include_fff_h__L50__SET_CUSTOM_FAKE_SEQ.md", + "artifacts/macros/test_include_fff_h__L5113__DEFINE_FAKE_VALUE_FUNC6_VARARG.md", + "artifacts/macros/test_include_fff_h__L514__DEFINE_FAKE_VOID_FUNC7.md", + "artifacts/macros/test_include_fff_h__L5165__FAKE_VALUE_FUNC6_VARARG.md", + "artifacts/macros/test_include_fff_h__L5170__DECLARE_FAKE_VALUE_FUNC7_VARARG.md", + "artifacts/macros/test_include_fff_h__L5189__DEFINE_FAKE_VALUE_FUNC7_VARARG.md", + "artifacts/macros/test_include_fff_h__L5243__FAKE_VALUE_FUNC7_VARARG.md", + "artifacts/macros/test_include_fff_h__L5248__DECLARE_FAKE_VALUE_FUNC8_VARARG.md", + "artifacts/macros/test_include_fff_h__L5268__DEFINE_FAKE_VALUE_FUNC8_VARARG.md", + "artifacts/macros/test_include_fff_h__L5324__FAKE_VALUE_FUNC8_VARARG.md", + "artifacts/macros/test_include_fff_h__L5329__DECLARE_FAKE_VALUE_FUNC9_VARARG.md", + "artifacts/macros/test_include_fff_h__L5350__DEFINE_FAKE_VALUE_FUNC9_VARARG.md", + "artifacts/macros/test_include_fff_h__L5408__FAKE_VALUE_FUNC9_VARARG.md", + "artifacts/macros/test_include_fff_h__L5413__DECLARE_FAKE_VALUE_FUNC10_VARARG.md", + "artifacts/macros/test_include_fff_h__L5435__DEFINE_FAKE_VALUE_FUNC10_VARARG.md", + "artifacts/macros/test_include_fff_h__L5495__FAKE_VALUE_FUNC10_VARARG.md", + "artifacts/macros/test_include_fff_h__L5500__DECLARE_FAKE_VALUE_FUNC11_VARARG.md", + "artifacts/macros/test_include_fff_h__L5523__DEFINE_FAKE_VALUE_FUNC11_VARARG.md", + "artifacts/macros/test_include_fff_h__L552__FAKE_VOID_FUNC7.md", + "artifacts/macros/test_include_fff_h__L557__DECLARE_FAKE_VOID_FUNC8.md", + "artifacts/macros/test_include_fff_h__L5585__FAKE_VALUE_FUNC11_VARARG.md", + "artifacts/macros/test_include_fff_h__L5590__DECLARE_FAKE_VALUE_FUNC12_VARARG.md", + "artifacts/macros/test_include_fff_h__L55__RESET_FAKE.md", + "artifacts/macros/test_include_fff_h__L5614__DEFINE_FAKE_VALUE_FUNC12_VARARG.md", + "artifacts/macros/test_include_fff_h__L5678__FAKE_VALUE_FUNC12_VARARG.md", + "artifacts/macros/test_include_fff_h__L5683__DECLARE_FAKE_VALUE_FUNC13_VARARG.md", + "artifacts/macros/test_include_fff_h__L5708__DEFINE_FAKE_VALUE_FUNC13_VARARG.md", + "artifacts/macros/test_include_fff_h__L576__DEFINE_FAKE_VOID_FUNC8.md", + "artifacts/macros/test_include_fff_h__L5774__FAKE_VALUE_FUNC13_VARARG.md", + "artifacts/macros/test_include_fff_h__L5779__DECLARE_FAKE_VALUE_FUNC14_VARARG.md", + "artifacts/macros/test_include_fff_h__L5805__DEFINE_FAKE_VALUE_FUNC14_VARARG.md", + "artifacts/macros/test_include_fff_h__L5873__FAKE_VALUE_FUNC14_VARARG.md", + "artifacts/macros/test_include_fff_h__L5878__DECLARE_FAKE_VALUE_FUNC15_VARARG.md", + "artifacts/macros/test_include_fff_h__L5905__DEFINE_FAKE_VALUE_FUNC15_VARARG.md", + "artifacts/macros/test_include_fff_h__L5975__FAKE_VALUE_FUNC15_VARARG.md", + "artifacts/macros/test_include_fff_h__L5980__DECLARE_FAKE_VALUE_FUNC16_VARARG.md", + "artifacts/macros/test_include_fff_h__L6008__DEFINE_FAKE_VALUE_FUNC16_VARARG.md", + "artifacts/macros/test_include_fff_h__L6080__FAKE_VALUE_FUNC16_VARARG.md", + "artifacts/macros/test_include_fff_h__L6085__DECLARE_FAKE_VALUE_FUNC17_VARARG.md", + "artifacts/macros/test_include_fff_h__L60__DECLARE_ARG.md", + "artifacts/macros/test_include_fff_h__L6114__DEFINE_FAKE_VALUE_FUNC17_VARARG.md", + "artifacts/macros/test_include_fff_h__L616__FAKE_VOID_FUNC8.md", + "artifacts/macros/test_include_fff_h__L6188__FAKE_VALUE_FUNC17_VARARG.md", + "artifacts/macros/test_include_fff_h__L6193__DECLARE_FAKE_VALUE_FUNC18_VARARG.md", + "artifacts/macros/test_include_fff_h__L621__DECLARE_FAKE_VOID_FUNC9.md", + "artifacts/macros/test_include_fff_h__L6223__DEFINE_FAKE_VALUE_FUNC18_VARARG.md", + "artifacts/macros/test_include_fff_h__L6299__FAKE_VALUE_FUNC18_VARARG.md", + "artifacts/macros/test_include_fff_h__L6304__DECLARE_FAKE_VALUE_FUNC19_VARARG.md", + "artifacts/macros/test_include_fff_h__L6335__DEFINE_FAKE_VALUE_FUNC19_VARARG.md", + "artifacts/macros/test_include_fff_h__L6413__FAKE_VALUE_FUNC19_VARARG.md", + "artifacts/macros/test_include_fff_h__L6418__DECLARE_FAKE_VALUE_FUNC20_VARARG.md", + "artifacts/macros/test_include_fff_h__L641__DEFINE_FAKE_VOID_FUNC9.md", + "artifacts/macros/test_include_fff_h__L6450__DEFINE_FAKE_VALUE_FUNC20_VARARG.md", + "artifacts/macros/test_include_fff_h__L64__DECLARE_ALL_FUNC_COMMON.md", + "artifacts/macros/test_include_fff_h__L6530__FAKE_VALUE_FUNC20_VARARG.md", + "artifacts/macros/test_include_fff_h__L6535__EXPAND.md", + "artifacts/macros/test_include_fff_h__L6537__PP_NARG_MINUS2.md", + "artifacts/macros/test_include_fff_h__L6539__PP_NARG_MINUS2.md", + "artifacts/macros/test_include_fff_h__L6541__PP_ARG_MINUS2_N.md", + "artifacts/macros/test_include_fff_h__L6543__PP_RSEQ_N_MINUS2.md", + "artifacts/macros/test_include_fff_h__L6545__PP_NARG_MINUS1.md", + "artifacts/macros/test_include_fff_h__L6547__PP_NARG_MINUS1.md", + "artifacts/macros/test_include_fff_h__L6549__PP_ARG_MINUS1_N.md", + "artifacts/macros/test_include_fff_h__L6551__PP_RSEQ_N_MINUS1.md", + "artifacts/macros/test_include_fff_h__L6557__FAKE_VALUE_FUNC.md", + "artifacts/macros/test_include_fff_h__L6559__FUNC_VALUE.md", + "artifacts/macros/test_include_fff_h__L6561__FUNC_VALUE_N.md", + "artifacts/macros/test_include_fff_h__L6564__FAKE_VOID_FUNC.md", + "artifacts/macros/test_include_fff_h__L6566__FUNC_VOID.md", + "artifacts/macros/test_include_fff_h__L6568__FUNC_VOID_N.md", + "artifacts/macros/test_include_fff_h__L6571__FAKE_VALUE_FUNC_VARARG.md", + "artifacts/macros/test_include_fff_h__L6573__FUNC_VALUE_VARARG.md", + "artifacts/macros/test_include_fff_h__L6575__FUNC_VALUE_VARARG_N.md", + "artifacts/macros/test_include_fff_h__L6578__FAKE_VOID_FUNC_VARARG.md", + "artifacts/macros/test_include_fff_h__L6580__FUNC_VOID_VARARG.md", + "artifacts/macros/test_include_fff_h__L6582__FUNC_VOID_VARARG_N.md", + "artifacts/macros/test_include_fff_h__L6588__DECLARE_FAKE_VALUE_FUNC.md", + "artifacts/macros/test_include_fff_h__L6590__DECLARE_FUNC_VALUE.md", + "artifacts/macros/test_include_fff_h__L6592__DECLARE_FUNC_VALUE_N.md", + "artifacts/macros/test_include_fff_h__L6595__DECLARE_FAKE_VOID_FUNC.md", + "artifacts/macros/test_include_fff_h__L6597__DECLARE_FUNC_VOID.md", + "artifacts/macros/test_include_fff_h__L6599__DECLARE_FUNC_VOID_N.md", + "artifacts/macros/test_include_fff_h__L6602__DECLARE_FAKE_VALUE_FUNC_VARARG.md", + "artifacts/macros/test_include_fff_h__L6604__DECLARE_FUNC_VALUE_VARARG.md", + "artifacts/macros/test_include_fff_h__L6606__DECLARE_FUNC_VALUE_VARARG_N.md", + "artifacts/macros/test_include_fff_h__L6609__DECLARE_FAKE_VOID_FUNC_VARARG.md", + "artifacts/macros/test_include_fff_h__L6611__DECLARE_FUNC_VOID_VARARG.md", + "artifacts/macros/test_include_fff_h__L6613__DECLARE_FUNC_VOID_VARARG_N.md", + "artifacts/macros/test_include_fff_h__L6619__DEFINE_FAKE_VALUE_FUNC.md", + "artifacts/macros/test_include_fff_h__L6621__DEFINE_FUNC_VALUE.md", + "artifacts/macros/test_include_fff_h__L6623__DEFINE_FUNC_VALUE_N.md", + "artifacts/macros/test_include_fff_h__L6626__DEFINE_FAKE_VOID_FUNC.md", + "artifacts/macros/test_include_fff_h__L6628__DEFINE_FUNC_VOID.md", + "artifacts/macros/test_include_fff_h__L6630__DEFINE_FUNC_VOID_N.md", + "artifacts/macros/test_include_fff_h__L6633__DEFINE_FAKE_VALUE_FUNC_VARARG.md", + "artifacts/macros/test_include_fff_h__L6635__DEFINE_FUNC_VALUE_VARARG.md", + "artifacts/macros/test_include_fff_h__L6637__DEFINE_FUNC_VALUE_VARARG_N.md", + "artifacts/macros/test_include_fff_h__L6640__DEFINE_FAKE_VOID_FUNC_VARARG.md", + "artifacts/macros/test_include_fff_h__L6642__DEFINE_FUNC_VOID_VARARG.md", + "artifacts/macros/test_include_fff_h__L6644__DEFINE_FUNC_VOID_VARARG_N.md", + "artifacts/macros/test_include_fff_h__L683__FAKE_VOID_FUNC9.md", + "artifacts/macros/test_include_fff_h__L688__DECLARE_FAKE_VOID_FUNC10.md", + "artifacts/macros/test_include_fff_h__L69__DECLARE_RETURN_VALUE_HISTORY.md", + "artifacts/macros/test_include_fff_h__L709__DEFINE_FAKE_VOID_FUNC10.md", + "artifacts/macros/test_include_fff_h__L72__SAVE_ARG.md", + "artifacts/macros/test_include_fff_h__L753__FAKE_VOID_FUNC10.md", + "artifacts/macros/test_include_fff_h__L758__DECLARE_FAKE_VOID_FUNC11.md", + "artifacts/macros/test_include_fff_h__L75__ROOM_FOR_MORE_HISTORY.md", + "artifacts/macros/test_include_fff_h__L780__DEFINE_FAKE_VOID_FUNC11.md", + "artifacts/macros/test_include_fff_h__L78__SAVE_RET_HISTORY.md", + "artifacts/macros/test_include_fff_h__L826__FAKE_VOID_FUNC11.md", + "artifacts/macros/test_include_fff_h__L82__SAVE_ARG_HISTORY.md", + "artifacts/macros/test_include_fff_h__L831__DECLARE_FAKE_VOID_FUNC12.md", + "artifacts/macros/test_include_fff_h__L854__DEFINE_FAKE_VOID_FUNC12.md", + "artifacts/macros/test_include_fff_h__L85__HISTORY_DROPPED.md", + "artifacts/macros/test_include_fff_h__L88__DECLARE_VALUE_FUNCTION_VARIABLES.md", + "artifacts/macros/test_include_fff_h__L902__FAKE_VOID_FUNC12.md", + "artifacts/macros/test_include_fff_h__L907__DECLARE_FAKE_VOID_FUNC13.md", + "artifacts/macros/test_include_fff_h__L931__DEFINE_FAKE_VOID_FUNC13.md", + "artifacts/macros/test_include_fff_h__L94__DECLARE_CUSTOM_FAKE_SEQ_VARIABLES.md", + "artifacts/macros/test_include_fff_h__L981__FAKE_VOID_FUNC13.md", + "artifacts/macros/test_include_fff_h__L986__DECLARE_FAKE_VOID_FUNC14.md", + "artifacts/macros/test_include_fff_h__L98__INCREMENT_CALL_COUNT.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L26__FIELD.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L28__JINTEGER_MAX_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L33__JINTEGER_MAX_TO_FLOAT.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L34__JINTEGER_MAX_TO_FLOAT_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L38__JINTEGER_MAX_PLUS_4096.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L39__JINTEGER_MAX_PLUS_4096_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L41__JINTEGER_MAX_PLUS_4096_TO_FLOAT.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L42__JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L44__JINTEGER_MIN_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L47__JINTEGER_MIN_TO_FLOAT.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L48__JINTEGER_MIN_TO_FLOAT_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L50__JINTEGER_MIN_MINUS_4096.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L51__JINTEGER_MIN_MINUS_4096_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L53__JINTEGER_MIN_MINUS_4096_TO_FLOAT.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L54__JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L56__SMALL_FLOAT.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L57__SMALL_FLOAT_STR.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L59__UNIX_TIMESTAMP.md", + "artifacts/macros/test_src_JSON_number_handling_test_cpp__L60__UNIX_TIMESTAMP_STR.md", + "artifacts/macros/test_src__serialNoteTransaction_test_cpp__L80__SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE.md", + "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L27__BinaryImage.md", + "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L342__TransferDetails.md", + "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L356__TransferHandlerContext.md", + "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L372__BinaryTransfer.md", + "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L37__BinaryGenerator.md", + "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L6__NotecardInterface.md", + "artifacts/types/test_hitl_card_binary_test_test_binary_generators_cpp__L21__content_check_fn.md", + "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L12__BuildAllSameValue.md", + "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L29__AllZeros.md", + "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L33__AllSevens.md", + "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L37__BuildFromBinaryImage.md", + "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L49__SmallBinaryImage.md", + "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L53__BuildRandom.md", + "artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L63__BinaryTestArgs.md", + "artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L77__Handler.md", + "artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L13__test_suite_hook_fn.md", + "artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L14__test_suite_filter_fn.md", + "artifacts/types/test_hitl_scripts_md5srv_py__L25__HTTPException.md", + "artifacts/types/test_hitl_scripts_md5srv_py__L33__WebRequestHandler.md", + "artifacts/types/test_include_fff_h__L1069__typedef_1069.md", + "artifacts/types/test_include_fff_h__L1154__typedef_1154.md", + "artifacts/types/test_include_fff_h__L1242__typedef_1242.md", + "artifacts/types/test_include_fff_h__L130__fff_function_t.md", + "artifacts/types/test_include_fff_h__L131__typedef_131.md", + "artifacts/types/test_include_fff_h__L1333__typedef_1333.md", + "artifacts/types/test_include_fff_h__L1427__typedef_1427.md", + "artifacts/types/test_include_fff_h__L1524__typedef_1524.md", + "artifacts/types/test_include_fff_h__L154__typedef_154.md", + "artifacts/types/test_include_fff_h__L1624__typedef_1624.md", + "artifacts/types/test_include_fff_h__L1675__typedef_1675.md", + "artifacts/types/test_include_fff_h__L1729__typedef_1729.md", + "artifacts/types/test_include_fff_h__L1786__typedef_1786.md", + "artifacts/types/test_include_fff_h__L1846__typedef_1846.md", + "artifacts/types/test_include_fff_h__L1909__typedef_1909.md", + "artifacts/types/test_include_fff_h__L194__typedef_194.md", + "artifacts/types/test_include_fff_h__L1975__typedef_1975.md", + "artifacts/types/test_include_fff_h__L2044__typedef_2044.md", + "artifacts/types/test_include_fff_h__L2116__typedef_2116.md", + "artifacts/types/test_include_fff_h__L2191__typedef_2191.md", + "artifacts/types/test_include_fff_h__L2269__typedef_2269.md", + "artifacts/types/test_include_fff_h__L2350__typedef_2350.md", + "artifacts/types/test_include_fff_h__L237__typedef_237.md", + "artifacts/types/test_include_fff_h__L2434__typedef_2434.md", + "artifacts/types/test_include_fff_h__L2521__typedef_2521.md", + "artifacts/types/test_include_fff_h__L2611__typedef_2611.md", + "artifacts/types/test_include_fff_h__L2704__typedef_2704.md", + "artifacts/types/test_include_fff_h__L2800__typedef_2800.md", + "artifacts/types/test_include_fff_h__L283__typedef_283.md", + "artifacts/types/test_include_fff_h__L2899__typedef_2899.md", + "artifacts/types/test_include_fff_h__L3001__typedef_3001.md", + "artifacts/types/test_include_fff_h__L3106__typedef_3106.md", + "artifacts/types/test_include_fff_h__L3214__typedef_3214.md", + "artifacts/types/test_include_fff_h__L3325__typedef_3325.md", + "artifacts/types/test_include_fff_h__L332__typedef_332.md", + "artifacts/types/test_include_fff_h__L3377__typedef_3377.md", + "artifacts/types/test_include_fff_h__L3432__typedef_3432.md", + "artifacts/types/test_include_fff_h__L3490__typedef_3490.md", + "artifacts/types/test_include_fff_h__L3551__typedef_3551.md", + "artifacts/types/test_include_fff_h__L3615__typedef_3615.md", + "artifacts/types/test_include_fff_h__L3682__typedef_3682.md", + "artifacts/types/test_include_fff_h__L3752__typedef_3752.md", + "artifacts/types/test_include_fff_h__L3825__typedef_3825.md", + "artifacts/types/test_include_fff_h__L384__typedef_384.md", + "artifacts/types/test_include_fff_h__L3901__typedef_3901.md", + "artifacts/types/test_include_fff_h__L3980__typedef_3980.md", + "artifacts/types/test_include_fff_h__L4062__typedef_4062.md", + "artifacts/types/test_include_fff_h__L4147__typedef_4147.md", + "artifacts/types/test_include_fff_h__L4235__typedef_4235.md", + "artifacts/types/test_include_fff_h__L4326__typedef_4326.md", + "artifacts/types/test_include_fff_h__L439__typedef_439.md", + "artifacts/types/test_include_fff_h__L4420__typedef_4420.md", + "artifacts/types/test_include_fff_h__L4517__typedef_4517.md", + "artifacts/types/test_include_fff_h__L4617__typedef_4617.md", + "artifacts/types/test_include_fff_h__L4720__typedef_4720.md", + "artifacts/types/test_include_fff_h__L4826__typedef_4826.md", + "artifacts/types/test_include_fff_h__L4889__typedef_4889.md", + "artifacts/types/test_include_fff_h__L4955__typedef_4955.md", + "artifacts/types/test_include_fff_h__L497__typedef_497.md", + "artifacts/types/test_include_fff_h__L5024__typedef_5024.md", + "artifacts/types/test_include_fff_h__L5096__typedef_5096.md", + "artifacts/types/test_include_fff_h__L5171__typedef_5171.md", + "artifacts/types/test_include_fff_h__L5249__typedef_5249.md", + "artifacts/types/test_include_fff_h__L5330__typedef_5330.md", + "artifacts/types/test_include_fff_h__L5414__typedef_5414.md", + "artifacts/types/test_include_fff_h__L5501__typedef_5501.md", + "artifacts/types/test_include_fff_h__L558__typedef_558.md", + "artifacts/types/test_include_fff_h__L5591__typedef_5591.md", + "artifacts/types/test_include_fff_h__L5684__typedef_5684.md", + "artifacts/types/test_include_fff_h__L5780__typedef_5780.md", + "artifacts/types/test_include_fff_h__L5879__typedef_5879.md", + "artifacts/types/test_include_fff_h__L5981__typedef_5981.md", + "artifacts/types/test_include_fff_h__L6086__typedef_6086.md", + "artifacts/types/test_include_fff_h__L6194__typedef_6194.md", + "artifacts/types/test_include_fff_h__L622__typedef_622.md", + "artifacts/types/test_include_fff_h__L6305__typedef_6305.md", + "artifacts/types/test_include_fff_h__L6419__typedef_6419.md", + "artifacts/types/test_include_fff_h__L689__typedef_689.md", + "artifacts/types/test_include_fff_h__L759__typedef_759.md", + "artifacts/types/test_include_fff_h__L832__typedef_832.md", + "artifacts/types/test_include_fff_h__L908__typedef_908.md", + "artifacts/types/test_include_fff_h__L987__typedef_987.md", + "artifacts/types/test_src_JGetType_test_cpp__L63__AddStringFn.md", + "artifacts/types/test_src_NoteDebug_test_cpp__L21__typedef_21.md", + "artifacts/types/test_src_NotePing_test_cpp__L40__class.md", + "artifacts/types/test_src__noteChunkedReceive_test_cpp__L18__nReceiveFn.md", + "artifacts/types/test_src__noteChunkedTransmit_test_cpp__L18__nTransmitFn.md", + "artifacts/types/test_src__noteHardReset_test_cpp__L18__nNoteResetFn.md", + "artifacts/types/test_src__noteJSONTransaction_test_cpp__L18__nTransactionFn.md" + ], + "records": [ + { + "artifact": "artifacts/macros/n_atof_c__L29__const.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_atof.c:29:const", + "sha256": "765b37c7d9803b851f1efa35da3b62587a6d39088c12269677278d6719c513f9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_atof_c__L36__TRUE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_atof.c:36:TRUE", + "sha256": "a5d96c73cb6257d65a5e762ed05aa3e11f32577fcae128ac3eeb6e1e923b5a03", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_atof_c__L37__FALSE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_atof.c:37:FALSE", + "sha256": "5fe64a5a8746e64deb741c0615d8db4bc1af28829ba5dcdd853071583927da67", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_atof_c__L40__NULL.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_atof.c:40:NULL", + "sha256": "776c4f36f5200b82a6639a2815a70b8352472f6b7bbe22c88832ea46c48fc1a5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_atof_c__L43__MAX_EXPONENT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_atof.c:43:MAX_EXPONENT", + "sha256": "c678784221776cb5f9f0547694ffb8cb99e147e42818ccbb9cb609b8e5314fb4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_atof.c:71:JAtoN", + "sha256": "659e8e9ba0c8a2cde4abc7fb43ae392eb1badae39d87395f1e79b55e590b994c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_b64_c__L106__JB64DecodeLen.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_b64.c:106:JB64DecodeLen", + "sha256": "fe36f2460e2ad96c72c27affaf293631992aa28c8faba13b925fe3b8f00c1ff4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_b64_c__L121__JB64Decode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_b64.c:121:JB64Decode", + "sha256": "d9e35a0d4776fca0f99611ad15234b2cbbe46663436a3ecdb6a053e4f41f940c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_b64_c__L169__JB64EncodeLen.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_b64.c:169:JB64EncodeLen", + "sha256": "9a3fbf780f0b2115e0d421b461a4fd79a2941d3cfa62bba7e2173631528ece03", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_b64_c__L174__JB64Encode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_b64.c:174:JB64Encode", + "sha256": "7832a4213015bb9520e353bf1aa1156cb0dd4b76b2fb46827183db3a4edc02cb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L80__PRINT_TAB_CHARS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.c:80:PRINT_TAB_CHARS", + "sha256": "b7dfbb5d6efeb736544ece5035cdc69d8f975d0cb96fea3395e7534fee6c6e90", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_c__L82__typedef_82.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_cjson.c:82:typedef_82", + "sha256": "1b08a958a960d0694cb64ccc87496f7a56aba50b05f6640f4a94b11de95e6a8c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_c__L232__lconv.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "struct:n_cjson.c:232:lconv", + "sha256": "a297f9a720ab630b32f524ffcfb324b036a2f21963c2a26924db568a29bedd49", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_c__L239__typedef_239.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_cjson.c:239:typedef_239", + "sha256": "dd599a27487cd26932d601f9c383779cf6456871c84d664a9f47f769ebe70725", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L247__can_read.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.c:247:can_read", + "sha256": "5830ff7b65925e2fb07e099fa2dbc785922a36efd32b28ceafdafb4f6af01476", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.c:249:can_access_at_index", + "sha256": "445bf59f418302d6bcbdf9f02cc872e85ac2e11727c868e6af68d8f0bc0d0bea", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.c:250:cannot_access_at_index", + "sha256": "cc7aa052a93bb21517e3a65f51d29aa5ff95dfeb49371fa4050094906bb9f2e1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.c:252:buffer_at_offset", + "sha256": "b3dfb2cad9de21b682efc224df1070696728b73643247a7346bb29e57d3b073b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_cjson.c:340:typedef_340", + "sha256": "055f1fc01bc2457f5c0869b004dc74abc151120b070e497cca128abb34ba3093", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L981__cjson_min.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.c:981:cjson_min", + "sha256": "83227771232a8ccb7600b838a79d53ead4334a35eba178d92f756d6966342a78", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:91:JGetErrorPtr", + "sha256": "7f15a929800e58ac5754baf642732ac1be4fff8c5df853fab702cc12cfef3789", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L96__JGetStringValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:96:JGetStringValue", + "sha256": "09a5b856fdc4d454617da9b5a2588fd8961ffe5d705494ca5222a09d8f97c0cf", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L110__JVersion.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:110:JVersion", + "sha256": "fadadb6be89000fe5e4e581dbc6f61a490626ca0ace69c98aa8359d0ce740914", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L115__j_tolower.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:115:_j_tolower", + "sha256": "5027c62fda1e83e2c3b4034781ae6569a867aaffcf6b6c647542e57327b6bbe3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:127:_case_insensitive_strcmp", + "sha256": "36862ca00d23d5af5c50429fd694d802e4ee5f1d26becf90d95d1b6f6ebaf0ef", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:146:_j_strdup", + "sha256": "de1d19f8ef365191b5afc9667caffb4ea0b1651401c5e583ea25e58a87550835", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L175__JMalloc.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:175:JMalloc", + "sha256": "8a556b03734a126d71f8d2fb6acec133179dfa41d2b2bbe7659466a5dc9c931c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L188__JFree.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:188:JFree", + "sha256": "ba0264195dbfa3ce5c49dfb8c2a60fa4900cc33b8bb0200ef4e7fbb9899f5812", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:194:_jNew_Item", + "sha256": "708c3192b7d7d8e93cf2f591bb0e74fd84e7d1fb191878c4edd2bac0491d8ae3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:209:JDelete", + "sha256": "d6e4a7c5a884aac785634a1a5377e7ab1e2ec0486417af499f88d9b16498f489", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L229__get_decimal_point.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:229:_get_decimal_point", + "sha256": "c44fd7b30ad0d11d4a939f53d81fbf2eabc9510bc1a028816bed3036be2a34f0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:255:_parse_number", + "sha256": "f1f16d98562e0c20dd7cdbdf317e4c9be41a6d83836aeea9500ce6610fd649d2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:322:JSetNumberHelper", + "sha256": "30d19279a93e27736ffe0f7f3f764f80c622418c53608f3735d58291532a844a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:351:_ensure", + "sha256": "000632945d1827b785fd6e616ca613978344773dd86fadbc150c197bef986b11", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L400__update_offset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:400:_update_offset", + "sha256": "9c4eacb7093d40f751a6336045b5437b700403052a7fea2cba421bab917aef6a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:412:_print_number", + "sha256": "69b1c202d0c6cbf3d1e5b58fb09ef181fa561459ccf50c30d8a9f9870f7e3a04", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L476__parse_hex4.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:476:_parse_hex4", + "sha256": "dcd2bc926767fb3a57852a44a962665a506e78fb7f99d5d6a881f3012baeace0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:504:_utf16_literal_to_utf8", + "sha256": "f4bae09a1110e9fb808ec9f6a94674460a3ee5d8366dfa885f7666a77c4fe7e1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:604:_parse_string", + "sha256": "6160f733b14654940f1dd41a4a312d202093439dc1c1efd8bf184378e16ec7e7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L728__n_htoa16.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:728:_n_htoa16", + "sha256": "f8be0efad12505b448982292d5497eff79a4ca145320d2baa99f7ab0a9a23956", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L744__print_string_ptr.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:744:_print_string_ptr", + "sha256": "2d292ed4264d10d40aa53d6fdc55b1883fb2d34c2b3db8575af93dca25c5b1ef", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L856__print_string.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:856:_print_string", + "sha256": "828ef7f1cd25fa7be9f651a783c3bf609e13b4aaf340a0b0786ab1b72788ee44", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:870:_buffer_skip_whitespace", + "sha256": "5d2428ad3360ffa5d6e490960bd3c9dc1f9310257f97fd5b4b62ee1ea2f63555", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:888:_skip_utf8_bom", + "sha256": "7bfeca827e17d3b5648a28d2c6f5231ddbf3fc6b9e83ab1cbb6444580590237c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:902:JParseWithOpts", + "sha256": "58a574d7a4c8974dd2817e041ea50dee0f0b558908dcd54023cab1f0e610f3fe", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:976:JParse", + "sha256": "b96d89152076af8267979a449132e210b950753a94428901b9920d9aed3caab9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:983:_print", + "sha256": "4d1e6916a70fc4f381aad0077d514badf2969c50b01307dbf7cc456bc4f82eb9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1032__JPrint.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1032:JPrint", + "sha256": "608082fae7b8be186f980201828b14a7e324b0f0b50d98dc2a60ca566eb8b32f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1051:JPrintUnformatted", + "sha256": "e0fd0d7d3f5efe0901dacb318c0849b24d0f7831729105ef1825588aafd068c7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1059:JPrintUnformattedOmitEmpty", + "sha256": "4ad4f61ecbd15ccedcb2e5c55d1a5a9a7da48fe46f7cd1557ca2a5bb862c3082", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1067:JPrintBuffered", + "sha256": "f6c19ad337af82bff5cb2e21bc99b11fe8202abda55c24e9928b895f1f295add", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1097__printPreallocated.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1097:_printPreallocated", + "sha256": "1354f2b1883c33a5017e7693f1d9be965593b5b59307ae77b55541b5df6cbf3b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1118:JPrintPreallocatedOmitEmpty", + "sha256": "10a450e62b16c4715c614906d69463cdff12fd6bee08174bd33306ba4de87de0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1123:JPrintPreallocated", + "sha256": "65ffe9b5faf3aa5d95e89d447938fc4ce0964d158c1cc69b77cbbaaab4dd15e2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1129:_parse_value", + "sha256": "a42685ba50bb7338bcdd9120e80cc8098551abdae9575389c53f338761a3fbe1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1179:_print_value", + "sha256": "25dbefb7a9937c6ae8f0529224989ed235acf67fc19e3b52befb7d6f86a38693", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1245:_parse_array", + "sha256": "aab2d5e6d84b512c7347b0ca051a166a156b453d7f836a0b116e1ce183bbb895", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1341__print_array.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1341:_print_array", + "sha256": "58727c93ecd8f53eeee2ae7eb32dc65910010904f7d98f73be166045f0309106", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1395:_parse_object", + "sha256": "071a78c992e59f621320e63c6a292ba3ac2caec5f3f46311e9660107b24e9c19", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1507:_last_non_omitted_object", + "sha256": "fa523afcb9ac327db0741bf6d32583738c487277a3b4db9ecfe1db9790bb90f4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1523:_print_object", + "sha256": "8eabd42ea01e1253a10e8481a4facc73c43498a8d10fb7f96e8f5f61f721eb5f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1660__JGetArraySize.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1660:JGetArraySize", + "sha256": "a8f0ac4ff6d216d9c1833e01209b7fed9ad382df57c483464f6a95c7f833c803", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1681__get_array_item.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1681:_get_array_item", + "sha256": "1df3edcb3a40e1db0d6b959fb355d933a7ed6142c01863a8d711d64f082e2db3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1698:JGetArrayItem", + "sha256": "44f0293d70cb4b93d869676d3df72b39a1c5d25af7ab62dd28d9483e3ba759b5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1710:_get_object_item", + "sha256": "61e606a687865f04f1770005e1033750ddd2ec07812ac53a054594fd6fb17bae", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1732:JGetObjectItem", + "sha256": "ed5917edee38e80b30a0b9c793a1518711596457d65286ff4a9716d6161e9ab3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1740:JGetObjectItemCaseSensitive", + "sha256": "52fb46a1a3b35a00793f52347c8072f93089d36f42ca1e4e3550fd64d26ecfb2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1748:JHasObjectItem", + "sha256": "4b22d78ff1096f8c9cda40c7ce2d2d3013274ad5df5ca16cb156f1911da6ba31", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1757__suffix_object.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1757:_suffix_object", + "sha256": "396e5a1e9d39522bd2ebfbb38747eb454fbe285ba31beac7f3cbefb76a0266f6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1764__create_reference.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1764:_create_reference", + "sha256": "7c9aa4a9be619bdad088619dc52633d9d946838fadd72e15845a74510a95759f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1783:_add_item_to_array", + "sha256": "5bff9e0fc86a1493467b1e97cde85b02ab0a389a13d6eb1291d3765278a68933", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1808:JAddItemToArray", + "sha256": "152491cef89311207519c3a6fd56b7c16a5978756e3be462b8f07be61fa33be6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1826:_cast_away_const", + "sha256": "587d9e612fb771192c1ee57a163da38dd81d22e79b6c6cb696ef88265fac7b69", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1835:_add_item_to_object", + "sha256": "84c4a423c765e0a25d77a88b750f69887270cb224eff68992e93dca7b34f3c82", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1866:JAddItemToObject", + "sha256": "2add1475f8f4e7d9652282517e7d0e51b99428d15c9d92667e7b5540dfeae179", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1878:JAddItemToObjectCS", + "sha256": "e1f8bfffd10e495e15f8d46334907133b3cf50a9b1955828b6938f291212897c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1889:JAddItemReferenceToArray", + "sha256": "0cd7ca5c8b79df1c890f352f7b7c9f0a27af21f61f4913e80fdd5ea5ae647b9e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1900:JAddItemReferenceToObject", + "sha256": "6f3e22e2600873cf90ef41869cc99d16087ba539e7506485cd4ec1b2909f2e04", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1911:JAddTrueToObject", + "sha256": "640e2c31b41613da79d16e9e854425e853c8a33f6a8b372fae5cab6ebd05ca4d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1926:JAddFalseToObject", + "sha256": "7da11cce6fb8671fabc9e6f43106d1fc88d26daf05c36182bb630ee5ea35ff7a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1950:JAddBoolToObject", + "sha256": "264f17864df3683d6c2440bf7d573eb680ed0085cb645704a30f7db49b0cbbe0", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1974:JAddNumberToObject", + "sha256": "b74f8cf6959d0f6ec5c413c0891fad7d48be47af71f1944a06394344a6466e6d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:1989:JAddIntToObject", + "sha256": "6542124f8abbf41e5675794ac33b8546f356f8ed67cd4c26f7fcbf3ec3d87bfa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2013:JAddStringToObject", + "sha256": "1d9bef8af414a2a0a2488d5857fd0a31b5939f9c4becc1293f9687f54a96ab9a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2028:JAddRawToObject", + "sha256": "2f98484755f4711faeb46430e82dccefc7cc1e3e7d519aa98ec8db4463533286", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2051:JAddObjectToObject", + "sha256": "719a0fc7236d17eec37d2c836fd41459260ae06e54c2c5a2f3151d4996beef4f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2074:JAddArrayToObject", + "sha256": "c0071c3e20709f633192da1c4c762b558aa774c457bfb18cca5897dbf93ee50c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2089:JDetachItemViaPointer", + "sha256": "4101de451b022f1acfcf8292d1e4926ad8698e738fc24997f8a2fe2dcc88c90a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2115:JDetachItemFromArray", + "sha256": "adb763c2e08d9be37b9eb9cc3a7bbf66c20997f6ff52e5ba4eb6d0f9b3dae56a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2127:JDeleteItemFromArray", + "sha256": "b4efd89c756b68dbfc7eb2bb04ec3dcf8f9a45ad4b84b060c414e26021523866", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2135:JDetachItemFromObject", + "sha256": "16fe2663a8abc91fc19395e53bb500b024bf2fd310bc6755d6153c9bd9f90a69", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive", + "sha256": "5d2ff31df59b95405c403596326186113fc21e39e018f0868d7d7b00d276bb05", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2157:JDeleteItemFromObject", + "sha256": "31d2b59b390734b6e02e48747311a7b7580dc42c2b2ee698013f817aaa6dc82d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2165:JDeleteItemFromObjectCaseSensitive", + "sha256": "b3a30a1ffbd93d23c12a539f0691afc9390bd48d9f4fd91c475d5b515fb5c1b3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2174:JInsertItemInArray", + "sha256": "cd1f33a4b45d0ac2054cf9e209b201f9534b008a7d32c43a4b8bc9e55a5fa55f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2206:JReplaceItemViaPointer", + "sha256": "7da9d6d2e57d07b7b9d4618ec929088d19d557a8958873d54cb4e514d2eb25d5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2236:JReplaceItemInArray", + "sha256": "53839913474c06b1d9c5381fcfe5d138c40cf8504027361adb3e2d82e431d94e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2253:_replace_item_in_object", + "sha256": "248c77c9eff11bf0a7d62e104dff8e19452f3b3452dcc954a28fb542e06c628a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2281:JReplaceItemInObject", + "sha256": "34449e9b9b3949981aa95d23d005bb5082ffc60ed0ae6de25eb3b36a19ac337e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2292:JReplaceItemInObjectCaseSensitive", + "sha256": "fe1b772a3a733ab035bcd75793156bb6e4b6be98d00c53280c2c7bc792a44f0c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2303__JCreateTrue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2303:JCreateTrue", + "sha256": "1e0dd982c98f77b18a1afe9f93e0aac08c9aa9080870a02626901c2e5bb08f06", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2312__JCreateFalse.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2312:JCreateFalse", + "sha256": "54f89f321c6452692a96518464d649a8d77cbb964eb01d4308ece6b31e0c2518", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2321:JCreateBool", + "sha256": "99dc85be8383a7bf4e2cfa7e7c1aa314cc0e636aec576070037d80d815c00058", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2330:JCreateNumber", + "sha256": "ebc575119094d571d0bbf68bb2ec6fd4563154853b5b03ecbd352a6a9d864240", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2349__JCreateInteger.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2349:JCreateInteger", + "sha256": "79d2fab302ab6e43f9631b3f497e407b9d5dcf3c55618f59142c05a2036d8f54", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2360:JCreateString", + "sha256": "43318c24700fb796bc2d3eb0a2ea9b9c84eccd69bec1f0df97563e2cba4025a2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2374:JCreateStringValue", + "sha256": "fc07da68de07999aa851a93bf30a722a880bb6e3c6a70ffff4945db45028ea78", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2384:JCreateStringReference", + "sha256": "6a0e84948991063faef0f394d4c1c9a48245b7ed1a7eccaa6a2e12a87f29049a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2394:JCreateObjectReference", + "sha256": "7c456549ca07db7fd90124022e49e4189692b0d76cfb9b794223a1b283f2c445", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2407:JCreateArrayReference", + "sha256": "183062ef2af50f9fa7c43054dceca397d94eb1986aef5f189a6f01ba7e9c4a81", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2420:JCreateRaw", + "sha256": "0db6050b94ad2646cf42648d83589b140b40d27822772622509bb900d24f247f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2434:JCreateArray", + "sha256": "5dd5e546dba35ccb3124e028e0ab7f0518193ba609e733b60545f1aca8b1d453", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2450:JCreateObject", + "sha256": "ffacc7a07c5f59e6efef83398d1481a8fdfce2a1966fd42533da206ab666788d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2460:JCreateIntArray", + "sha256": "39eb9c1868f76b56b7ae28d02fcb260d44283e6e6a2c64c445b9ebf6d0bba4d0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2489:JCreateNumberArray", + "sha256": "ba84aec17e3bfe71b66d96d10c2fd6e7ed0b9675a5c706d68cfa3d5c8b8c2654", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2519:JCreateStringArray", + "sha256": "a619d37aa7f7283d5e08fb5c966350701cd51517a4e0531a6fee0b67d1dbfdb7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2550:JDuplicate", + "sha256": "8e12ed2c15aeff7c260f6a0fc6076f6b8699cdec038545645cd5945c6a02e381", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2616__JMinify.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2616:JMinify", + "sha256": "f1f3fe3db5c5414159ae5423325a7b9d417ea9f5bd4985444cad791944f86212", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2665__JIsInvalid.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2665:JIsInvalid", + "sha256": "17ab860764b14c915e166fa8166f6946f2d9463b5b98dde10375015de8416611", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2673__JIsFalse.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2673:JIsFalse", + "sha256": "a36f3dc7a819fb34e68038be5025a201ab63d1e99cfa4bd3d4ecdceea06a64fd", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2681__JIsTrue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2681:JIsTrue", + "sha256": "d255a2a1c643274b370bb1af66999cb3f4965375eae61317830150e9424a58fb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2690__JIsBool.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2690:JIsBool", + "sha256": "dfb424ae192e398a084a2bdaa381bd5be336cbdb57f375c8daa1d14757f4188c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2697__JIsNull.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2697:JIsNull", + "sha256": "56a6092ba31c49cad5f43acd102ed44c12cf4d35553278ca3465d13b8731d300", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2705__JIsNumber.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2705:JIsNumber", + "sha256": "43d0171ccd1b799eee9ef6c8bfced856eddec948ec442286807ef79583eb0cae", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2713:JIsString", + "sha256": "3a08f031026df81f6296312f3d50e8b0e9dff0fe6e2e29b69bb485e55fb98bd0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2721__JIsArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2721:JIsArray", + "sha256": "ae7159622a69681399d2badc79c8160dd7a7c32c10db76b417ce7823b626b23b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2729__JIsObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2729:JIsObject", + "sha256": "07b8d973a9bf03727cf6a0fd8c985b5371b46ad23febc2c4e75ad3a06b116ab4", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2737__JIsRaw.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2737:JIsRaw", + "sha256": "24b944881fc1753bf5be03ef1be897e1e6c9e65d3a96dd75c0c294c91bc294af", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson.c:2745:JCompare", + "sha256": "5daf7e58e06045e26ec544e258088abd28cb6941d640ca2c424f6b4feab9a8f5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:52:N_CJSON_VERSION_MAJOR", + "sha256": "8bf18f143d8a22cf12a227005bdb323b82b834034b920e8dd136e60affc6d57a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L53__N_CJSON_VERSION_MINOR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:53:N_CJSON_VERSION_MINOR", + "sha256": "9dbf17e4dbe3f3d759f2004e8925c374e568e7e07547d013c485068c795d60a1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L54__N_CJSON_VERSION_PATCH.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:54:N_CJSON_VERSION_PATCH", + "sha256": "c8f15771e43ce444ea4291910a080e575a08fb156a6f3dd9436f3507559f9e47", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L59__JInvalid.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:59:JInvalid", + "sha256": "0231e3b6b6c63819e7fe32bbdf9f1d8c00cb0441831f09cb2f378fb15312fa35", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:60:JFalse", + "sha256": "a3c247f75ef199fa215ba98b9e22b55ee1c1644a90c2a1f3154bee2ee41ac6c4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:61:JTrue", + "sha256": "664dadd73de3eedab086a11a506ec9515f068e4ca1fb14e21d7a8be2e22ffd94", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:62:JNULL", + "sha256": "983117d6ce2b64347fd964c6698202cde0a96f1cc72f03c19c85940de605fc8d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:63:JNumber", + "sha256": "5b2ab0e59ac53adc5ef1115495ba1d1921cd99da04fde0baafa862dda10472c0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:64:JString", + "sha256": "b7ecd0860f416700f1b40a10e32a2094f9b74aa22e69c071688b9a131a602571", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:65:JArray", + "sha256": "8bde0bb3a08fbe642455b9b44abe6162a9f3596cb175a37c0f160b83789842f1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:66:JObject", + "sha256": "1d8ed24c83b0713495e8bacba40208d95e0d0f117dc643a3eceeecbd28025bb0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:67:JRaw", + "sha256": "396e48d60c1e5e02d8766eca0626724dacf537f80db740ec061d313b48c50ec1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:69:JIsReference", + "sha256": "fc828a06dd4d06a4e0e211363b2456e13ffb6c9301c5937cde0b470327e4977e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L70__JStringIsConst.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:70:JStringIsConst", + "sha256": "0dc4ec665e7b7e419b64922c712d7874fb39a640633f39c8eb6865d80b2ce386", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_cjson.h:78:typedef_78", + "sha256": "61d2c8235c3bbd34342b940dcca96af80bf7db5f1c16f9b1b8ce803918f60803", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_h__L80__J.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "struct:n_cjson.h:80:J", + "sha256": "d337bd83d4fbf90c14d6dc05f25e5b2334e62ff4682be9c5a5725f5f1361d7d0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_h__L81__J.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "struct:n_cjson.h:81:J", + "sha256": "0ac40b8c4c342d5b47727d2938a01eeabf7447943bd588249901cb5be03a7360", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_h__L83__J.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "struct:n_cjson.h:83:J", + "sha256": "86e2299945d23b3e546bd2eef0221ade5f2721a16e5e60ff7e2375be0fa5b184", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_h__L98__typedef_98.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_cjson.h:98:typedef_98", + "sha256": "12bf9fc74c95fae2a22e66fade1512fce50d4a3458c640e231756c6c7864f21c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_cjson_h__L103__Jbool.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_cjson.h:103:Jbool", + "sha256": "5eb0be43811d9bf17bc7aad28ffcfaab3ec1afac8cafd697144ccfb83e02e04c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L134__N_CJSON_PUBLIC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:134:N_CJSON_PUBLIC", + "sha256": "d97f761d100a20187ba5ce3629cbca3ccc4b025dadbf623f870d4e0ac63a17a8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L136__N_CJSON_PUBLIC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:136:N_CJSON_PUBLIC", + "sha256": "411f73f7ee77fee11cb35bae81b4874b5d19bd5350eff8739f28d848ad5e7a48", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L138__N_CJSON_PUBLIC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:138:N_CJSON_PUBLIC", + "sha256": "bbb4d92d5abe59f258d9560e1cdf218d87f0fb4f0f962a0983e02213ff4ce60a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L142__N_CJSON_PUBLIC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:142:N_CJSON_PUBLIC", + "sha256": "ed29ac2a7fe68c3c84a4a71ec0922173311b9c7f2c613e6d825bd45ff17cecf7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L144__N_CJSON_PUBLIC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:144:N_CJSON_PUBLIC", + "sha256": "79c90ebf717a5d710d1b9ba1a93b33ca35f023b20fdf8bcf943ecaf39c387b46", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:176:N_CJSON_NESTING_LIMIT", + "sha256": "8f2ee5306ef1e41781c212c291a6fb12bc403cd13938d61e3bc37842219fc66a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L209__JGetObjectItems.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:209:JGetObjectItems", + "sha256": "2a25282640f739d11d8a2361d28606c19186342578ab33b40814e13fb35d95c8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:310:JConvertToJSONString", + "sha256": "6a768cc4722e58038eab47f16e51d4bc7d7bfa473636bc36588a6e65881244b5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:311:JConvertFromJSONString", + "sha256": "08a3f66727830c5c0f6a48002c02a91074a9f0c3f1cfae93b43cbfcdde738d18", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L314__JSetIntValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:314:JSetIntValue", + "sha256": "fe3109eaf905f5857b4ad004330fc63b27e5621e2e671129445b502ee20be51a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L317__JSetNumberValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:317:JSetNumberValue", + "sha256": "0f546fa4fa21bb327ffbef5a4cd7482b697e744bd9c437d1bc578a90acb2a653", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L320__JArrayForEach.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:320:JArrayForEach", + "sha256": "4db3a41d31276397fb127020c0670ba178af5d2bad36dd06106823b6b018d88c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L322__JObjectForEach.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cjson.h:322:JObjectForEach", + "sha256": "1a74aad68ac26bd6150e48b959e24c8871f9822dd7f32e2ac9076c5e6ca361ba", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:19:JIsPresent", + "sha256": "343fc8a0f3675cb9e750bd1b9f264f907e8d51b5278e08cea243d09d635a2930", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:27:JGetString", + "sha256": "fce55a7a0b415eaec96de7f581c7a51baadda5d2a82be94f235ab77f8e7671b1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:45:JGetArray", + "sha256": "3a7db5b2845d30c8cdca8ffd0eac28f5a504351d425ad36b2458571fbc354900", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:60:JGetObject", + "sha256": "1826267732d955cb7f687795c8a6c6e116d9db773d0dc1e693ead5953d16f8fd", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L75__JBoolValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:75:JBoolValue", + "sha256": "8a93c632803f40a67c9f8835823c0f4b11b573a39479852f96f239d80c7ba757", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L83__JStringValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:83:JStringValue", + "sha256": "7b1d08d74650149d28771bec95893a97816fd5269c9cd6b4e6616acef0a58397", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:91:JNumberValue", + "sha256": "2765eb00ff90201c975a42b856683c2b6d0f666a4e719daa335931a165581bbf", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:99:JGetNumber", + "sha256": "6c83865b6ab1c79becffc0e32052f106bda6426a8d181be26c7706a0e0d507df", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:114:JIntValue", + "sha256": "53dfd914f06416d77afba2edf3c0a560d0d5e9e0ebeb94f0a8a404eff2229530", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:122:JGetInt", + "sha256": "87ca4b505b9a7c974b4a667455fb0a74587c497d1584787df00422fc70da66fd", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:137:JGetBool", + "sha256": "cc874e785910dc14fa8c90b281233bb2f27a76ec09e5d9d1445002f77a585418", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:152:JIsNullString", + "sha256": "bf44a562fd2604370773f3ac19369bbd457cc4d81fb42483a221a13a07233dbe", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:173:JIsExactString", + "sha256": "3d51b6d349440a25d895d4a3d4875755b0681de7f098d960c48ece9c81563eeb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:194:JContainsString", + "sha256": "69c18d984c9dad1f0209df8f54ab3223d4cd33e62ad2f475171e539acf6c4434", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "sha256": "2fabe42c1ca942ac6a6ad60a6be4101c2f89e085e1d82bcb2a586cd0d9c8606d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:235:JGetBinaryFromObject", + "sha256": "b07e4dd372145439be02cc1ee8492905fb3a7f35476bde9c4a9e2e019928f952", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L276__JGetItemName.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:276:JGetItemName", + "sha256": "226668f63c33ae512e2e02667570c5770682906dd4f3c6db237a8c475955daeb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:284:JItoA", + "sha256": "6422f050a0d103ba0dbbc16fe8c28f02db8b2dcbb0dd21efe8a1a2f27bcffea5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:312:JAtoI", + "sha256": "21a4ab07fadaa8b2ebe420f50fadb648cea0473d42458039024ad951894aacc4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:342:JAllocString", + "sha256": "6079e0aea0d31062f0d8fa3b542678301eb6a8958cc37f8381f1a9c6bda22c6e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:355:JType", + "sha256": "f0191b6ceaddc0c5efee74f34d8a331b22fe211ccef8ed2b1c8cd824672a8f54", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L379__JGetType.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:379:JGetType", + "sha256": "34c34fc24f306289c41ccaac9c8170f2a4682bc04a33080e1c7dba2f2faa0a22", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:387:JGetItemType", + "sha256": "2166f72a90e69613aba02033cfaebfb2952d29b463048f7ba54a0fe3bcaeff31", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cjson_helpers.c:446:JBaseItemType", + "sha256": "54fbd7bdb2f8761eb3a4b20bc48f6e5fae04e666cb28f1d010f678f98a76cc43", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cobs.c:8:COBS_EOP_OVERHEAD", + "sha256": "c8824467e215d096029b2df9c5e7868e7f755bd67577b507d01b66612039dab4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_cobs.c:9:COBS_MAX_PACKET_SIZE", + "sha256": "6725964503b874552ef8a0e087851856d1934d7d8a311963390a2f4a0b0167b4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L32__cobsDecode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cobs.c:32:_cobsDecode", + "sha256": "f2bb76a755419e3ea37d5a9fd75898e9d4fa8a0d9a2817c3394c2404f9c512ca", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L115__cobsEncode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cobs.c:115:_cobsEncode", + "sha256": "23943b4fdb44bd2b9b1a49634a93557793c1b89c6c905a3b7c49d33d833abd49", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cobs.c:196:_cobsEncodedLength", + "sha256": "44048afe2e983042cbcfa2eadfec00d06798d14fdf63ff7e778d1b84c7154b86", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "sha256": "f20f72cc676d37882d1fc65c9915116dffb50f8ca2fa85ccf9da027c9def71c5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_cobs.c:305:_cobsGuaranteedFit", + "sha256": "c14a5fcc5d7af4228ed0e5cc823259cad6cc174490df9199b79d62426b55ebf0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:26:PRINT_F_QUOTE", + "sha256": "9f4380c6ed053571e26c8a1900f27a9a0c43455a85429c316febbe326dcbbfa4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:27:PRINT_F_TYPE_E", + "sha256": "9f9e972b2d82fb809c5cf606290dfe5437dde34f44ce3c7f6603b8cf9b9c3c24", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:28:PRINT_F_TYPE_G", + "sha256": "f446629060eb9968f4bb462f845b7079e4ea4342eccf35d35daa55a8aba05151", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:29:PRINT_F_NUM", + "sha256": "acdaa8395e5ad0f73d0704027f814721d9ce6894f3968001782caf036a331ba6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:30:PRINT_F_PLUS", + "sha256": "74a97d09f8fbc477c53d1d02f4655351473f3e08edf521c709ba4cda6c83241f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:31:PRINT_F_MINUS", + "sha256": "d38803cb524a61cf83c74f54b10a877f6319699dd475bec59c9f65b06c1d9257", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:32:PRINT_F_ZERO", + "sha256": "ad4a2561d80b79a5b3ab3c097d239810fffd8a463c8f938aa33a14be5ce68598", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:33:PRINT_F_SPACE", + "sha256": "a9adb979017d8ed3ae3deaa641fb8e52dbc1d515c25bf38facaf6d6cc8998542", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:34:PRINT_F_UP", + "sha256": "eb80903c5412cfdec729b1038418f55d8146fb2c48f57717546dd211dd7a70a1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L45__OUTCHAR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ftoa.c:45:OUTCHAR", + "sha256": "0b86cb08a4be3fdd6ba7febc8a11289717bccf0ddaeaf853321523fc04e93dc4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:56:JNtoA", + "sha256": "bfbd57849abc4e65a8989722f29614b7c1de396cccdc9b39fc5e56df4122de36", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:74:fmtflt", + "sha256": "41bdc890f218d331ae4d0ce6867098b03211ab064f43cf1b9ed388174ff48fb9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L378__fmtstr.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:378:fmtstr", + "sha256": "17ba2e1e771f44833a4fda945fbd7d6652cab5b30c0f5c97329d735fb0439c29", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L415__printsep.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:415:printsep", + "sha256": "fba91e846adbefd7c6c65c5dd8dca9db963b71113a27a94f8fdf4f4ea66ba856", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L420__getnumsep.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:420:getnumsep", + "sha256": "ccf9288cc8b0893e210e68548c82f8ea590ea24f2f484a41b9043fbed8562283", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L426__getexponent.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:426:getexponent", + "sha256": "f537c0ccb68872c4488d5f7482efbd0377f7ae1d6184aa45ee424362e432c482", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L448__convert.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:448:convert", + "sha256": "00d267bdbc57e27453eb641c084a066980918ba93339e5dfa85d738a56d07970", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L462__cast.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:462:cast", + "sha256": "ea220a15ed9770f627ce6093af4f4b1d33573988bc503adffb0ce0faeced6e57", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L486__myround.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:486:myround", + "sha256": "6694282fc4881c8a31eafcdb500bdc54914b0cd466a229f901f07076013fab34", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L497__mypow10.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ftoa.c:497:mypow10", + "sha256": "f90627f8bb3a642ed85d0e068e173a25bbca7d8bcf12394d047b099050cdb999", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_helpers_c__L71__daysByMonth.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_helpers.c:71:daysByMonth", + "sha256": "0c30a13afdebc33a7616b5b63c490055a48439e44336bb3ac3bd01d2a31a04bb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_helpers_c__L2388__typedef_2388.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_helpers.c:2388:typedef_2388", + "sha256": "ca852202a5c31f3e16ae4e04a88c3a4acbcc1f0fc50e75a337b66464a8680f80", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_helpers_c__L2389__objHeader_s.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "struct:n_helpers.c:2389:objHeader_s", + "sha256": "e899e994f3fa05c5bf868a69a9636f7d9b5705e4eae8aa371aedfeb3202b82d2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "sha256": "1c4cb586672565e0e1b2b1df1029cb27162990ec97baf0039b97fd0911385933", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "sha256": "9697218f11845240ca751aed6992e4bec8ed3323c30ed74a40c8f58b8d2957e1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "sha256": "51c0e314ca5fc885638215a835754a94ecb239065a21200a2141e465988a5ed7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:218:NoteBinaryCodecMaxDecodedLength", + "sha256": "e848ba5884dc1e6341fdbc7713e005c865819b3f50a332af2c2a02c0247f5b60", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:233:NoteBinaryCodecMaxEncodedLength", + "sha256": "d9f6c0eb8f0993065c0cdf35844eba0cb80c1e2644c564065aee173aa7813dd5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "sha256": "b52f281a8b6b844b727a7a8ad190eef35cac04516b75fc20ce48b0a83b69bcb3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "sha256": "2375a0d4b56ac7aecabc2dadce181571a1619f6ed8e79a07685f79bb62e25e0c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "sha256": "90e833a25be01bda5d11437f5ad86c4e7c38af1be438190a78154688605707bb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:492:NoteBinaryStoreReset", + "sha256": "bd21f48a0a8494a4fd7ad0250918ce0222a8f8fea5a6f2057ec324ebafe3375f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "sha256": "aee524f95fa6dfe4e3856e1aead9a66a116a94207ea908a0201fe3bf974256fa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L743__NoteTimeValid.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:743:NoteTimeValid", + "sha256": "98b15e96adea91c3f2618f11d81e1e959de6780f63cce1a84fb036ae4fae304f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:755:NoteTimeValidST", + "sha256": "1ed1bdae8ad38ce8f92663709135e0f521aa1e071a77e0a6efb8731e97827449", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L767__NoteTime.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:767:NoteTime", + "sha256": "7889ae937995fb186b2741cff50e953f8a58f4a36808053a1fa11508ac2709c3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L780__NoteTimeRefreshMins.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:780:NoteTimeRefreshMins", + "sha256": "a22fd3875f07281fefeeb97d16a61e9e227e043dc62f078f19dc5e36188d815a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L791__setTime.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:791:_setTime", + "sha256": "2d256d436d05deb5914952b3ab31ff09ad2dac4f00b60033c70b5550b050db1d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L808__NoteTimeSet.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:808:NoteTimeSet", + "sha256": "61610bd6a687a4e59792c0a2a52443a3d3bf345f5782636fba8007ed5344ba2d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L834__NotePrintln.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:834:NotePrintln", + "sha256": "a27de860fce794c132840d8f420a8755a03d635f8a5b445a743e0a3f25f9a923", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:847:NotePrint", + "sha256": "8ed93509d819cd3ed8a99dd5b6c50a4cf69fbfa05342597b20bbea3fa8a3e9fa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:871:NoteTimeST", + "sha256": "96ec0b9c5a178b714bcdc0b1969c0510e5fe64d4c8bc84c34601ebec2ebecc5c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L948__NoteSetSTSecs.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:948:NoteSetSTSecs", + "sha256": "25657522627e0f7e2fad3f8bd00290bf60acd33baf47e0f1e0aadab780c7ce5d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L965__NoteRegion.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:965:NoteRegion", + "sha256": "6c95fe4a7c616a3872fe0d3fa7903f0eb44c74e1af6ab847829a1b487fe56230", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1016:NoteLocalTimeST", + "sha256": "2bc344afefe7089ed7513d2f94a6b4855afba5c6e177c180f3bee2ca68ed488b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1119__yToDays.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1119:_yToDays", + "sha256": "fe12826854a9d4f818a4b4608d6ff22e4c599e0e61aca0904386922a776ff4ce", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1139:NoteLocationValid", + "sha256": "6f392706212462b5b91cda574900181de7fb8cd3ade8930032274aac53fa8c34", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1156:NoteLocationValidST", + "sha256": "3ecc695d32ab651617fd9a1db3d50ed05eeeea13a5406441504b274042311819", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1215:NoteSetEnvDefault", + "sha256": "258b585de39a7c4e1ee52f41bcc5f212d6a5f8947d2b6ef570a72a77dbbcd9e0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1235:NoteSetEnvDefaultInt", + "sha256": "2576d5aad4aa4aa4d9367e653010b16abc9e48701d9382854c76fe7f6d797d18", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1250:NoteSetEnvDefaultNumber", + "sha256": "e90696f3fe82e1c1b69c5a810f35d47246d3792c57ac4f37dd58a7020c1ca4bc", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1265:NoteGetEnvNumber", + "sha256": "8e1c46b3f85126d691dac7318ee23ed89eace4a7add4a2881cd906a9ab78c95b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1281:NoteGetEnvInt", + "sha256": "80d7eb28a7dba3965a7b8b8a969d9356ac1dbccb7f5122d58b076cd432d5c4ed", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1302:NoteGetEnv", + "sha256": "8a86b10f55de043f00cc5251c6d0a00def5cffe993ff9e8165f28f2baebd3420", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1334:NoteIsConnected", + "sha256": "ef6e62416b578c076a0fe078d9cc68500ae1358be486faf634ede7ddbf4fb4e8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1346:NoteIsConnectedST", + "sha256": "e084a5d626a4821ae1f24b8bf12811e8b3efa974ad4132932e9d02743ba6b2c1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1368:NoteGetNetStatus", + "sha256": "4934d6b4d621cc40c53c0431d7a2dc4d3af2789978cdbc74d5f2b1be528b60b9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1391:NoteGetVersion", + "sha256": "d9e08fb0338f4490d24efcf2287c96711b728b1402febb61f1f525cbd4bb3fd2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1417:NoteGetLocation", + "sha256": "d0f744937f47d58359a1f90961e35aa2927194b81601fb4df26dc0fe9fa617fc", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1463:NoteSetLocation", + "sha256": "9aa097423378a584a2fb7093dfd513642c18e95f43503052bbb11b794d400adb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1482:NoteClearLocation", + "sha256": "75ead3966aebfdf33c02c7a45a8507be053342b87efe8d9a43965e979de0bdd2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1501:NoteGetLocationMode", + "sha256": "7607f35a5c7981f0425abb944e0a4032d6ab4e0503722e93303abbcb5002317e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1524:NoteSetLocationMode", + "sha256": "3cf1a77ebe6e7e8a4cc1be0f666bf78f204e26188128a25868283aeddb584f11", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1557:NoteGetServiceConfig", + "sha256": "57a42ac8fe90ee1fe07987b76853858f3b8309bea900a39fbb6be4225aea6f52", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "sha256": "81e83dc3dfb118132a6037f19cc269c6f1e085a0cfacd5a61af090d1db458e27", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1631:NoteGetStatus", + "sha256": "a9eb4283d99620d41b411bdb8f2daf6c110601e0f3a84647c0a66b26757d9eb8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1649:NoteGetStatusST", + "sha256": "5516c193d1cd7de7728bb63334f0b309b120adfd1a78bbb297d15204da9c4b30", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "sha256": "f314dcdd6f02f41edd5e022cf182bca16c5424b9cd1cad31deaf4413ff52ff9a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1754:NoteSleep", + "sha256": "9697197e5edc119ac0ef57c1ab09e3daad73cb37c85aa008361b117e9734524c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1805__NoteWake.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1805:NoteWake", + "sha256": "a9805af157e51256b863255460518b177464cdcc7705d5752fae1391678ba83d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "sha256": "59ca045ac2c7f5b885254d06eb399f1b544c6b0c7a3341a219db36d9a8b78d90", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1902:NoteFactoryReset", + "sha256": "1fc2a3f55ae3f5c5b9fa55292a018ceb26033857ae4d837036ccb8940eab2927", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1939:NoteSetProductID", + "sha256": "a12f24b1e5e614b5feeeecf52b3e7240a72087cb50fc8cddcde87ef3a783f6a4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1963:NoteSetSerialNumber", + "sha256": "ec855c9b20eadfd9580542f413597164884bdfe5aa9b5954b8294c71c2232d0e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:1993:NoteSetUploadMode", + "sha256": "b547330981e50df8843c90d743a0c61cc5ec09126620f9cfe94403fa3f8e8b90", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2028:NoteSetSyncMode", + "sha256": "9d98657878570c63cf2fcdebfbd1c3e29d6f9e1f0692480d28151127a8b24639", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2060:NoteTemplate", + "sha256": "188e4fe6d8efb3a7421fb0f792466fcd00baf8fe0a412f273a3e0ba8b0b5c4ea", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2083:NoteAdd", + "sha256": "9bfd93a06f6a2a138b3a998c4735ff2ac1ab164ad56073d77d6c5f6acf393b94", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2119:NoteSendToRoute", + "sha256": "62044da073d0884dcc90a0037f6f409e7a19aff1b7d62a24f8b1ec039f5555a6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2175:NoteGetVoltage", + "sha256": "bfc9bab1e457802f4cae75e486c0948d58b656982e8f7a8d7f23415a26e9ca5c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2197:NoteGetTemperature", + "sha256": "7f90253ba5b25054725cf023d580f0be8031ee8216afaf369f14d459c13e7f5c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2226:NoteGetContact", + "sha256": "42f9b06439cf2cba0b429ecee2890b0b8703bca0a408a3aaafe33fc2112b375d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2276__NoteSetContact.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2276:NoteSetContact", + "sha256": "218931bcc31959046dfcf2706b129b45a6c41f1460345b03fc05817ac174a5be", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2301:_timerExpiredSecs", + "sha256": "b885a0783b0e869a39c994fdd1a6db1a9313f14e14b7594828a845239db7f468", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "sha256": "236661e47f6a4d9de9236bf434f13c2ee827e3f7074ca9073a17c0844fdde85e", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2399:NoteMemAvailable", + "sha256": "9936966195c9dfe6ae5d51ca4b321b855fa6ebefbac9b10e7def7bd05904e55e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2440:NotePayloadSet", + "sha256": "d3af6323df9eda7522779eb8855ad7c405b9e48364642f1cd6016e732ea568fa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2453:NotePayloadFree", + "sha256": "e45e8888fb0c785f35991d37ccb43f2632ac0cc745cd73ba30cee631a2d9b26f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2473:NotePayloadAddSegment", + "sha256": "456074df95398968f9e54909dbb521dbd2c1fb2201ffab958ea99d51a450cf1e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2533:NotePayloadGetSegment", + "sha256": "3dcda507cdcd4bab2387b39355d7285b73c694c75aa801969c1e9cc57221a1f9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2555:NotePayloadFindSegment", + "sha256": "0b84bbcba8567fd12702ff011803b9965e8221d11e7b62eec0601fe3a5dd972d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_helpers.c:2587:NoteTurboIO", + "sha256": "374558b4232001d1e807d455e22a06640d507a0bd641f832633381e7d6ec62c6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "sha256": "de0623aeb82eea23a3af5645797189a9d0f8cc943db6769d8dff04c655495140", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_hooks_c__L190__nNoteResetFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_hooks.c:190:nNoteResetFn", + "sha256": "fe6b4c82c0446c10d72a434542d27ab2f8efa3cc46696ccd63e978dab338cc4c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_hooks_c__L191__nTransactionFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_hooks.c:191:nTransactionFn", + "sha256": "6dae5ff088417f20f4fc2c2f0ef64c81a803f50f2345109fc1f2bfbc041d5260", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_hooks_c__L192__nReceiveFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_hooks.c:192:nReceiveFn", + "sha256": "ac77bc4c0551b296fdf46ba6f71e0488af1b88cbcea1d7ed04646c1adf783291", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/n_hooks_c__L193__nTransmitFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:n_hooks.c:193:nTransmitFn", + "sha256": "e298893821af8ddb39c5551f563fdbd881ad1171d8a023db9fbbc7eb644555e6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:209:NoteGetActiveInterface", + "sha256": "cbbdbdcca90a1c57216d2a915eb2251a5256601a022cdb5092c2564621362914", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:214:_noteSetActiveInterface", + "sha256": "cbaf5f8b0d4d9c41a95f0e0fa3518edfdf17b28b4a504795cff60aecec709ad2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:241:NoteSetActiveInterface", + "sha256": "143d826032e69d6504bf30fead8707fa2e162037cbf27019f1cdb9854bd47bdd", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:248:NoteSetFnDefault", + "sha256": "5262cba39764397fa04ac3e03d65cca235c6fcdf463596fcf0bca13443f6f217", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:266:NoteSetFn", + "sha256": "259fb1cd54e65d6b1b5d2aee8fd9cd507f52a4d874fb1cb8873bcdfc900c50b8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:285:NoteSetFnHeartbeat", + "sha256": "dbc0e6efda7ba4284ac917b9918cded5681a30cc739608d6ddc3f2305c1615df", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:294:NoteSetFnDebugOutput", + "sha256": "7bfb78521a830037c4b7d243cda4eeb1d32eca41ab52c144f2f0310c1a1a2eb8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "sha256": "34e51de6677e6d6f8ad4fec3aaf9479ac723afbf7b0c2041d19dc8db7a1d46d1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:313:NoteSetFnTransaction", + "sha256": "bb66dc7c2f77331a716b072a6cfe0392a8ab1d6dc50b6307e6b6d3fe1333ae06", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:321:NoteSetFnMutex", + "sha256": "c0a20ca7edd7880966e8ac43adce7b4b1d13d8c3ea922d2ac837da7c886c74e8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:329:NoteSetFnI2CMutex", + "sha256": "e910a8496da7d07faf54e608dce670af0a876d913f6de3d25e5f78f38a305658", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:335:NoteSetFnNoteMutex", + "sha256": "d0ffd7a487abe16c0ffaf90ab844127f0f2ddfaa648b1935818402a083ead9b3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:341:NoteSetFnSerial", + "sha256": "ea08c48175b12524a4736437328ddc71ec5eeec51c04c0aec03b43e278177a14", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "sha256": "8e8fa115e396760329465d84a409775583a17ed7997115e9e03bb22575d46a54", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:381:NoteSetFnI2C", + "sha256": "a4e8dee13c50a51139d13bff93a0233446f0f79793f03016f8d1e119b5ee9ae0", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "sha256": "94b84756b285e12a490b7c1e57cc968afb7fccd0636d6490ba2449b3c04e3bab", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:433:NoteSetFnDisabled", + "sha256": "e490c13cc46ec518d8a3629946aeafde3eef4bc51a6c9d745a3816e2c6845603", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L444__NoteSetLogLevel.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:444:NoteSetLogLevel", + "sha256": "a2fe5b3c05f3d94d4dc0def7bcc42a73d5bc739ae747d1e9221f85b8fd3e9c64", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:453:NoteDebugIntln", + "sha256": "8f89fa0e893d3576462a5286381045389db322817dde8e9c39c6b56f20e89d0b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L464__NoteDebugln.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:464:NoteDebugln", + "sha256": "4e915d9dbdb2660bd9850185fcb590c7da030b77fad4b6e0fee73a61bcfb0850", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:474:NoteDebug", + "sha256": "e806b6d8d2e4db7c55e6b9565e77e7692db40d4916fcafc09379a27d1c9dab70", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:485:NoteDebugWithLevel", + "sha256": "34447f97e9b5c6af4e98123d010eada6aae0e421c635f4f0b8de2b3a4908da62", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "sha256": "1cd83d33b49ad3247e7716fc81f99d4b5d12f4d4ff3a8849a66f9be9f96e235f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L520__NoteGetMs.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:520:NoteGetMs", + "sha256": "524cebcf9265ae63612da7ca84f2a5bd138d21bb689017b7fd77b78d5485e04f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L528__NoteDelayMs.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:528:NoteDelayMs", + "sha256": "faf98b36d8030784cd47e00bc74e4f11657d81683877c1c1cd9f033c66070e37", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L544__n_htoa32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:544:_n_htoa32", + "sha256": "68f09cf45599e55b42315d9cd6041637ef2e1e5bd8adbf17e3b2803942e0c53a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L561__n_ptoa32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:561:_n_ptoa32", + "sha256": "2973aa3ecf824ba836881d62a39e9a8c9f28caf66852e9f9321caa4d482dc064", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:569:NoteMalloc", + "sha256": "9b38abb8f092dd5d9620a441c8eed5b6393563bcc49ac7b22c6e81aad657d297", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:595:NoteFree", + "sha256": "f7e957d80bd0839761037ac38e2d45e94d8fcab39f1852bc18168c0faed0f4d8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L616__NoteLockI2C.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:616:NoteLockI2C", + "sha256": "713cc2768cbbd1f739819d8c088e245845f9f3165dfd921200c41a7c6264bc3c", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:628:NoteUnlockI2C", + "sha256": "adf488a6d43b20a4ae2caa31234208f30c90a9b3d8eef3da1dee1c0de576e004", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L643__noteHeartbeat.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:643:_noteHeartbeat", + "sha256": "5fcb0ebea518c776e4baa4df35ae7b1055b428e0bc749bd63c9512a5de8e1a3b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L657__noteLockNote.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:657:_noteLockNote", + "sha256": "88adb465a0910dfcfb240a6a3c783762d3193323ff2cfdb5cda924ce22a7fdae", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L669__noteUnlockNote.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:669:_noteUnlockNote", + "sha256": "c345349c6ff7d6dc59282d855fe2c1c5f3ec48509478aae06e5865bf5c61fb25", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L681__noteTransactionStart.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:681:_noteTransactionStart", + "sha256": "e437f758d4e4066a4608a241d116d018d138acf155fd87f121d847ad5c6e3837", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L694__noteTransactionStop.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:694:_noteTransactionStop", + "sha256": "0c9a118fd8c3500973db272bb17d1576b1956c1130ac7fa76078bd6f84541fdb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:701:NoteGetFnDebugOutput", + "sha256": "b2ab7c90703e63817b8e26ddc3ec6b927ee3f4aa36b0337c4b36c23c81ad70f6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:714:NoteGetFnHeartbeat", + "sha256": "7550fbab1553fd171d3e985318164c37864df919c65d4fd588ca3c239643b391", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:725:NoteGetFnTransaction", + "sha256": "6d3a0e0eac45934ff4125ddc34f5b705554b671b6a8dfb82da8be71870dc4544", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:737:NoteGetFnMutex", + "sha256": "0fa8d451b37fe3ba3b5a4291d3bbbef9a01acaf8304df07cd863fc1da816ddb9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L754__NoteGetFnI2CMutex.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:754:NoteGetFnI2CMutex", + "sha256": "f33b9c41030db80730c5b59346c57ed2a3f6477a7dddce5b1a9132e674dc0b43", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L764__NoteGetFnNoteMutex.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:764:NoteGetFnNoteMutex", + "sha256": "75e7de4d68e704785d5430f14db67a8c565378103df0f7b96075dccc22761d48", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:774:NoteGetFn", + "sha256": "1d9a5c960b42c21ca94293a7da6d2f0297f2e84aae775ccdde0e1136f1f9d05a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:793:NoteGetFnSerial", + "sha256": "b34fc069e90bc4c9d83b2e3aff359032cacdedf10fc6db85f96afa449e7b0ce2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:812:NoteGetFnI2C", + "sha256": "25fa900e33ef221cc553a92b5be650fd4c352b34a8a79d80432c633029491db6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L835__NoteGetI2CAddress.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:835:NoteGetI2CAddress", + "sha256": "9850c7225b82bacf48b78d0ec33c1437ec3134e7b424d34cd4333bb67a7eb6b5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L842__NoteGetI2CMtu.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:842:NoteGetI2CMtu", + "sha256": "283d19fe799b74cd9e424c94686c2aa974dcd48352d38d22cc38ae1e07b85c17", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L855__noteSerialReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:855:_noteSerialReset", + "sha256": "7e99cb9285362d7e1b6255f6006e3f806ecbac24d7d6fe20f0bd6934a13f693d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:871:_noteSerialTransmit", + "sha256": "ea330dcb01753f4cfa8614adab29d45035b0d53b516e380f880ea9ef545956be", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:887:_noteSerialAvailable", + "sha256": "21f2873989d28c4812f2e7c08574a75b710b61bf9d96abb35dca643a8dc9c6b5", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L902__noteSerialReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:902:_noteSerialReceive", + "sha256": "1e842803ecf7cbb335642b4aeb42076ab3da27ce6539186ad7400f5596d5c9e4", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L916__noteI2CReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:916:_noteI2CReset", + "sha256": "a2a64096fe7728c77cacad12674a721218b5cbe741df966c4e263ec2e9a0fdea", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:934:_noteI2CTransmit", + "sha256": "1333dbfdf044664e00f77d4ca16d3693ba6a8f533bb069ed6ef482497fb21944", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L955__noteI2CReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:955:_noteI2CReceive", + "sha256": "d54ea9f20947144a79879098eaa605848f9d54d9593e51de47f53ba7f0968e5e", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:969:NoteI2CAddress", + "sha256": "2844da87575e5442404b695924f870fee9a83bc5b81a1e5a6be7fa882b0d6f71", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L977__NoteSetI2CAddress.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:977:NoteSetI2CAddress", + "sha256": "08a460461d05230c0a3bbd1219a4661d5cf02fefbfad07aa49e7e38161918cc8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L982__NoteSetI2CMtu.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:982:NoteSetI2CMtu", + "sha256": "d2570d4133bbdb2dc58c89e77f6cccc360496eef09d129aec81e692d82700fc4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L994__NoteI2CMax.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:994:NoteI2CMax", + "sha256": "73542790bdbe96ce929ff0a33a173a26419bc1d983cac29aedfe6e126a769fd6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1015__noteHardReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:1015:_noteHardReset", + "sha256": "06f449f1d4ec19a5a3ad42e4cf10aafda03ab6e16410718a4d0e7827294fd64f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:1042:_noteJSONTransaction", + "sha256": "a0d8fafa9b277e286929617458e642fc9ab0263b8827c1d6b4e18fffd3f8fcb0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:1068:_noteChunkedReceive", + "sha256": "34e35f55809175d03d1a63bfb8884dd8f9a8af456ce4506e6ebce1d3fdeb7836", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_hooks.c:1087:_noteChunkedTransmit", + "sha256": "8e9e0f255f63df8b6fbc54403d37c90c26c43919532f8e26aa7648b89e390d0b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L30__delayIO.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:30:_delayIO", + "sha256": "bf095f13e583b5b79d9e06e36401920858caa3b943cc53c17a5183047520768b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:48:_i2cNoteQueryLength", + "sha256": "7494b64fbc2504ea930dc636291185e41deaef7d0a52e4e50ace35810762a5cd", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:87:_i2cNoteTransaction", + "sha256": "c557dd15d6efbe2598325b3fcbca2b97a737a02dc500641efc874f94bff81592", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:195:_i2cNoteReset", + "sha256": "34dc10fc809fc7033c3fb198dfc06988a846237510a5f00e3e55ef789f83cf0e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:338:_i2cNoteChunkedReceive", + "sha256": "11c94d60bd2800049561413278b1e98b2d36c5d3f342c80cd8d90c5788aedf21", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:365:_i2cChunkedReceive", + "sha256": "6ab99d3518f067ff0091359e6d33a1c2007dab60ba2cee1d0e2d329b7efd2cfe", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:456:_i2cNoteChunkedTransmit", + "sha256": "a0bee417f7a0d3ce0b560329e53f22069267c5edc5391bff3e17793971e3990a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_i2c.c:475:_i2cChunkedTransmit", + "sha256": "80324e6b177da2a783592f1a4c029df37b100f22473e5660b03c8b59a893264b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L35__NOTE_C_STATIC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:35:NOTE_C_STATIC", + "sha256": "d0709af3dc9461a79b1b7b9a86371eb45516e7269f686b3af4946c9fded76150", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "sha256": "3c06a4b50dd562b48060838481a3a0726e94924165e6cf0da95e113f387b8e79", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "sha256": "709f0568d0589f63c894b91ad15d8a6e927adb91cd0c4a79a7daf6c6f6cf1c16", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:56:CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "sha256": "cfee96a040d8780ffb54e0be0c2253f1045c924050dd332707701697b81a2ed8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "sha256": "a45266f4e4bc25afef97de23049e53e95628808799dbc53a970e331feea766c9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "sha256": "c9658e36f2e3dd7224e56a954e8445f10e4058ba9bca1a781b8cf55d2bd65242", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:74:CARD_REQUEST_I2C_NACK_WAIT_MS", + "sha256": "643df0e84e9f790d4183f064cef3a02eebfc9f3e65a349fcad49c0b3f57a23d9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:80:CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "sha256": "4c2c9fc5b40221a2aee18d560eda6bc61e955303c5ad61e8ab8de32e654ac093", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "sha256": "fa4a5e08ffa8dc5f5c0bcce94faeecdfbbde81c29b69e98fbf4d1eb715974cf8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:92:CARD_RESET_DRAIN_MS", + "sha256": "a830f2c26fb7bebe73c5fd2d78c209d25a4d24314d46d2299da1fc04c4e21ee0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:98:CARD_REQUEST_RETRIES_ALLOWED", + "sha256": "721b43ff4044ac1fee4f7bca8e7f06b970634513d8ffe3a382a79e5246bf8c30", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES", + "sha256": "3951a49bfa1d0748c658b5366f397ec00b37731111743fcdbc8ca823d9a78702", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:111:ALLOC_CHUNK", + "sha256": "26b040d82fda9a56fb7cee024ea4d4266ed70d3aa1af78f286b4c71d6e126e1c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:113:ALLOC_CHUNK", + "sha256": "5185303699bd25a7a75d7a16c336ad1989233d3609a3ab1caeb2400fc06adf78", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L174__c_bad_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:174:c_bad_len", + "sha256": "ee1896b557c6cc642edf127db67462a5b16845fcc52d7547d4a1da509b6fc422", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L177__c_badbinerr_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:177:c_badbinerr_len", + "sha256": "081d0d5a18ed31128e9255905b1914e1dffc079ce8f3bf7b9abe189511a67d21", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L180__c_cmd_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:180:c_cmd_len", + "sha256": "06499134b08fa77d083f5df623756987aeb07d69ca4d870d70190797ec7a51d3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L183__c_err_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:183:c_err_len", + "sha256": "5095c8343e7e9a54c01590986730931d2670fbe6cb90613e0dc47b816c1d69f2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L186__c_false_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:186:c_false_len", + "sha256": "7d6ab0c5a7dd4502265a9ea50ca22b08e513603d1c8a7960f72ffd9f49bbe70f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L189__c_heartbeat_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:189:c_heartbeat_len", + "sha256": "cb0dbed37d517b996d7cde8595381bfdcad129bf01254e8716d0155384ccaf2a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L192__c_iobad_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:192:c_iobad_len", + "sha256": "82d258e1b5e89bccb5499c2f572dd4cff4e7ccc56d44690570f49049a508aef8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L195__c_ioerr_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:195:c_ioerr_len", + "sha256": "23cfc004c30a92864bd7bc081190a515d15d61d58e79966c7f92dbe3196fa34f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L198__c_iotimeout_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:198:c_iotimeout_len", + "sha256": "da3a981ee35c666b92e345fb974e04ce3831796e57f0f6753e5aee5cb7bbb475", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L201__c_mem_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:201:c_mem_len", + "sha256": "d1dfb8f80aa0bc9de4531b63787aade07446dbbb1d1ec54b055ae92b494a6724", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L204__c_newline_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:204:c_newline_len", + "sha256": "895a643a49764db9b595873bd23410c6f1b794d262060a657b0a72c90fc752a8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L207__c_null_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:207:c_null_len", + "sha256": "c72c85974547c2f12f84fdcc100688d504f0ac3260a64e6c6836e44ebca6a574", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L210__c_nullstring_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:210:c_nullstring_len", + "sha256": "8a41f641cbc53d29a3e8475bda2105b19310c1b25c5c4a65a14203847bb8f71c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L213__c_req_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:213:c_req_len", + "sha256": "a865b062916c079456c94b5788f02df615f570d801d901d49933d2a415c1d2dc", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L216__c_status_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:216:c_status_len", + "sha256": "53013eea86154d030ffaca96571ab3a81543fc374b0d1ae3459be6a509264a27", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L219__c_true_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:219:c_true_len", + "sha256": "cac0f31f974a3159260c9f07e139bf995ad6dde7e20aecbd81c94ebbe9adb96e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L222__c_unsupported_len.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:222:c_unsupported_len", + "sha256": "943e0f27cb6cae17e695f866ded385018bbc5f234eaa8fb0c381f8b33f197781", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:226:_LockNote", + "sha256": "c77197ababca9e3186e907a81ba69c0090ab057d5b46377494ce655cb257be85", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:227:_UnlockNote", + "sha256": "9b607bb2fdff70a4338cc261697bca8ad61107e22458882ee8c7d9ae306af7af", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L228__TransactionStart.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:228:_TransactionStart", + "sha256": "7f461a1718af81de72745f4ec3a81cb525f0ae27bd5a4fef66abc18b2a2a9ce4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L229__TransactionStop.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:229:_TransactionStop", + "sha256": "7339a544a7c922567975b8b2f2f2e8569afb6ad4fb9b90ff8ea85c10d871a059", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L230__SerialReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:230:_SerialReset", + "sha256": "ae66bb47c12cde9881cc5a4591300ddcd148c45f73235edd5159af59b0ae417a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L231__SerialTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:231:_SerialTransmit", + "sha256": "7dfc8730e906dc7d69addfd8cec23f5a51859b2386425c7095f30cbe6e460baf", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:232:_SerialAvailable", + "sha256": "8240e93f4c192748151684a302228ca0ec288c15455823c631cd5906d282e7d3", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L233__SerialReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:233:_SerialReceive", + "sha256": "8ff42d772c3912fb3a3d0c16917ee7a5daa10c965ec8e6e255e25f6d238d99b2", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L234__I2CReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:234:_I2CReset", + "sha256": "e03f5e9c107b9ca9d8e5439d4f0167ca2a8c21459054b8c779bfc209623654fd", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L235__I2CTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:235:_I2CTransmit", + "sha256": "ab0139e4d9659589266db9566b0f4095cd942064cdebbfcbaec1be1e440d6786", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:236:_I2CReceive", + "sha256": "d4b8159979062ce9ae1823005d1c6aca842dba635e80fd4f3241fb8496458383", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L237__Reset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:237:_Reset", + "sha256": "a667e4148fbe9a122fe1fe193bdce83df7ba706def3535b33e7d51204ef0e594", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L238__Transaction.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:238:_Transaction", + "sha256": "883bf210965d594733cd802d4bae17e8383f50c2faa662a5589aeb217b88fcd8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L239__ChunkedReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:239:_ChunkedReceive", + "sha256": "4f4fb8419cf84a51f3308d0aedfbb9e8482bd59d0a3d7678355d9800ffa64e7d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L240__ChunkedTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:240:_ChunkedTransmit", + "sha256": "3e22cb415a93454ab062340130c31e7ae7878869cc1c19e1e2fb9602403b22ec", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:241:_Malloc", + "sha256": "d8f2000f72434da2ca91cc3c4340be0fbe484a7e2495be507ac1c55ce286af39", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:242:_Free", + "sha256": "95e5f006091062563a08162babd96e1661596b1099f368fff44a8d8235edfbc1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:243:_GetMs", + "sha256": "3b9d91d6b1adb7094bdf3e6a3dd7171421deae759086d80d5dc29c5f5e63f09b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:244:_DelayMs", + "sha256": "4eab6717152f6496f43cfb0e92a58d085eb6e91cfb2aa81a11c01fdf26dcc449", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:245:_LockI2C", + "sha256": "4ebf670b5161c1e69aba2dbbac099104b4412321923c8a490821289741e8e9b9", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:246:_UnlockI2C", + "sha256": "c862437e9a70e7016a3544a47e39130269d9ba22136a12681e3daa177609796c", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:247:_I2CAddress", + "sha256": "b1d60012a55d767820853fb6b0ad84fabadca8e7c4d44c96dbe2564e41aab936", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L248__I2CMax.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:248:_I2CMax", + "sha256": "f04824f2b4914ac0a6fb11ca9daea7ee3e67df009de5792476509e8ad0dff667", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:256:_Debug", + "sha256": "4d00247ac95c1ab20cb4b20bbc51fd6e9934d7a4f4304bd0e6610c78fe7fe741", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L257__Debugln.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:257:_Debugln", + "sha256": "1723d8989bc9b18ef9a83a454ce9e7f1c883d8ba26200463e694d4ef6e374bc5", + "text_status": "unknown" + }, + { + "artifact": "artifacts/macros/n_lib_h__L258__DebugIntln.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:258:_DebugIntln", + "sha256": "d7bdedb4be55d1066ccc25a16fc97ca1d401fae761319ea0cf85aa56601dd894", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L259__DebugWithLevel.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:259:_DebugWithLevel", + "sha256": "c1d832db9b05498f7e34d4a2f2bfc5d2300fd134164143ff090cb48d7a816b16", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_lib.h:260:_DebugWithLevelLn", + "sha256": "f53b49c2a213907af5d3a3b3c4f5149b3519c2d9f00a0e169d1ff97c30f71db4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_md5_c__L187__F1.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_md5.c:187:F1", + "sha256": "18ee1d169b9fa793fa21b296514854996084e5823f6465c74352a811b3f4d6e1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_md5_c__L188__F2.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_md5.c:188:F2", + "sha256": "6f4022fd649e328c7df2a288a13a6e691dd99b882a18c08c277b40fe827bb5fb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_md5_c__L189__F3.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_md5.c:189:F3", + "sha256": "d79f0c867b26985b4c5102a609efcb7556cab221fa346051ff95ed1085018228", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_md5_c__L190__F4.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_md5.c:190:F4", + "sha256": "3dba042ed7fa9db64c54c59263341249f9e7cee44605a0a005287adc05aa63a8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_md5.c:193:MD5STEP", + "sha256": "67e4752d469433ebdb07fc91fb34e4d9ca64feff26edd713b8372fd757df0ea5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L42__getu32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:42:getu32", + "sha256": "d3f0d391d3eac52cb4f911c3954b8621461a4f99ae7207dd331c74bf79be7cf2", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L48__putu32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:48:putu32", + "sha256": "31afe7078f7b3995ebe9accb35d5fa3dc66927556570ef952f9220dcc8e85138", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L57__n_htoa8.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:57:n_htoa8", + "sha256": "653bbb7b85bc4eb2234a14b279f3274a40042d13d26cc22a39949dadfac67820", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L78__NoteMD5Init.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:78:NoteMD5Init", + "sha256": "e211a4ea7d5688eb8b97f3022b6f868d90e444715576634a7cbcbec71192755a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L95__NoteMD5Update.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:95:NoteMD5Update", + "sha256": "50e4bb913924a83a1fc69d49fc0345c76cfda27c950d8895179e03042d214b4c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L143__NoteMD5Final.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:143:NoteMD5Final", + "sha256": "e8e6215058930209c7bbdffb219a63361a733f5c787b3ceaca059bec380f14e4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:201:NoteMD5Transform", + "sha256": "ebae6a3ede49b7d8c3aa8b22cc462787738928cc677786020bf0d34ff7103c7c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:292:NoteMD5Hash", + "sha256": "ecc7dd1c4a1f724fb90a54b3a63f8150abed456835cda62b8beabb7a77b8b4a7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:301:NoteMD5HashString", + "sha256": "1cd2e560053638fdd783e3acb48f7ca07c1688de48d8384fcbf8c96884eeb084", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_md5.c:314:NoteMD5HashToString", + "sha256": "f764d4469037763e1b6c51563d494d83a098098ef39bfe6be2b5a05921c0bd8f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_printf_c__L35__NoteDebugf.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_printf.c:35:NoteDebugf", + "sha256": "2f9818354ac6910df10a9c0916a2567f6be4820caaf3b7744142bf58ac320b28", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_printf_c__L60__NotePrintf.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_printf.c:60:NotePrintf", + "sha256": "e6704e5bb5700e68c506573a7bbc6fdc4ddceae4c278d00f814f119cdef2c136", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_request.c:31:CRC_FIELD_LENGTH", + "sha256": "d54e2feba889e71f31629694e7681e5428c58e7dd0abdab12a5541cf45818c15", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_request.c:32:CRC_FIELD_NAME_OFFSET", + "sha256": "060d3de6024240568bf38c05caa47d394ccabebab8af44bfbebe4597c6faca5d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_request.c:33:CRC_FIELD_NAME_TEST", + "sha256": "1fc8223ec0941fd96bb96d5ce3a1ac3eac8c203c68f6b1e538fd86c8a4701c5b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_request.c:34:ERR_FIELD_NAME_TEST", + "sha256": "fe0ba39a87bbac19bda1beb41d4c85955c63b7e4ac343fd11ed0253653762fe0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:55:_errDoc", + "sha256": "c44dec62a2c3e145dae7068d8b5fbc1685fbcc7237fa7d55db7654df94b41479", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:80:_noteResumeTransactionDebug", + "sha256": "adc68094989812ed12b02f6cbbfbdca980746c9702928bb426f75244ae5c29b3", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:88:_noteSuspendTransactionDebug", + "sha256": "3c0dba697210de13c4412293ca732070dec0b121bd05a172d088ceffced38277", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "sha256": "dbf6b7a0cec0dc01e8a3c64186758db5fa76e05515c474b68415cdacfb6ba815", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:153:NoteSuspendTransactionDebug", + "sha256": "580dd2a041b90350869ee257d21598c1576b8e7541e933035d2669133878a751", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:161:NoteResumeTransactionDebug", + "sha256": "c1b009ca806930ad512ebd85bd9205d417076cc8c95a8407ab973a9c48e797d5", + "text_status": "unknown" + }, + { + "artifact": "artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:166:NoteSetRequestTimeout", + "sha256": "cfbfcbc6a6410add5e4ce1167a366d79ca6542037cf006dfcd2a107ed9e303dc", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:173:NoteNewRequest", + "sha256": "4e7c5383f68ce262edfaab08e61cee247732084e332a328168d2526b8b1dcdf0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L182__NoteNewCommand.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:182:NoteNewCommand", + "sha256": "3e130277fb8e1f7475d9436a39e968d2ed9081a48e9b2f2d2f989d1e9a3bb12d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:191:NoteRequest", + "sha256": "10e35b587d1eac133d5404fe1a0724c17467df7ffccac86c5b7d3e920be9ea12", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:205:NoteRequestWithRetry", + "sha256": "dc762cc2c9382b45f2678df167b5d3fa5102bfbea4c8827d1719500e2152a59d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:220:NoteRequestResponse", + "sha256": "5474e54f256dc5465252c23fa0b7778cf61bbcefcc2b925f035f972a5e5cac9c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:234:NoteRequestResponseWithRetry", + "sha256": "0673486aeb18331e47d5854d3fa823286b8373a2050edba5246e65ea0ae2a476", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:279:NoteRequestResponseJSON", + "sha256": "50dcfeeb033ea848045dad2ea5f5adf585cc9f7c9e1023fe3c47c894cf5e26b9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L411__NoteTransaction.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:411:NoteTransaction", + "sha256": "309fe207a26d6a686edbe388e01b57eea6d6cdbed95d7039210c88350b3e726f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:428:_noteTransactionShouldLock", + "sha256": "84e8a751443cbb7fdf523530953f4d1263d85e6da606e4b8785afc8b5d186884", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L756__NoteResetRequired.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:756:NoteResetRequired", + "sha256": "9760190c31950b9ad01b2cf5955ebe618d93ac574125cce8bfdbe3926159e9bf", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L766__NoteReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:766:NoteReset", + "sha256": "3d3ee7a6a0a347414f1a8f8a235c13f5f77d60e1e2b80806ee59afe50a1990eb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:786:_notePingDrainInput", + "sha256": "91108e664047361b9d1f8b7dbb6bf6bb50977af849b53705d8f88ce7a6ac106f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:841:NotePing", + "sha256": "f993cf93bce79f7a9e9b48d68f8eab83592f108202268910ee1beb258b88442f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L940__NoteErrorContains.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:940:NoteErrorContains", + "sha256": "68e5de7eb28769e9c22ce7c0a431b439e7ea0edeff039634ae2cc7c2f4795aab", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L945__NoteErrorClean.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:945:NoteErrorClean", + "sha256": "7caabfb471a4fee88fbacab57f1fd30f324a8cde6c534d6fdaaf9ce39d9ffc9f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L975__n_atoh.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:975:_n_atoh", + "sha256": "e05ac6ed4ee6e0eafd943a0adaa0627600d4fd685e7e14d9c4af9437b7eda701", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L1019__crc32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:1019:_crc32", + "sha256": "74d94786ca740f84b7dbb420bbbd6b4ac06348de8c88edd566bf667ca645133b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:1047:_crcAdd", + "sha256": "e57ba6d51175d534d4206f75366df6b99161028b64661bae7eb4ad17909148ec", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_request.c:1113:_crcError", + "sha256": "0599a0712ac003e09e6d432984bd36d77403b7b2eb3bf157e830b09f7106c0aa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_serial.c:35:_serialNoteTransaction", + "sha256": "9873be7ffc501ad1b827b84ff6c37c6bcd572146e0c4eeb18e7bfdfeca882cd5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_serial.c:153:_serialNoteReset", + "sha256": "001ada62ad8ec5c242e7cfec69be53227a9ca588741992bca9c1cc5300db1ab8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_serial.c:237:_serialChunkedReceive", + "sha256": "6bb9a8d4bb502866c057e88e4ac5babb8269a7760b4ff3f196b5c8f8bf51ebbd", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_serial.c:303:_serialChunkedTransmit", + "sha256": "e8c2501dfa34f7f24f31abb2f2bb2f24fa86d1d59ff6027fb9554cb30e8eb338", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_str.c:31:strlcpy", + "sha256": "8b4137248bfd11f09d3df45e5637693c39a6d895d03c822380eadae49a58f51f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_str_c__L69__strlcat.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_str.c:69:strlcat", + "sha256": "fd2028cf3d86b1e0ed2a182713187e1eb563e9a52d824d586f85cb527f98c277", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ua_c__L107__PLUS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ua.c:107:PLUS", + "sha256": "afa51eabc0e6b1a896fd4aff2f2f208d5f46e9cee410bcd9af8bef1c14a1a06d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/n_ua_c__L109__PLUS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:n_ua.c:109:PLUS", + "sha256": "9cdb2137fe561e4cf2b5b6fc819b023d1cb21edf877099a70b1ec86341b5fefa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ua.c:80:NoteUserAgentUpdate", + "sha256": "69e03062e007628a5f05030ed6965bee318b4e41f77a4ee77ae1310a500fe6a6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ua.c:95:NoteUserAgent", + "sha256": "8e95478b8438dd96fcecc6d5166f40cedf2f4ce3ea2daed8f338579ba2b7989d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ua_c__L191__NoteSetUserAgent.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ua.c:191:NoteSetUserAgent", + "sha256": "88dce126816a3092c21a73fe630be2b0b8d16eedfdba4ee7ad67cf25c4ae22c3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ua_c__L201__NoteSetUserAgentOS.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ua.c:201:NoteSetUserAgentOS", + "sha256": "ec7df000be7ce92f5259e14c5ae0761fe79ccfc7080b7193bf97712be2cd4b48", + "text_status": "finalized" + }, + { + "artifact": "artifacts/functions/n_ua_c__L214__NoteSetUserAgentCPU.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "function:n_ua.c:214:NoteSetUserAgentCPU", + "sha256": "6da4aa23a93178c8b7f21e1b49690eb5cb91e18831f0587f7debb19c462e196b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:19:NOTE_C_DEPRECATED", + "sha256": "a30cbd825c562fca230413d44de77fa2b50b6090bc7e6fe86c0473c7696496b7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:21:NOTE_C_DEPRECATED", + "sha256": "1fa1a523a23da9ca17d47801e76483a297ffe23b5cd116f79c3653657547296c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:39:_NOTE_C_STRINGIZE", + "sha256": "6405864e704a02fbb66f92ef60e4ca88b3975bb7917629168a97451e6fe5bcdf", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:40:NOTE_C_STRINGIZE", + "sha256": "69260a40cc7905431fc971825850de9a22e3585943dcda690cb2bb2f5825f74d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:42:NOTE_C_VERSION_MAJOR", + "sha256": "a797e2a2a555af874994013294d0ddd8123cff75c52f5a5d00455ac3ae7d6b3d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:43:NOTE_C_VERSION_MINOR", + "sha256": "d5f8829f234bb71dda8ff47b5e146539d4264b9caf034e6608be2aa156496de1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:44:NOTE_C_VERSION_PATCH", + "sha256": "a097852c8331dc7b8e4fd5fdc8112181eabcdcc3761736af57f7665522c7de78", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:46:NOTE_C_VERSION", + "sha256": "2d036d90bbacac9c7f9bf10199c016b092bb4777cedd8a0436918c4893b855c3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:75:ERRSTR", + "sha256": "098a158492b572cec57d4af54086e52c9ddf9420ba40cbaab29a5417c42b3a64", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "sha256": "777924e3d467d2403c70751e7f33673e20c0b230b4a67600ac5bc5eeb02e3321", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:78:ERRSTR", + "sha256": "3d37a5d34a6090b6de5e85241ef136ae4cd246c6456fe7e74edc636c0d1e7e8b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:85:JNUMBER", + "sha256": "32ec9da05766937b87f3fe55720d4ca9338207085f359ed8218fafb3d9e55c69", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:87:JNUMBER", + "sha256": "9c91781e38742851eaa8b231096c6385754894bf106465185f12ce98ec85b8b6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L93__JINTEGER.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:93:JINTEGER", + "sha256": "f462709b818964b1c5499ae3a4f32b4659dbc2c5e2dd58789adc6d3e0855b2c4", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L94__JINTEGER_MIN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:94:JINTEGER_MIN", + "sha256": "f62cb27d9b47b88564974642b5cd5af3156a423050d39724ccfa43ad6026ed29", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L95__JINTEGER_MAX.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:95:JINTEGER_MAX", + "sha256": "acba8b9f2c1be35264695e8020c515577fc41ab92fed7407fd1c44053af6f23d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L100__JUINTEGER.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:100:JUINTEGER", + "sha256": "a5878783a9faa5519d9fe33b4ef5b8fa7a14120aac6bf587101802fdd19cea3c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L105__JTIME.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:105:JTIME", + "sha256": "0be661d27eb2c181103df3e7a49a8ff51118b08e64933321f8630ebb857e9865", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L124__delayMsFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:124:delayMsFn", + "sha256": "ed9904e582008a2294d38f1cf88302eb19f81b45bf77aa4d1e1aec811dd1e415", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L133__freeFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:133:freeFn", + "sha256": "d489bb8551dfbb69d7fa0efa0204dbb3f18791718d6b51a35f2b1fe74e282cb1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L142__getMsFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:142:getMsFn", + "sha256": "df503d14f3441b3547f1e0f3dc14d235103e6e5300cd0257918790f4b0cb5888", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L153__debugOutputFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:153:debugOutputFn", + "sha256": "00746c001ca8aa972b4b60d69b2531300d94740ce55a5f2856780c070bb36a9a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L166__heartbeatFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:166:heartbeatFn", + "sha256": "1ca1f8fb387cbd0a212068171cce233b86a82c31bdc645c8c882a264d563a04a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L183__i2cReceiveFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:183:i2cReceiveFn", + "sha256": "9dc86d4c1b448fe209940a3406eecff959cc2b9f8911b96aa811e32309fadf6c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L196__i2cResetFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:196:i2cResetFn", + "sha256": "aae29808a6e591dcd08f2cd564f5063658367f281c587719967a39bbc3579efc", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L211__i2cTransmitFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:211:i2cTransmitFn", + "sha256": "1c6cbb4e97cca937b17bdb8c98bbcfefca462dd556f8170b53c0b5cbb4359634", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L223__mallocFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:223:mallocFn", + "sha256": "e7d076fd46a625ffb4adadbd5ec99c2dc467d6cf13afa4dad0c6863537e65ff3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L230__mutexFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:230:mutexFn", + "sha256": "f796eec37f6f5e14b93176f92e949f1d3a14948f5ae715c5f2a39a90cbe150b5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L239__serialAvailableFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:239:serialAvailableFn", + "sha256": "2ae05da5a26eb6be56123239bd81dfa4a6c995b6826093a68e2f0f40c8896035", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L248__serialReceiveFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:248:serialReceiveFn", + "sha256": "183dda433323a38394a51a8bc14e20cf2703bbcd269d2f01d64264ef108450d0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L260__serialResetFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:260:serialResetFn", + "sha256": "49c5f564a694a1c2957dd1d1c0947ff1d7623b624f0f89dd28adbf677b7177c8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L271__serialTransmitFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:271:serialTransmitFn", + "sha256": "c05578a671e6ebf74adbd6eec1dcab15bbb8f31fdc2d8408a7ed3eb091f22a07", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L282__txnStartFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:282:txnStartFn", + "sha256": "a08138fca8abe8109c734dc9dba49c45890c42cb95e429714b6c78f06b66509c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L289__txnStopFn.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:289:txnStopFn", + "sha256": "b7cb73fae2262ee1c915e557ab4a56f2c2866a7149c0eb77356683bb57e9d5c6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L322__NoteNewBody.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:322:NoteNewBody", + "sha256": "e7ee6388581aa8131019c4d9d52337d7a0a431703274a986c2b91f9dc19bb2d5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L323__NoteAddBodyToObject.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:323:NoteAddBodyToObject", + "sha256": "5b0b9cd5087b05c77c8314a249ccfd336a4cf49223b93cd481a4989297a5f2a6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L324__NoteGetBody.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:324:NoteGetBody", + "sha256": "cdcc68dccd88585e650a80cf02a2be81c4e1bee34870fd4e9d7f3063b40f88a7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:410:SYNCSTATUS_LEVEL_MAJOR", + "sha256": "83281c27498e08bfa33a6c8a5bf0a3bf5914a61cbc7ce6fca646af58713fd51b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L411__SYNCSTATUS_LEVEL_MINOR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:411:SYNCSTATUS_LEVEL_MINOR", + "sha256": "f68530bed52745176b416122f1da68001b5843da8b26c54ed9037d033aab3017", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:412:SYNCSTATUS_LEVEL_DETAILED", + "sha256": "3bd59a2468eeceec949b48639749670afc717cb9cd3e2f8ff3fe9353ca9ef81a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:413:SYNCSTATUS_LEVEL_ALGORITHMIC", + "sha256": "80b03b0c34a4d212ce7f965344389a5dde57a3a877f60518c25db4c7f447177e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:414:SYNCSTATUS_LEVEL_ALL", + "sha256": "3237c81ec3e5bd7e417bf8d75efb714d31f8ed9e2c89fef3941e80e26ae998c1", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:479:NoteResponseError", + "sha256": "f046e8f7f24347b500dcd0b6b6167056e7f210764bf271663bc3907cce54b69d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L480__NoteResponseErrorContains.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:480:NoteResponseErrorContains", + "sha256": "b24cbaf59c23c2efc26d08644b54951508711abde857115c901b6e76ed41a969", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:486:NoteDeleteResponse", + "sha256": "9a59cc5e20d7995a2a66c78c97930d56855648d8da2291aaccee3517277fbcc0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:829:NOTE_I2C_ADDR_DEFAULT", + "sha256": "85bec6adff6110ba7caa0f556a9f1fd88283e210b79a8218b710940a98b5aead", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:833:NOTE_I2C_HEADER_SIZE", + "sha256": "94d3a37f6807b7a7637031bbfd130c3eceb2bf0532582f40c39bbf32eca2c10f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:843:NOTE_I2C_MAX_MAX", + "sha256": "f65c40b92132627ede4b3855ded77c759b7918668c7cac1ef9e8903217f34f52", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:845:NOTE_I2C_MAX_MAX", + "sha256": "5d07cf9fe74c707ea6b62af53803fe4ff0e77b6d9361844ac8cb16fbe83e2988", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "sha256": "4f86b67846ba960f723c0f3e3e101b90e3f7622ec629d1d32e2d7f858b6e4e6a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "sha256": "1091f80eb3bde13b9623b4fb0acf23672f22d9aaf8ba4f4eda5dbbf980a2a52b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "sha256": "212a0e5f24b692defcaf269beeef7a23c47aeb6ab982e1b2a8c47ba777e09baa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:876:NOTE_I2C_MAX_DEFAULT", + "sha256": "cceda64a118a9cfb1ab7435208317d7f0bfb803e51b118bb830eeddd8e1992df", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "sha256": "daeb769767c9308c28fab6cb5ff27c730ddc069cf5af3c341d2f07411df0dfaa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "sha256": "726fd76453167160917f87110e0f737377bff545631315173b9cf2e5657c84eb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:954:NOTE_C_LOG_LEVEL_WARN", + "sha256": "3d75158ae287afd2827860b24c762cbf2a3d4075eafe281ada4a68bbf01d53d5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "sha256": "5872d17496e8f39a5fc259a1e76eb77fa49161d466ae4a256784ecbdb27fd87b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:956:NOTE_C_LOG_LEVEL_DEBUG", + "sha256": "f9844b3f393ce398a7d0fd9bde6b1c3362a61613901a427d3816738c37992915", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "sha256": "0680c4a502381d21e49f32b4593b784a46a912044e02594b4660e73ad7bd4cca", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:990:NOTE_C_LOG_ERROR", + "sha256": "0e8db547cfbb4ebec3649ee0c8977f1e4fd62fbe78eef40c1afd1872cfa82f4b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:998:NOTE_C_LOG_WARN", + "sha256": "d7dfc06c7a23048d4b9f59a280959ee6031fb02895035173bc4f871b8b2d2c76", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1006:NOTE_C_LOG_INFO", + "sha256": "b00a071ba5f0fa1c50c7dc5a006490ddc37e9371d8fcaca5233c1ebcda8b06dc", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "sha256": "baf1488ad1f6ab6be6d0dcf1a5457ebbdbe9662762d4aaed6fa3778858368d24", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "sha256": "fe670c269c2402d7f654bb4eb37667e045934a4ef7d1eec658b4d4f8a1b2b99b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1028:NOTE_C_LOG_LEVEL", + "sha256": "b14037319a5c41d3c4f3d8ada0ebc4e91c5cc5720c5cc9a0c1b2c3946d26d66d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1400:JTYPE_NOT_PRESENT", + "sha256": "c61eb6724cecd3e5fc6f9c3815a845537a3d1e4193a3d2372d6eb592c4f47a47", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1401:JTYPE_BOOL_TRUE", + "sha256": "2893be495ea9dc33a8a6d851fd08caef80490a42750404696a520c09482cba4b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "sha256": "f5d77651f97ad3763323528e92fe51849a664495bf8065d296e4dd20ac9239c8", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1403__JTYPE_BOOL.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1403:JTYPE_BOOL", + "sha256": "a63fa9c29c47aa73a3fe2e8abf52e9f869ce659afc673bf5e7aa7e590ebf4e8e", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1404__JTYPE_NULL.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1404:JTYPE_NULL", + "sha256": "185af19bdbb574be9b3241ab8b46bc6e2d1275884a27b647211606d10674a9aa", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "sha256": "c4c748699ae3099f09610a2f2a01e2ef55d3b61907bc7dfb0fb0f0a74a51fea9", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1406__JTYPE_NUMBER.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1406:JTYPE_NUMBER", + "sha256": "c9ef2137b7ba52e2adfaa36cdb8e2fd10b6e63dc28ca8b3af2a3c73978c0441d", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1407:JTYPE_STRING_BLANK", + "sha256": "714663b11dd943c44646b0ed4f97330047fde758062934642544fc85dc8b5a0f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1408:JTYPE_STRING_ZERO", + "sha256": "22029865404e832bc048c7051f6bdde1e85fc4143440feca2d3ea0f6bbdc0692", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1409:JTYPE_STRING_NUMBER", + "sha256": "de08981b57a5ec5699abce462345fc24a1aeed619cefbb872df2d7486b268e53", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1410:JTYPE_STRING_BOOL_TRUE", + "sha256": "2f439e7a682befb068808264673d051558ee0aaa11449fda1337c70b046a4b29", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1411:JTYPE_STRING_BOOL_FALSE", + "sha256": "ff103c38a5bd93adca1307098677491c234010a07eccb6fc5d813b4e5e93d3bd", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1412__JTYPE_STRING.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1412:JTYPE_STRING", + "sha256": "0d824917ba7c4dbd6e601990b9ac46b7c380b6e7acbec985b01936d0b617756c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1413__JTYPE_OBJECT.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1413:JTYPE_OBJECT", + "sha256": "3cd9ed89fdd867aa3871c30f0e6e526e1b042a3674d507a428eeeb05c473ae2f", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1414__JTYPE_ARRAY.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1414:JTYPE_ARRAY", + "sha256": "81c5943fbe3052f61747919f5a7b092cba0dc0d912356b601f5ef1d639226c42", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1440__JGetObjectItemName.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1440:JGetObjectItemName", + "sha256": "f98ac4a7871e82cd5303f8e94f84f9ab76c2b8e1cf6be1ccc841f9cea39d1771", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1443__JNTOA_PRECISION.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1443:JNTOA_PRECISION", + "sha256": "7e70ef34433fc1d0cf20af3d85384d93ecd50ac53335fcb8a47d08e3b254b16b", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1444:JNTOA_MAX", + "sha256": "f66273ba6bc394fa5efbc1c5d478cbd58ee12b83ff94e6b9c807074bd443f1c5", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L1523__typedef_1523.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:1523:typedef_1523", + "sha256": "957e581603ed8148b2e3a8018b94ee58ac15e83ef3801f6e709e73f6d2af7230", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "sha256": "696103e516b79340c075d5cb026c81e202009b628f170f400b84a3222d65a2cc", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "sha256": "c02187bbe0564131c138b377e8820deb7e11b102df2cb696a2b373477fab0ac7", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2033__NoteSend.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2033:NoteSend", + "sha256": "fa758b89a1797799733c167b255cbd11b6d189aad282ad595a9e612fececb4bb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2102:NP_SEGTYPE_LEN", + "sha256": "def3633c53d34e1dc14768293059bbc4db0fb5fa4d67cd4f3b8dcff2e66ba5c0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2103:NP_SEGLEN_LEN", + "sha256": "fc8ac8aaa89164f0a74d9a4f528b855654990124f93ca7830b86dd43a760f78a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2104:NP_SEGHDR_LEN", + "sha256": "2568fd07c7207d24f1da78eb8fa9f24ad817d439e65cf2a4df7dee5e6a94eed6", + "text_status": "finalized" + }, + { + "artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "typedef:note.h:2109:typedef_2109", + "sha256": "a71c95e4aaecc997485000e9556dcabd0b5bd218d3907e871b4ba578cb17ea66", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2182__TBOOL.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2182:TBOOL", + "sha256": "d605c1391d4612157c123d19bd407fcc253865a8848c22249be2bce4d0f2ae28", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2183__TINT8.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2183:TINT8", + "sha256": "08a365504eb20a44cec6de4601a54a933958988b847d175f6b376e5a977d14d3", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2184__TINT16.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2184:TINT16", + "sha256": "e9ba798119715fc4e7c858cc5178f815e8a0583e54b01b0d4accffcc161f1f39", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2185__TINT24.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2185:TINT24", + "sha256": "e7af1c5209effe11c27887c448488f9c0138f654fdc60c3ac45cd2171c05ac12", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2186__TINT32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2186:TINT32", + "sha256": "3cfa8001d826412f3ac1ef8247b3f07def438f82954d2800a72c9f3d082251ed", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2187__TINT64.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2187:TINT64", + "sha256": "51d391230d03437313d0b7135df41cf1e4e1612c99852bcc078be57965c91cf0", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2188__TUINT8.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2188:TUINT8", + "sha256": "97cc141333e306249296f3e756fbd593a15739d9c3b0f13019285c82144d4f9a", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2189__TUINT16.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2189:TUINT16", + "sha256": "5c17700e0274117f87ba355cd569b2582fd778aa79a524f327d4958f44afb131", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2190__TUINT24.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2190:TUINT24", + "sha256": "79cef2a9e6e568671f0da9703ea68c30d69482f2fc3200824a2f2d959a315a57", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2191__TUINT32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2191:TUINT32", + "sha256": "1b04aca5e26d7e453c8d0422ff20242cb7195e33c627c0c37278518d89c39936", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2192__TFLOAT16.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2192:TFLOAT16", + "sha256": "2143172251f31e2d54d19b0e99c7b6867d130a6366098eb382aa8a2d3b37f24c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2193__TFLOAT32.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2193:TFLOAT32", + "sha256": "6149a4f0f15664ab381a676de4ec5a4bcd795c5446429c9eb19a968a42a347cb", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2194__TFLOAT64.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2194:TFLOAT64", + "sha256": "960a69685a0aec071897ddfdcb8a4e5fc1633ebf0f9bdf5b62d45e700cb6c666", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2195__TSTRING.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2195:TSTRING", + "sha256": "1b5bef54c9bd3e9da3945141ce7870c34f48ffe035d3115d2ea27b4add39028c", + "text_status": "finalized" + }, + { + "artifact": "artifacts/macros/note_h__L2196__TSTRINGV.md", + "exists": true, + "graph_behavior_status": "finalized", + "lifecycle_status": "finalized", + "node_id": "macro:note.h:2196:TSTRINGV", + "sha256": "9296c0680dff255ce19b058fff0bc08a9a2e1fea01d999edfea8b38e374d053c", + "text_status": "finalized" + } + ], + "schema_version": 1, + "summary": { + "lifecycle_status_counts": { + "finalized": 585 + }, + "missing_artifacts": 0, + "orphan_artifacts": 640, + "tracked_artifacts": 585 + } +} diff --git a/source-research/inventory/claims-ledger.json b/source-research/inventory/claims-ledger.json new file mode 100644 index 00000000..474dad42 --- /dev/null +++ b/source-research/inventory/claims-ledger.json @@ -0,0 +1,495 @@ +{ + "claims": [ + { + "claim": "Binary store helpers combine JSON handshakes, raw chunked transport, newline framing, COBS encoding, MD5 status verification, explicit Notecard locking, and reset/error behavior.", + "claim_type": "architecture", + "evidence_refs": [ + "n_helpers.c:359", + "n_helpers.c:539", + "n_hooks.c:1068", + "n_hooks.c:1087", + "source-research/worker-reports/codecs-binary-portability.md", + "source-research/worker-reports/high-level-helpers.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-binary-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "NoteBinaryStoreTransmit mutates the caller buffer by shifting unencoded bytes, encoding at the front, appending newline, and sending raw chunks; on many failures it decodes back to restore caller data, but on success the buffer remains modified.", + "claim_type": "ownership", + "evidence_refs": [ + "n_helpers.c:539", + "source-research/worker-reports/codecs-binary-portability.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-binary-002", + "inference": false, + "status": "finalized" + }, + { + "claim": "Public NoteBinaryCodec* APIs wrap private COBS helpers that use newline as the EOP byte and XOR code/data bytes with EOP so encoded payload bytes do not contain newline.", + "claim_type": "architecture", + "evidence_refs": [ + "n_cobs.c:32", + "n_helpers.c:127", + "note.h:1598", + "source-research/worker-reports/codecs-binary-portability.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-codec-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "COBS decode returns only a decoded length and does not distinguish malformed or truncated input from valid short decode; wrapper buffer validation is strongest for documented in-place or encoded-buffer-sized usage.", + "claim_type": "security", + "evidence_refs": [ + "n_cobs.c:32", + "n_helpers.c:127", + "source-research/worker-reports/codecs-binary-portability.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-codec-002", + "inference": false, + "status": "finalized" + }, + { + "claim": "n_helpers.c is the high-level Notecard helper layer: most public helpers build JSON requests with NoteNewRequest or NoteNewCommand and then call NoteRequest, NoteRequestResponse, or raw transaction helpers.", + "claim_type": "architecture", + "evidence_refs": [ + "n_helpers.c:1", + "n_helpers.c:2083", + "source-research/worker-reports/high-level-helpers.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-helper-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "Most high-level helpers ignore JAdd* return values, so allocation failure while adding fields can produce partial requests instead of immediate local failure.", + "claim_type": "error_handling", + "evidence_refs": [ + "n_helpers.c:1", + "source-research/worker-reports/high-level-helpers.md", + "source-research/worker-reports/json-core.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-helper-002", + "inference": false, + "status": "finalized" + }, + { + "claim": "Current source attempts to insert user-agent body data for hub.set product requests after the request has already been serialized; source evidence does not support claiming that inserted body reaches the wire.", + "claim_type": "behavior", + "evidence_refs": [ + "n_request.c:437", + "n_request.c:481", + "source-research/worker-reports/high-level-helpers.md", + "source-research/worker-reports/request-orchestration.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-helper-003", + "inference": false, + "status": "finalized" + }, + { + "claim": "The SDK uses a global function-pointer hook registry in n_hooks.c for platform services such as debug output, mutexes, transaction lifecycle, allocation, timing, serial, I2C, and active-interface dispatch.", + "claim_type": "architecture", + "evidence_refs": [ + "n_hooks.c:45", + "n_hooks.c:63", + "n_hooks.c:75", + "n_hooks.c:189", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-hook-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "`_LockNote` is an internal macro alias for `_noteLockNote`, and `_noteLockNote` conditionally dispatches the caller-owned `hookLockNote` mutex function pointer.", + "claim_type": "behavior", + "evidence_refs": [ + "n_lib.h:226", + "n_hooks.c:657", + "source-research/artifacts/macros/n_lib_h__L226__LockNote.md", + "source-research/artifacts/functions/n_hooks_c__L657__noteLockNote.md" + ], + "gaps": [ + "Runtime target of `hookLockNote` is supplied by external adapter code and is not statically resolvable in this repository." + ], + "id": "claim-hook-002", + "inference": false, + "status": "finalized" + }, + { + "claim": "`_noteSetActiveInterface` selects internal transport dispatch pointers for serial or I2C and clears them for NONE or unrecognized interface values.", + "claim_type": "boundary", + "evidence_refs": [ + "n_hooks.c:214", + "n_hooks.c:224", + "n_hooks.c:230", + "n_hooks.c:236", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-hook-003", + "inference": false, + "status": "finalized" + }, + { + "claim": "Hook registration setters store raw caller-owned function pointers; default setters only populate NULL slots, while non-default setters overwrite existing values and can set hooks to NULL.", + "claim_type": "ownership", + "evidence_refs": [ + "n_hooks.c:248", + "n_hooks.c:266", + "n_hooks.c:356", + "n_hooks.c:381", + "n_hooks.c:399", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-hook-004", + "inference": false, + "status": "finalized" + }, + { + "claim": "Runtime hook wrappers are null-tolerant and provide defaults such as no-op free/delay/locks/debug, NULL allocation, zero milliseconds, true reset/transaction-start defaults, false serial-available, and error strings for inactive transport dispatch.", + "claim_type": "error_handling", + "evidence_refs": [ + "n_hooks.c:520", + "n_hooks.c:528", + "n_hooks.c:569", + "n_hooks.c:595", + "n_hooks.c:616", + "n_hooks.c:681", + "n_hooks.c:855", + "n_hooks.c:934", + "n_hooks.c:1042", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-hook-005", + "inference": false, + "status": "finalized" + }, + { + "claim": "Hook-layer concurrency is optional and global-state based: many setters/getters take `_LockNote`, but mutex setters/getters, debug getter, I2C address/MTU accessors, and active-interface getter do not all take that lock.", + "claim_type": "concurrency", + "evidence_refs": [ + "n_hooks.c:321", + "n_hooks.c:329", + "n_hooks.c:335", + "n_hooks.c:701", + "n_hooks.c:734", + "n_hooks.c:764", + "n_hooks.c:969", + "n_hooks.c:994", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-hook-006", + "inference": false, + "status": "finalized" + }, + { + "claim": "`NoteSetFnDisabled` disables active transport dispatch by setting the active interface to NONE, but it does not clear registered serial, I2C, mutex, debug, or system hook pointers.", + "claim_type": "behavior", + "evidence_refs": [ + "n_hooks.c:433", + "n_hooks.c:214", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-hook-007", + "inference": false, + "status": "finalized" + }, + { + "claim": "`_noteActiveInterface(void)` is declared internally but has no implementation or production caller found by exact source search.", + "claim_type": "boundary", + "evidence_refs": [ + "n_lib.h:140", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-hook-008", + "inference": false, + "status": "finalized" + }, + { + "claim": "The SDK embeds a cJSON-derived linked-node JSON core exposed through n_cjson.h and included by note.h; production code usually uses typed helper wrappers rather than raw JGetObjectItem.", + "claim_type": "architecture", + "evidence_refs": [ + "n_cjson.h:43", + "note.h:104", + "n_cjson_helpers.c:19", + "source-research/worker-reports/json-core.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-json-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "JSON allocation and freeing flow through JMalloc/JFree to _Malloc/_Free, which map to NoteMalloc/NoteFree and the platform allocator hooks installed by NoteSetFn or NoteSetFnDefault.", + "claim_type": "ownership", + "evidence_refs": [ + "n_cjson.c:204", + "n_lib.h:241", + "n_hooks.c:248", + "n_hooks.c:569", + "source-research/worker-reports/json-core.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-json-002", + "inference": false, + "status": "finalized" + }, + { + "claim": "JAddItemToArray/Object transfer child ownership to the parent on success and delete the child on invalid input or failure; JDetach returns caller-owned nodes and JDelete recursively frees owned children and strings.", + "claim_type": "ownership", + "evidence_refs": [ + "n_cjson.c:1860", + "n_cjson.c:2089", + "n_cjson.c:209", + "source-research/worker-reports/json-core.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-json-003", + "inference": false, + "status": "finalized" + }, + { + "claim": "JParse permits prefix parsing by default, while JParseWithOpts can require null termination; parsing uses a nesting limit, global parse-error state, and custom numeric conversion with bounded mantissa/exponent handling.", + "claim_type": "parsing", + "evidence_refs": [ + "n_cjson.c:300", + "n_cjson.c:976", + "n_cjson.c:985", + "n_atof.c:70", + "source-research/worker-reports/json-core.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-json-004", + "inference": false, + "status": "finalized" + }, + { + "claim": "Low-memory mode disables user-agent support, omits n_ua.c from the CMake target, disables request CRC paths, uses compact ERRSTR constants, and reduces allocation chunk size.", + "claim_type": "portability", + "evidence_refs": [ + "note.h:59", + "note.h:73", + "n_lib.h:64", + "CMakeLists.txt:97", + "source-research/worker-reports/high-level-helpers.md", + "source-research/inventory/graph-substrate.json", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-lowmem-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "strlcpy and strlcat are conditional bundled portability helpers: CMake detects platform symbols, publishes HAVE_STRLCPY/HAVE_STRLCAT compile definitions, and includes n_str.c only when either helper is missing.", + "claim_type": "portability", + "evidence_refs": [ + "CMakeLists.txt:44", + "CMakeLists.txt:79", + "note.h:1138", + "n_str.c:30", + "source-research/worker-reports/codecs-binary-portability.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-portability-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "The primary object request path is NoteRequest -> NoteRequestResponse -> NoteTransaction -> _noteTransactionShouldLock -> _noteJSONTransaction, with NoteRequestResponse consuming and deleting the input request object.", + "claim_type": "architecture", + "evidence_refs": [ + "n_request.c:220", + "n_request.c:228", + "n_request.c:250", + "n_request.c:413", + "n_hooks.c:1042", + "source-research/worker-reports/request-orchestration.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-request-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "NoteTransaction and _noteTransactionShouldLock do not delete the input request object; callers retain ownership unless they use consuming wrappers such as NoteRequestResponse or NoteRequestResponseWithRetry.", + "claim_type": "ownership", + "evidence_refs": [ + "n_request.c:220", + "n_request.c:413", + "n_helpers.c:392", + "n_helpers.c:653", + "source-research/worker-reports/request-orchestration.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-request-002", + "inference": false, + "status": "finalized" + }, + { + "claim": "NoteRequestResponseJSON is a separate raw newline-delimited JSON string API path that does not free caller request strings and returns caller-owned response strings.", + "claim_type": "public_api", + "evidence_refs": [ + "n_request.c:279", + "source-research/worker-reports/request-orchestration.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-request-003", + "inference": false, + "status": "finalized" + }, + { + "claim": "_noteTransaction_calculateTimeoutMs defaults to the inter-transaction timeout, honors milliseconds or seconds on note.add and web.* requests, and adds 1000 ms; the inspected implementation does not set a 90-second default for web.* despite a source comment.", + "claim_type": "behavior", + "evidence_refs": [ + "n_request.c:93", + "source-research/worker-reports/request-orchestration.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-request-004", + "inference": false, + "status": "finalized" + }, + { + "claim": "The active interface selects internal function-pointer dispatch: serial maps to serial reset/transaction/chunked functions, I2C maps to I2C reset/transaction/chunked functions, and NONE or invalid interface clears active dispatch pointers.", + "claim_type": "architecture", + "evidence_refs": [ + "n_hooks.c:214", + "n_hooks.c:224", + "n_hooks.c:230", + "n_hooks.c:236", + "source-research/worker-reports/transports.md", + "source-research/worker-reports/hooks-and-adapter-layer.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-transport-001", + "inference": false, + "status": "finalized" + }, + { + "claim": "I2C transactions use a priming zero-length receive query, drain after newline while available bytes remain, chunk by I2C MTU and 0xffff, and reset I2C after transmit errors.", + "claim_type": "behavior", + "evidence_refs": [ + "n_i2c.c:48", + "n_i2c.c:87", + "n_i2c.c:338", + "n_i2c.c:456", + "source-research/worker-reports/transports.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-transport-002", + "inference": false, + "status": "finalized" + }, + { + "claim": "Serial transactions normalize request endings to CRLF, read one byte at a time until newline or buffer continuation, and cannot surface platform transmit errors because serial transmit hooks return void.", + "claim_type": "behavior", + "evidence_refs": [ + "n_serial.c:35", + "n_serial.c:237", + "n_serial.c:303", + "source-research/worker-reports/transports.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-transport-003", + "inference": false, + "status": "finalized" + }, + { + "claim": "COBS framing is owned by binary helpers, not the I2C or serial transport implementations; transports move raw newline-framed bytes through hook dispatch.", + "claim_type": "boundary", + "evidence_refs": [ + "n_helpers.c:81", + "n_helpers.c:631", + "n_i2c.c:338", + "n_serial.c:237", + "source-research/worker-reports/transports.md", + "source-research/worker-reports/codecs-binary-portability.md", + "source-research/inventory/artifact-status.json", + "source-research/inventory/evidence-validation.json" + ], + "gaps": [], + "id": "claim-transport-004", + "inference": false, + "status": "finalized" + } + ], + "finalized_at_utc": "2026-06-29T22:42:19+00:00", + "schema_version": 1, + "summary": { + "finalized": 29, + "generated": 0, + "inferred": 0, + "inspected": 0, + "total": 29 + } +} diff --git a/source-research/inventory/cmake-ast-validation.json b/source-research/inventory/cmake-ast-validation.json new file mode 100644 index 00000000..5c1ead78 --- /dev/null +++ b/source-research/inventory/cmake-ast-validation.json @@ -0,0 +1,2983 @@ +{ + "ambiguous_edge_candidates": [], + "ast_function_definitions": 335, + "ast_project_call_edges": 768, + "ast_project_call_edges_missing_from_graph_by_name": [ + { + "caller": "JDelete", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "JFree", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "JMalloc", + "caller_file": "n_cjson.c", + "target": "NoteMalloc" + }, + { + "caller": "JPrintBuffered", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "JPrintBuffered", + "caller_file": "n_cjson.c", + "target": "NoteMalloc" + }, + { + "caller": "_add_item_to_object", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "_ensure", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "_ensure", + "caller_file": "n_cjson.c", + "target": "NoteMalloc" + }, + { + "caller": "_jNew_Item", + "caller_file": "n_cjson.c", + "target": "NoteMalloc" + }, + { + "caller": "_j_strdup", + "caller_file": "n_cjson.c", + "target": "NoteMalloc" + }, + { + "caller": "_parse_string", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "_parse_string", + "caller_file": "n_cjson.c", + "target": "NoteMalloc" + }, + { + "caller": "_print", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "_print", + "caller_file": "n_cjson.c", + "target": "NoteMalloc" + }, + { + "caller": "_replace_item_in_object", + "caller_file": "n_cjson.c", + "target": "NoteFree" + }, + { + "caller": "JAddBinaryToObject", + "caller_file": "n_cjson_helpers.c", + "target": "NoteFree" + }, + { + "caller": "JAddBinaryToObject", + "caller_file": "n_cjson_helpers.c", + "target": "NoteMalloc" + }, + { + "caller": "JAllocString", + "caller_file": "n_cjson_helpers.c", + "target": "NoteMalloc" + }, + { + "caller": "JGetBinaryFromObject", + "caller_file": "n_cjson_helpers.c", + "target": "NoteMalloc" + }, + { + "caller": "NoteAuxSerialFlowControl", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteAuxSerialFlowControl", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryCodecDecode", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryCodecDecode", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryCodecEncode", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryCodecEncode", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreDecodedLength", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreDecodedLength", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreEncodedLength", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreEncodedLength", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "target": "_noteChunkedReceive" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteBinaryStoreReset", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreReset", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "target": "_noteChunkedTransmit" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteDebugSyncStatus", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteDebugSyncStatus", + "caller_file": "n_helpers.c", + "target": "NoteGetMs" + }, + { + "caller": "NoteFactoryReset", + "caller_file": "n_helpers.c", + "target": "NoteDelayMs" + }, + { + "caller": "NoteGetContact", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetEnv", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetLocation", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetLocationMode", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetNetStatus", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetServiceConfigST", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetStatusST", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetTemperature", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetVersion", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteGetVoltage", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteIsConnectedST", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteLocationValidST", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteMemAvailable", + "caller_file": "n_helpers.c", + "target": "NoteFree" + }, + { + "caller": "NoteMemAvailable", + "caller_file": "n_helpers.c", + "target": "NoteMalloc" + }, + { + "caller": "NotePayloadAddSegment", + "caller_file": "n_helpers.c", + "target": "NoteFree" + }, + { + "caller": "NotePayloadAddSegment", + "caller_file": "n_helpers.c", + "target": "NoteMalloc" + }, + { + "caller": "NotePayloadFree", + "caller_file": "n_helpers.c", + "target": "NoteFree" + }, + { + "caller": "NotePayloadRetrieveAfterSleep", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NotePayloadRetrieveAfterSleep", + "caller_file": "n_helpers.c", + "target": "NoteMalloc" + }, + { + "caller": "NotePayloadSaveAndSleep", + "caller_file": "n_helpers.c", + "target": "NoteFree" + }, + { + "caller": "NotePayloadSaveAndSleep", + "caller_file": "n_helpers.c", + "target": "NoteMalloc" + }, + { + "caller": "NoteSleep", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteSleep", + "caller_file": "n_helpers.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteTimeST", + "caller_file": "n_helpers.c", + "target": "JDelete" + }, + { + "caller": "NoteTimeST", + "caller_file": "n_helpers.c", + "target": "NoteGetMs" + }, + { + "caller": "NoteTimeSet", + "caller_file": "n_helpers.c", + "target": "NoteGetMs" + }, + { + "caller": "_setTime", + "caller_file": "n_helpers.c", + "target": "NoteGetMs" + }, + { + "caller": "_timerExpiredSecs", + "caller_file": "n_helpers.c", + "target": "NoteGetMs" + }, + { + "caller": "NoteGetFn", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFn", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteGetFnI2C", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFnI2C", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteGetFnSerial", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFnSerial", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteGetFnTransaction", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFnTransaction", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetActiveInterface", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetActiveInterface", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFn", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFn", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnDebugOutput", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnDebugOutput", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnDefault", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnDefault", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnDisabled", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnDisabled", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnI2C", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnI2C", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnI2CDefault", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnI2CDefault", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnSerial", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnSerial", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnSerialDefault", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnSerialDefault", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnTransaction", + "caller_file": "n_hooks.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnTransaction", + "caller_file": "n_hooks.c", + "target": "_noteUnlockNote" + }, + { + "caller": "_delayIO", + "caller_file": "n_i2c.c", + "target": "NoteDelayMs" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteDelayMs" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteGetMs" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteI2CMax" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "target": "_noteI2CReceive" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "NoteDelayMs" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "NoteI2CMax" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "_noteI2CReset" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "_noteI2CTransmit" + }, + { + "caller": "_i2cNoteChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteChunkedReceive", + "caller_file": "n_i2c.c", + "target": "NoteUnlockI2C" + }, + { + "caller": "_i2cNoteChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteChunkedTransmit", + "caller_file": "n_i2c.c", + "target": "NoteUnlockI2C" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "target": "NoteDelayMs" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "target": "NoteGetMs" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "target": "_noteI2CReceive" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteDelayMs" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteGetMs" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteI2CMax" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "NoteUnlockI2C" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "_noteI2CReceive" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "_noteI2CReset" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "target": "_noteI2CTransmit" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "target": "NoteFree" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "target": "NoteMalloc" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "target": "NoteUnlockI2C" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "target": "NoteFree" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "target": "NoteGetMs" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "target": "_noteJSONTransaction" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "target": "_noteLockNote" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "target": "_noteTransactionStart" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "target": "_noteTransactionStop" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "NoteFree" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "NoteMalloc" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "_noteJSONTransaction" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "_noteTransactionStart" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "_noteTransactionStop" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "target": "_noteUnlockNote" + }, + { + "caller": "NoteRequestResponseWithRetry", + "caller_file": "n_request.c", + "target": "NoteGetMs" + }, + { + "caller": "NoteReset", + "caller_file": "n_request.c", + "target": "_noteHardReset" + }, + { + "caller": "NoteReset", + "caller_file": "n_request.c", + "target": "_noteLockNote" + }, + { + "caller": "NoteReset", + "caller_file": "n_request.c", + "target": "_noteUnlockNote" + }, + { + "caller": "_crcAdd", + "caller_file": "n_request.c", + "target": "NoteMalloc" + }, + { + "caller": "_errDoc", + "caller_file": "n_request.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_errDoc", + "caller_file": "n_request.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "NoteDelayMs" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "NoteGetMs" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "NoteI2CAddress" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "NoteLockI2C" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "NoteUnlockI2C" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "_noteI2CReceive" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "_noteSerialAvailable" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "target": "_noteSerialReceive" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "NoteDelayMs" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "NoteFree" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "_noteHardReset" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "_noteJSONTransaction" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "_noteLockNote" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "_noteTransactionStart" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "_noteTransactionStop" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "target": "_noteUnlockNote" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "target": "NoteDelayMs" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "target": "NoteGetMs" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "target": "_noteSerialAvailable" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "target": "_noteSerialReceive" + }, + { + "caller": "_serialChunkedTransmit", + "caller_file": "n_serial.c", + "target": "NoteDelayMs" + }, + { + "caller": "_serialChunkedTransmit", + "caller_file": "n_serial.c", + "target": "_noteSerialTransmit" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "NoteDelayMs" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "NoteGetMs" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "_noteSerialAvailable" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "_noteSerialReceive" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "_noteSerialReset" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "target": "_noteSerialTransmit" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "NoteDebugWithLevel" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "NoteDelayMs" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "NoteFree" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "NoteGetMs" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "NoteMalloc" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "_noteSerialAvailable" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "target": "_noteSerialTransmit" + } + ], + "compile_database": "/Users/zak/Development/GitHub/blues/note-c/source-research/inventory/compile_commands.default.json", + "compiled_files": [ + "n_atof.c", + "n_b64.c", + "n_cjson.c", + "n_cjson_helpers.c", + "n_cobs.c", + "n_const.c", + "n_ftoa.c", + "n_helpers.c", + "n_hooks.c", + "n_i2c.c", + "n_md5.c", + "n_printf.c", + "n_request.c", + "n_serial.c", + "n_ua.c" + ], + "covered_by_existing_macro_alias_edges": [ + { + "caller": "JDelete", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "JFree", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "JMalloc", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "JPrintBuffered", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "JPrintBuffered", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_add_item_to_object", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "_ensure", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "_ensure", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_jNew_Item", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_j_strdup", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_parse_string", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "_parse_string", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_print", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "_print", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_replace_item_in_object", + "caller_file": "n_cjson.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "JAddBinaryToObject", + "caller_file": "n_cjson_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "JAddBinaryToObject", + "caller_file": "n_cjson_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "JAllocString", + "caller_file": "n_cjson_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "JGetBinaryFromObject", + "caller_file": "n_cjson_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "NoteAuxSerialFlowControl", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteAuxSerialFlowControl", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryCodecDecode", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryCodecDecode", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryCodecEncode", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryCodecEncode", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreDecodedLength", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreDecodedLength", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreEncodedLength", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreEncodedLength", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:239:_ChunkedReceive", + "via_name": "_ChunkedReceive" + }, + "target": "_noteChunkedReceive" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteBinaryStoreReceive", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteBinaryStoreReset", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreReset", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:240:_ChunkedTransmit", + "via_name": "_ChunkedTransmit" + }, + "target": "_noteChunkedTransmit" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteBinaryStoreTransmit", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteDebugSyncStatus", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteDebugSyncStatus", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "NoteFactoryReset", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "NoteGetContact", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetEnv", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetLocation", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetLocationMode", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetNetStatus", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetServiceConfigST", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetStatusST", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetTemperature", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetVersion", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteGetVoltage", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteIsConnectedST", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteLocationValidST", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteMemAvailable", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "NoteMemAvailable", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "NotePayloadAddSegment", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "NotePayloadAddSegment", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "NotePayloadFree", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "NotePayloadRetrieveAfterSleep", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NotePayloadRetrieveAfterSleep", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "NotePayloadSaveAndSleep", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "NotePayloadSaveAndSleep", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "NoteSleep", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteSleep", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteTimeST", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:note.h:486:NoteDeleteResponse", + "via_name": "NoteDeleteResponse" + }, + "target": "JDelete" + }, + { + "caller": "NoteTimeST", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "NoteTimeSet", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_setTime", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_timerExpiredSecs", + "caller_file": "n_helpers.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "NoteGetFn", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFn", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteGetFnI2C", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFnI2C", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteGetFnSerial", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFnSerial", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteGetFnTransaction", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteGetFnTransaction", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetActiveInterface", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetActiveInterface", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFn", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFn", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnDebugOutput", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnDebugOutput", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnDefault", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnDefault", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnDisabled", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnDisabled", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnI2C", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnI2C", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnI2CDefault", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnI2CDefault", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnSerial", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnSerial", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnSerialDefault", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnSerialDefault", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteSetFnTransaction", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteSetFnTransaction", + "caller_file": "n_hooks.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "_delayIO", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:247:_I2CAddress", + "via_name": "_I2CAddress" + }, + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:248:_I2CMax", + "via_name": "_I2CMax" + }, + "target": "NoteI2CMax" + }, + { + "caller": "_i2cChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:236:_I2CReceive", + "via_name": "_I2CReceive" + }, + "target": "_noteI2CReceive" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:247:_I2CAddress", + "via_name": "_I2CAddress" + }, + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:248:_I2CMax", + "via_name": "_I2CMax" + }, + "target": "NoteI2CMax" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:234:_I2CReset", + "via_name": "_I2CReset" + }, + "target": "_noteI2CReset" + }, + { + "caller": "_i2cChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:235:_I2CTransmit", + "via_name": "_I2CTransmit" + }, + "target": "_noteI2CTransmit" + }, + { + "caller": "_i2cNoteChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:245:_LockI2C", + "via_name": "_LockI2C" + }, + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteChunkedReceive", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:246:_UnlockI2C", + "via_name": "_UnlockI2C" + }, + "target": "NoteUnlockI2C" + }, + { + "caller": "_i2cNoteChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:245:_LockI2C", + "via_name": "_LockI2C" + }, + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteChunkedTransmit", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:246:_UnlockI2C", + "via_name": "_UnlockI2C" + }, + "target": "NoteUnlockI2C" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:247:_I2CAddress", + "via_name": "_I2CAddress" + }, + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cNoteQueryLength", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:236:_I2CReceive", + "via_name": "_I2CReceive" + }, + "target": "_noteI2CReceive" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:247:_I2CAddress", + "via_name": "_I2CAddress" + }, + "target": "NoteI2CAddress" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:248:_I2CMax", + "via_name": "_I2CMax" + }, + "target": "NoteI2CMax" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:245:_LockI2C", + "via_name": "_LockI2C" + }, + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:246:_UnlockI2C", + "via_name": "_UnlockI2C" + }, + "target": "NoteUnlockI2C" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:236:_I2CReceive", + "via_name": "_I2CReceive" + }, + "target": "_noteI2CReceive" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:234:_I2CReset", + "via_name": "_I2CReset" + }, + "target": "_noteI2CReset" + }, + { + "caller": "_i2cNoteReset", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:235:_I2CTransmit", + "via_name": "_I2CTransmit" + }, + "target": "_noteI2CTransmit" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:245:_LockI2C", + "via_name": "_LockI2C" + }, + "target": "NoteLockI2C" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_i2cNoteTransaction", + "caller_file": "n_i2c.c", + "covered_by": { + "via": "macro:n_lib.h:246:_UnlockI2C", + "via_name": "_UnlockI2C" + }, + "target": "NoteUnlockI2C" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:238:_Transaction", + "via_name": "_Transaction" + }, + "target": "_noteJSONTransaction" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:228:_TransactionStart", + "via_name": "_TransactionStart" + }, + "target": "_noteTransactionStart" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:229:_TransactionStop", + "via_name": "_TransactionStop" + }, + "target": "_noteTransactionStop" + }, + { + "caller": "NotePing", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:238:_Transaction", + "via_name": "_Transaction" + }, + "target": "_noteJSONTransaction" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:228:_TransactionStart", + "via_name": "_TransactionStart" + }, + "target": "_noteTransactionStart" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:229:_TransactionStop", + "via_name": "_TransactionStop" + }, + "target": "_noteTransactionStop" + }, + { + "caller": "NoteRequestResponseJSON", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "NoteRequestResponseWithRetry", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "NoteReset", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:237:_Reset", + "via_name": "_Reset" + }, + "target": "_noteHardReset" + }, + { + "caller": "NoteReset", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "NoteReset", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "_crcAdd", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_errDoc", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_errDoc", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:247:_I2CAddress", + "via_name": "_I2CAddress" + }, + "target": "NoteI2CAddress" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:245:_LockI2C", + "via_name": "_LockI2C" + }, + "target": "NoteLockI2C" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:246:_UnlockI2C", + "via_name": "_UnlockI2C" + }, + "target": "NoteUnlockI2C" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:236:_I2CReceive", + "via_name": "_I2CReceive" + }, + "target": "_noteI2CReceive" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:232:_SerialAvailable", + "via_name": "_SerialAvailable" + }, + "target": "_noteSerialAvailable" + }, + { + "caller": "_notePingDrainInput", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:233:_SerialReceive", + "via_name": "_SerialReceive" + }, + "target": "_noteSerialReceive" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:237:_Reset", + "via_name": "_Reset" + }, + "target": "_noteHardReset" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:238:_Transaction", + "via_name": "_Transaction" + }, + "target": "_noteJSONTransaction" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:226:_LockNote", + "via_name": "_LockNote" + }, + "target": "_noteLockNote" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:228:_TransactionStart", + "via_name": "_TransactionStart" + }, + "target": "_noteTransactionStart" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:229:_TransactionStop", + "via_name": "_TransactionStop" + }, + "target": "_noteTransactionStop" + }, + { + "caller": "_noteTransactionShouldLock", + "caller_file": "n_request.c", + "covered_by": { + "via": "macro:n_lib.h:227:_UnlockNote", + "via_name": "_UnlockNote" + }, + "target": "_noteUnlockNote" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:232:_SerialAvailable", + "via_name": "_SerialAvailable" + }, + "target": "_noteSerialAvailable" + }, + { + "caller": "_serialChunkedReceive", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:233:_SerialReceive", + "via_name": "_SerialReceive" + }, + "target": "_noteSerialReceive" + }, + { + "caller": "_serialChunkedTransmit", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_serialChunkedTransmit", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:231:_SerialTransmit", + "via_name": "_SerialTransmit" + }, + "target": "_noteSerialTransmit" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:232:_SerialAvailable", + "via_name": "_SerialAvailable" + }, + "target": "_noteSerialAvailable" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:233:_SerialReceive", + "via_name": "_SerialReceive" + }, + "target": "_noteSerialReceive" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:230:_SerialReset", + "via_name": "_SerialReset" + }, + "target": "_noteSerialReset" + }, + { + "caller": "_serialNoteReset", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:231:_SerialTransmit", + "via_name": "_SerialTransmit" + }, + "target": "_noteSerialTransmit" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevel" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:note.h:990:NOTE_C_LOG_ERROR", + "via_name": "NOTE_C_LOG_ERROR" + }, + "target": "NoteDebugWithLevelLn" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:244:_DelayMs", + "via_name": "_DelayMs" + }, + "target": "NoteDelayMs" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:242:_Free", + "via_name": "_Free" + }, + "target": "NoteFree" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:243:_GetMs", + "via_name": "_GetMs" + }, + "target": "NoteGetMs" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:241:_Malloc", + "via_name": "_Malloc" + }, + "target": "NoteMalloc" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:232:_SerialAvailable", + "via_name": "_SerialAvailable" + }, + "target": "_noteSerialAvailable" + }, + { + "caller": "_serialNoteTransaction", + "caller_file": "n_serial.c", + "covered_by": { + "via": "macro:n_lib.h:231:_SerialTransmit", + "via_name": "_SerialTransmit" + }, + "target": "_noteSerialTransmit" + } + ], + "edge_candidates": [], + "failures": [], + "generated_at_utc": "2026-07-02T23:45:39+00:00", + "graph_defs_not_seen_by_ast": [ + { + "file": "n_hooks.c", + "name": "NoteGetFnHeartbeat" + }, + { + "file": "n_hooks.c", + "name": "NoteSetFnHeartbeat" + }, + { + "file": "n_hooks.c", + "name": "_n_ptoa32" + }, + { + "file": "n_hooks.c", + "name": "_noteHeartbeat" + } + ], + "graph_function_definitions_in_compiled_source_files": 339, + "missing_ast_definitions_in_graph": [], + "notes": [ + "Apple Clang JSON may omit isThisDeclarationADefinition; definitions are detected as FunctionDecl nodes with direct CompoundStmt children.", + "Source files are taken from AST file locations when available and fall back to the compile command source only when the node is not from an included file.", + "Macro or wrapper expansion paths already present in the graph are counted as coverage and are not emitted as duplicate direct-call candidates." + ], + "repo_root": "/Users/zak/Development/GitHub/blues/note-c", + "schema_version": 1, + "summary": { + "ambiguous_edge_candidates": 0, + "ast_function_definitions": 335, + "ast_project_call_edges": 768, + "direct_missing_call_edges": 207, + "edge_candidates": 0, + "failures": 0, + "graph_defs_not_seen_by_ast": 4, + "macro_alias_covered_missing_call_edges": 207, + "missing_ast_definitions_in_graph": 0, + "translation_units": 15, + "unresolved_missing_call_edges": 0, + "warnings": 2 + }, + "tool": "cmake_ast_validate.py", + "translation_units": 15, + "unresolved_project_call_edges_missing_from_graph": [], + "variant_name": "default", + "warnings": [ + { + "file": "n_cjson.c", + "stderr_tail": "/Users/zak/Development/GitHub/blues/note-c/n_cjson.c:307:19: warning: implicit conversion from 'long long' to 'JNUMBER' (aka 'double') changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]\n 307 | if (number >= JINTEGER_MAX) {\n | ~~ ^~~~~~~~~~~~\n/Users/zak/Development/GitHub/blues/note-c/note.h:95:22: note: expanded from macro 'JINTEGER_MAX'\n 95 | #define JINTEGER_MAX INT64_MAX\n | ^~~~~~~~~\n/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:94:26: note: expanded from macro 'INT64_MAX'\n 94 | #define INT64_MAX 9223372036854775807LL\n | ^~~~~~~~~~~~~~~~~~~~~\n/Users/zak/Development/GitHub/blues/note-c/n_cjson.c:329:19: warning: implicit conversion from 'long long' to 'JNUMBER' (aka 'double') changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]\n 329 | if (number >= JINTEGER_MAX) {\n | ~~ ^~~~~~~~~~~~\n/Users/zak/Development/GitHub/blues/note-c/note.h:95:22: note: expanded from macro 'JINTEGER_MAX'\n 95 | #define JINTEGER_MAX INT64_MAX\n | ^~~~~~~~~\n/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:94:26: note: expanded from macro 'INT64_MAX'\n 94 | #define INT64_MAX 9223372036854775807LL\n | ^~~~~~~~~~~~~~~~~~~~~\n/Users/zak/Development/GitHub/blues/note-c/n_cjson.c:2338:20: warning: implicit conversion from 'long long' to 'JNUMBER' (aka 'double') changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]\n 2338 | if (num >= JINTEGER_MAX) {\n | ~~ ^~~~~~~~~~~~\n/Users/zak/Development/GitHub/blues/note-c/note.h:95:22: note: expanded from macro 'JINTEGER_MAX'\n 95 | #define JINTEGER_MAX INT64_MAX\n | ^~~~~~~~~\n/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:94:26: note: expanded from macro 'INT64_MAX'\n 94 | #define INT64_MAX 9223372036854775807LL\n | ^~~~~~~~~~~~~~~~~~~~~\n3 warnings generated.\n" + }, + { + "file": "n_ftoa.c", + "stderr_tail": "/Users/zak/Development/GitHub/blues/note-c/n_ftoa.c:473:18: warning: implicit conversion from 'unsigned long' to 'JNUMBER' (aka 'double') changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-const-int-float-conversion]\n 473 | if (value >= UINTMAX_MAX) {\n | ~~ ^~~~~~~~~~~\n/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:161:27: note: expanded from macro 'UINTMAX_MAX'\n 161 | #define UINTMAX_MAX UINTMAX_C(18446744073709551615)\n | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:74:23: note: expanded from macro 'UINTMAX_C'\n 74 | #define UINTMAX_C(v) (v ## UL)\n | ^~~~~~~\n:13:1: note: expanded from here\n 13 | 18446744073709551615UL\n | ^~~~~~~~~~~~~~~~~~~~~~\n1 warning generated.\n" + } + ] +} diff --git a/source-research/inventory/compile_commands.default.json b/source-research/inventory/compile_commands.default.json new file mode 100644 index 00000000..6e0243fc --- /dev/null +++ b/source-research/inventory/compile_commands.default.json @@ -0,0 +1,92 @@ +[ +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_atof.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_atof.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_atof.c", + "output": "CMakeFiles/note_c_lib.dir/n_atof.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_b64.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_b64.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_b64.c", + "output": "CMakeFiles/note_c_lib.dir/n_b64.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_cjson.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_cjson.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_cjson.c", + "output": "CMakeFiles/note_c_lib.dir/n_cjson.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_cjson_helpers.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_cjson_helpers.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_cjson_helpers.c", + "output": "CMakeFiles/note_c_lib.dir/n_cjson_helpers.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_cobs.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_cobs.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_cobs.c", + "output": "CMakeFiles/note_c_lib.dir/n_cobs.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_const.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_const.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_const.c", + "output": "CMakeFiles/note_c_lib.dir/n_const.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_ftoa.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_ftoa.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_ftoa.c", + "output": "CMakeFiles/note_c_lib.dir/n_ftoa.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_helpers.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_helpers.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_helpers.c", + "output": "CMakeFiles/note_c_lib.dir/n_helpers.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_hooks.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_hooks.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_hooks.c", + "output": "CMakeFiles/note_c_lib.dir/n_hooks.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_i2c.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_i2c.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_i2c.c", + "output": "CMakeFiles/note_c_lib.dir/n_i2c.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_md5.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_md5.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_md5.c", + "output": "CMakeFiles/note_c_lib.dir/n_md5.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_printf.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_printf.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_printf.c", + "output": "CMakeFiles/note_c_lib.dir/n_printf.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_request.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_request.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_request.c", + "output": "CMakeFiles/note_c_lib.dir/n_request.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_serial.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_serial.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_serial.c", + "output": "CMakeFiles/note_c_lib.dir/n_serial.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-default", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_ua.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_ua.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_ua.c", + "output": "CMakeFiles/note_c_lib.dir/n_ua.c.o" +} +] \ No newline at end of file diff --git a/source-research/inventory/compile_commands.lowmem-single.json b/source-research/inventory/compile_commands.lowmem-single.json new file mode 100644 index 00000000..1a102072 --- /dev/null +++ b/source-research/inventory/compile_commands.lowmem-single.json @@ -0,0 +1,86 @@ +[ +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_atof.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_atof.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_atof.c", + "output": "CMakeFiles/note_c_lib.dir/n_atof.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_b64.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_b64.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_b64.c", + "output": "CMakeFiles/note_c_lib.dir/n_b64.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_cjson.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_cjson.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_cjson.c", + "output": "CMakeFiles/note_c_lib.dir/n_cjson.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_cjson_helpers.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_cjson_helpers.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_cjson_helpers.c", + "output": "CMakeFiles/note_c_lib.dir/n_cjson_helpers.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_cobs.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_cobs.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_cobs.c", + "output": "CMakeFiles/note_c_lib.dir/n_cobs.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_const.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_const.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_const.c", + "output": "CMakeFiles/note_c_lib.dir/n_const.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_ftoa.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_ftoa.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_ftoa.c", + "output": "CMakeFiles/note_c_lib.dir/n_ftoa.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_helpers.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_helpers.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_helpers.c", + "output": "CMakeFiles/note_c_lib.dir/n_helpers.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_hooks.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_hooks.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_hooks.c", + "output": "CMakeFiles/note_c_lib.dir/n_hooks.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_i2c.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_i2c.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_i2c.c", + "output": "CMakeFiles/note_c_lib.dir/n_i2c.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_md5.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_md5.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_md5.c", + "output": "CMakeFiles/note_c_lib.dir/n_md5.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_printf.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_printf.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_printf.c", + "output": "CMakeFiles/note_c_lib.dir/n_printf.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_request.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_request.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_request.c", + "output": "CMakeFiles/note_c_lib.dir/n_request.c.o" +}, +{ + "directory": "/private/tmp/note-c-cmake-lowmem", + "command": "/usr/bin/cc -DHAVE_STRLCAT -DHAVE_STRLCPY -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION -I/Users/zak/Development/GitHub/blues/note-c -o CMakeFiles/note_c_lib.dir/n_serial.c.o -c /Users/zak/Development/GitHub/blues/note-c/n_serial.c", + "file": "/Users/zak/Development/GitHub/blues/note-c/n_serial.c", + "output": "CMakeFiles/note_c_lib.dir/n_serial.c.o" +} +] \ No newline at end of file diff --git a/source-research/inventory/dependency-graph.json b/source-research/inventory/dependency-graph.json new file mode 100644 index 00000000..a83bf737 --- /dev/null +++ b/source-research/inventory/dependency-graph.json @@ -0,0 +1,24813 @@ +{ + "edges": [ + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:n_cjson.h:209:JGetObjectItems", + "source_artifact": "artifacts/macros/n_cjson_h__L209__JGetObjectItems.md", + "target": "function:n_cjson.c:1660:JGetArraySize", + "target_artifact": "artifacts/functions/n_cjson_c__L1660__JGetArraySize.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:n_cjson.h:310:JConvertToJSONString", + "source_artifact": "artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md", + "target": "function:n_cjson.c:1051:JPrintUnformatted", + "target_artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:n_cjson.h:311:JConvertFromJSONString", + "source_artifact": "artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md", + "target": "function:n_cjson.c:976:JParse", + "target_artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-wrapper", + "kind": "expands_to", + "source": "macro:n_cjson.h:317:JSetNumberValue", + "source_artifact": "artifacts/macros/n_cjson_h__L317__JSetNumberValue.md", + "target": "function:n_cjson.c:322:JSetNumberHelper", + "target_artifact": "artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:226:_LockNote", + "source_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "target": "function:n_hooks.c:657:_noteLockNote", + "target_artifact": "artifacts/functions/n_hooks_c__L657__noteLockNote.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:486:NoteDeleteResponse", + "source_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:227:_UnlockNote", + "source_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "target": "function:n_hooks.c:669:_noteUnlockNote", + "target_artifact": "artifacts/functions/n_hooks_c__L669__noteUnlockNote.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:228:_TransactionStart", + "source_artifact": "artifacts/macros/n_lib_h__L228__TransactionStart.md", + "target": "function:n_hooks.c:681:_noteTransactionStart", + "target_artifact": "artifacts/functions/n_hooks_c__L681__noteTransactionStart.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:229:_TransactionStop", + "source_artifact": "artifacts/macros/n_lib_h__L229__TransactionStop.md", + "target": "function:n_hooks.c:694:_noteTransactionStop", + "target_artifact": "artifacts/functions/n_hooks_c__L694__noteTransactionStop.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:230:_SerialReset", + "source_artifact": "artifacts/macros/n_lib_h__L230__SerialReset.md", + "target": "function:n_hooks.c:855:_noteSerialReset", + "target_artifact": "artifacts/functions/n_hooks_c__L855__noteSerialReset.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:231:_SerialTransmit", + "source_artifact": "artifacts/macros/n_lib_h__L231__SerialTransmit.md", + "target": "function:n_hooks.c:871:_noteSerialTransmit", + "target_artifact": "artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:232:_SerialAvailable", + "source_artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "target": "function:n_hooks.c:887:_noteSerialAvailable", + "target_artifact": "artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:233:_SerialReceive", + "source_artifact": "artifacts/macros/n_lib_h__L233__SerialReceive.md", + "target": "function:n_hooks.c:902:_noteSerialReceive", + "target_artifact": "artifacts/functions/n_hooks_c__L902__noteSerialReceive.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:234:_I2CReset", + "source_artifact": "artifacts/macros/n_lib_h__L234__I2CReset.md", + "target": "function:n_hooks.c:916:_noteI2CReset", + "target_artifact": "artifacts/functions/n_hooks_c__L916__noteI2CReset.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:235:_I2CTransmit", + "source_artifact": "artifacts/macros/n_lib_h__L235__I2CTransmit.md", + "target": "function:n_hooks.c:934:_noteI2CTransmit", + "target_artifact": "artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:236:_I2CReceive", + "source_artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "target": "function:n_hooks.c:955:_noteI2CReceive", + "target_artifact": "artifacts/functions/n_hooks_c__L955__noteI2CReceive.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:237:_Reset", + "source_artifact": "artifacts/macros/n_lib_h__L237__Reset.md", + "target": "function:n_hooks.c:1015:_noteHardReset", + "target_artifact": "artifacts/functions/n_hooks_c__L1015__noteHardReset.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:238:_Transaction", + "source_artifact": "artifacts/macros/n_lib_h__L238__Transaction.md", + "target": "function:n_hooks.c:1042:_noteJSONTransaction", + "target_artifact": "artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:239:_ChunkedReceive", + "source_artifact": "artifacts/macros/n_lib_h__L239__ChunkedReceive.md", + "target": "function:n_hooks.c:1068:_noteChunkedReceive", + "target_artifact": "artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:240:_ChunkedTransmit", + "source_artifact": "artifacts/macros/n_lib_h__L240__ChunkedTransmit.md", + "target": "function:n_hooks.c:1087:_noteChunkedTransmit", + "target_artifact": "artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:241:_Malloc", + "source_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "target": "function:n_hooks.c:569:NoteMalloc", + "target_artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:242:_Free", + "source_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "target": "function:n_hooks.c:595:NoteFree", + "target_artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:243:_GetMs", + "source_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "target": "function:n_hooks.c:520:NoteGetMs", + "target_artifact": "artifacts/functions/n_hooks_c__L520__NoteGetMs.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:244:_DelayMs", + "source_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "target": "function:n_hooks.c:528:NoteDelayMs", + "target_artifact": "artifacts/functions/n_hooks_c__L528__NoteDelayMs.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:245:_LockI2C", + "source_artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "target": "function:n_hooks.c:616:NoteLockI2C", + "target_artifact": "artifacts/functions/n_hooks_c__L616__NoteLockI2C.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:246:_UnlockI2C", + "source_artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "target": "function:n_hooks.c:628:NoteUnlockI2C", + "target_artifact": "artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:247:_I2CAddress", + "source_artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "target": "function:n_hooks.c:969:NoteI2CAddress", + "target_artifact": "artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:n_lib.h:248:_I2CMax", + "source_artifact": "artifacts/macros/n_lib_h__L248__I2CMax.md", + "target": "function:n_hooks.c:994:NoteI2CMax", + "target_artifact": "artifacts/functions/n_hooks_c__L994__NoteI2CMax.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-wrapper", + "kind": "expands_to", + "source": "macro:note.h:322:NoteNewBody", + "source_artifact": "artifacts/macros/note_h__L322__NoteNewBody.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:843:NOTE_I2C_MAX_MAX", + "source_artifact": "artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md", + "target": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "target_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "source_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "target": "macro:note.h:843:NOTE_I2C_MAX_MAX", + "target_artifact": "artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "source_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "target": "macro:note.h:845:NOTE_I2C_MAX_MAX", + "target_artifact": "artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md", + "target": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md", + "target": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "target_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "target": "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "target": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md", + "verified": false + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "target": "macro:note.h:876:NOTE_I2C_MAX_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md", + "target": "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "target_artifact": "artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-fallback", + "kind": "expands_to", + "source": "macro:note.h:1028:NOTE_C_LOG_LEVEL", + "source_artifact": "artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md", + "target": "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:1403:JTYPE_BOOL", + "source_artifact": "artifacts/macros/note_h__L1403__JTYPE_BOOL.md", + "target": "macro:note.h:1401:JTYPE_BOOL_TRUE", + "target_artifact": "artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "regex-c-macro-alias", + "kind": "expands_to", + "source": "macro:note.h:2033:NoteSend", + "source_artifact": "artifacts/macros/note_h__L2033__NoteSend.md", + "target": "function:n_helpers.c:2083:NoteAdd", + "target_artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:96:JGetStringValue", + "source_artifact": "artifacts/functions/n_cjson_c__L96__JGetStringValue.md", + "target": "function:n_cjson.c:2713:JIsString", + "target_artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:110:JVersion", + "source_artifact": "artifacts/functions/n_cjson_c__L110__JVersion.md", + "target": "macro:note.h:40:NOTE_C_STRINGIZE", + "target_artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:127:_case_insensitive_strcmp", + "source_artifact": "artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md", + "target": "function:n_cjson.c:115:_j_tolower", + "target_artifact": "artifacts/functions/n_cjson_c__L115__j_tolower.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:146:_j_strdup", + "source_artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:175:JMalloc", + "source_artifact": "artifacts/functions/n_cjson_c__L175__JMalloc.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:188:JFree", + "source_artifact": "artifacts/functions/n_cjson_c__L188__JFree.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:194:_jNew_Item", + "source_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "function:n_cjson.c:229:_get_decimal_point", + "target_artifact": "artifacts/functions/n_cjson_c__L229__get_decimal_point.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "macro:n_cjson.c:249:can_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "function:n_atof.c:71:JAtoN", + "target_artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "function:n_cjson_helpers.c:312:JAtoI", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:351:_ensure", + "source_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:351:_ensure", + "source_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:412:_print_number", + "source_artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "target": "function:n_cjson.c:229:_get_decimal_point", + "target_artifact": "artifacts/functions/n_cjson_c__L229__get_decimal_point.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:412:_print_number", + "source_artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:412:_print_number", + "source_artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "target": "function:n_ftoa.c:56:JNtoA", + "target_artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:412:_print_number", + "source_artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "target": "function:n_cjson_helpers.c:284:JItoA", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:412:_print_number", + "source_artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "target": "function:n_cjson.c:351:_ensure", + "target_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:504:_utf16_literal_to_utf8", + "source_artifact": "artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md", + "target": "function:n_cjson.c:476:_parse_hex4", + "target_artifact": "artifacts/functions/n_cjson_c__L476__parse_hex4.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:604:_parse_string", + "source_artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:604:_parse_string", + "source_artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:604:_parse_string", + "source_artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "target": "function:n_cjson.c:504:_utf16_literal_to_utf8", + "target_artifact": "artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:604:_parse_string", + "source_artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:744:_print_string_ptr", + "source_artifact": "artifacts/functions/n_cjson_c__L744__print_string_ptr.md", + "target": "function:n_cjson.c:351:_ensure", + "target_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:744:_print_string_ptr", + "source_artifact": "artifacts/functions/n_cjson_c__L744__print_string_ptr.md", + "target": "function:n_cjson.c:728:_n_htoa16", + "target_artifact": "artifacts/functions/n_cjson_c__L728__n_htoa16.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:856:_print_string", + "source_artifact": "artifacts/functions/n_cjson_c__L856__print_string.md", + "target": "function:n_cjson.c:744:_print_string_ptr", + "target_artifact": "artifacts/functions/n_cjson_c__L744__print_string_ptr.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:870:_buffer_skip_whitespace", + "source_artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "target": "macro:n_cjson.c:249:can_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:870:_buffer_skip_whitespace", + "source_artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:888:_skip_utf8_bom", + "source_artifact": "artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md", + "target": "macro:n_cjson.c:249:can_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:888:_skip_utf8_bom", + "source_artifact": "artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "function:n_cjson.c:1129:_parse_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "function:n_cjson.c:870:_buffer_skip_whitespace", + "target_artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "function:n_cjson.c:888:_skip_utf8_bom", + "target_artifact": "artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:976:JParse", + "source_artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "target": "function:n_cjson.c:902:JParseWithOpts", + "target_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:983:_print", + "source_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:983:_print", + "source_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "target": "function:n_cjson.c:1179:_print_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:983:_print", + "source_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "target": "function:n_cjson.c:400:_update_offset", + "target_artifact": "artifacts/functions/n_cjson_c__L400__update_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:983:_print", + "source_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "target": "macro:n_cjson.c:981:cjson_min", + "target_artifact": "artifacts/macros/n_cjson_c__L981__cjson_min.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:983:_print", + "source_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1032:JPrint", + "source_artifact": "artifacts/functions/n_cjson_c__L1032__JPrint.md", + "target": "function:n_cjson.c:983:_print", + "target_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1051:JPrintUnformatted", + "source_artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "target": "function:n_cjson.c:983:_print", + "target_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1059:JPrintUnformattedOmitEmpty", + "source_artifact": "artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md", + "target": "function:n_cjson.c:983:_print", + "target_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1067:JPrintBuffered", + "source_artifact": "artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1067:JPrintBuffered", + "source_artifact": "artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md", + "target": "function:n_cjson.c:1179:_print_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1067:JPrintBuffered", + "source_artifact": "artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1097:_printPreallocated", + "source_artifact": "artifacts/functions/n_cjson_c__L1097__printPreallocated.md", + "target": "function:n_cjson.c:1179:_print_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1118:JPrintPreallocatedOmitEmpty", + "source_artifact": "artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md", + "target": "function:n_cjson.c:1097:_printPreallocated", + "target_artifact": "artifacts/functions/n_cjson_c__L1097__printPreallocated.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1123:JPrintPreallocated", + "source_artifact": "artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md", + "target": "function:n_cjson.c:1097:_printPreallocated", + "target_artifact": "artifacts/functions/n_cjson_c__L1097__printPreallocated.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_cjson.c:247:can_read", + "target_artifact": "artifacts/macros/n_cjson_c__L247__can_read.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_cjson.c:249:can_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "function:n_cjson.c:604:_parse_string", + "target_artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "function:n_cjson.c:255:_parse_number", + "target_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "function:n_cjson.c:1245:_parse_array", + "target_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "function:n_cjson.c:1395:_parse_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "function:n_cjson.c:351:_ensure", + "target_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "function:n_cjson.c:412:_print_number", + "target_artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "function:n_cjson.c:856:_print_string", + "target_artifact": "artifacts/functions/n_cjson_c__L856__print_string.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "function:n_cjson.c:1341:_print_array", + "target_artifact": "artifacts/functions/n_cjson_c__L1341__print_array.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "function:n_cjson.c:1523:_print_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "function:n_cjson.c:870:_buffer_skip_whitespace", + "target_artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "macro:n_cjson.c:249:can_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "macro:n_cjson.c:250:cannot_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "function:n_cjson.c:1129:_parse_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1341:_print_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1341__print_array.md", + "target": "function:n_cjson.c:351:_ensure", + "target_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1341:_print_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1341__print_array.md", + "target": "function:n_cjson.c:1179:_print_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1341:_print_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1341__print_array.md", + "target": "function:n_cjson.c:400:_update_offset", + "target_artifact": "artifacts/functions/n_cjson_c__L400__update_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "macro:n_cjson.c:250:cannot_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "macro:n_cjson.c:252:buffer_at_offset", + "target_artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "function:n_cjson.c:870:_buffer_skip_whitespace", + "target_artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "macro:n_cjson.c:249:can_access_at_index", + "target_artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "function:n_cjson.c:604:_parse_string", + "target_artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "function:n_cjson.c:1129:_parse_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1507:_last_non_omitted_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "target": "function:n_cjson_helpers.c:387:JGetItemType", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "function:n_cjson.c:351:_ensure", + "target_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "function:n_cjson_helpers.c:387:JGetItemType", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "function:n_cjson.c:744:_print_string_ptr", + "target_artifact": "artifacts/functions/n_cjson_c__L744__print_string_ptr.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "function:n_cjson.c:400:_update_offset", + "target_artifact": "artifacts/functions/n_cjson_c__L400__update_offset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "function:n_cjson.c:1179:_print_value", + "target_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "function:n_cjson.c:1507:_last_non_omitted_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1698:JGetArrayItem", + "source_artifact": "artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md", + "target": "function:n_cjson.c:1681:_get_array_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1681__get_array_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1710:_get_object_item", + "source_artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "target": "function:n_cjson.c:127:_case_insensitive_strcmp", + "target_artifact": "artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1732:JGetObjectItem", + "source_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "target": "function:n_cjson.c:1710:_get_object_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1740:JGetObjectItemCaseSensitive", + "source_artifact": "artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md", + "target": "function:n_cjson.c:1710:_get_object_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1748:JHasObjectItem", + "source_artifact": "artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1764:_create_reference", + "source_artifact": "artifacts/functions/n_cjson_c__L1764__create_reference.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1783:_add_item_to_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "target": "function:n_cjson.c:1757:_suffix_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1757__suffix_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1808:JAddItemToArray", + "source_artifact": "artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1808:JAddItemToArray", + "source_artifact": "artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md", + "target": "function:n_cjson.c:1783:_add_item_to_array", + "target_artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1835:_add_item_to_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "target": "function:n_cjson.c:1826:_cast_away_const", + "target_artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1835:_add_item_to_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "target": "function:n_cjson.c:146:_j_strdup", + "target_artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1835:_add_item_to_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1835:_add_item_to_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "target": "function:n_cjson.c:1783:_add_item_to_array", + "target_artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1866:JAddItemToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1866:JAddItemToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1878:JAddItemToObjectCS", + "source_artifact": "artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1878:JAddItemToObjectCS", + "source_artifact": "artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1889:JAddItemReferenceToArray", + "source_artifact": "artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md", + "target": "function:n_cjson.c:1764:_create_reference", + "target_artifact": "artifacts/functions/n_cjson_c__L1764__create_reference.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1889:JAddItemReferenceToArray", + "source_artifact": "artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md", + "target": "function:n_cjson.c:1783:_add_item_to_array", + "target_artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1889:JAddItemReferenceToArray", + "source_artifact": "artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1900:JAddItemReferenceToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md", + "target": "function:n_cjson.c:1764:_create_reference", + "target_artifact": "artifacts/functions/n_cjson_c__L1764__create_reference.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1900:JAddItemReferenceToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1900:JAddItemReferenceToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1911:JAddTrueToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md", + "target": "function:n_cjson.c:2303:JCreateTrue", + "target_artifact": "artifacts/functions/n_cjson_c__L2303__JCreateTrue.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1911:JAddTrueToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1911:JAddTrueToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1926:JAddFalseToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md", + "target": "function:n_cjson.c:2312:JCreateFalse", + "target_artifact": "artifacts/functions/n_cjson_c__L2312__JCreateFalse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1926:JAddFalseToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1926:JAddFalseToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1950:JAddBoolToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "target": "function:n_cjson.c:2321:JCreateBool", + "target_artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1950:JAddBoolToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1950:JAddBoolToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1974:JAddNumberToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "target": "function:n_cjson.c:2330:JCreateNumber", + "target_artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1974:JAddNumberToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1974:JAddNumberToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1989:JAddIntToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "target": "function:n_cjson.c:2349:JCreateInteger", + "target_artifact": "artifacts/functions/n_cjson_c__L2349__JCreateInteger.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1989:JAddIntToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:1989:JAddIntToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2013:JAddStringToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "target": "function:n_cjson.c:2360:JCreateString", + "target_artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2013:JAddStringToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2013:JAddStringToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2028:JAddRawToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md", + "target": "function:n_cjson.c:2420:JCreateRaw", + "target_artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2028:JAddRawToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2028:JAddRawToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2051:JAddObjectToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2051:JAddObjectToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2051:JAddObjectToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2074:JAddArrayToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md", + "target": "function:n_cjson.c:2434:JCreateArray", + "target_artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2074:JAddArrayToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md", + "target": "function:n_cjson.c:1835:_add_item_to_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2074:JAddArrayToObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2115:JDetachItemFromArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md", + "target": "function:n_cjson.c:2089:JDetachItemViaPointer", + "target_artifact": "artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2115:JDetachItemFromArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md", + "target": "function:n_cjson.c:1681:_get_array_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1681__get_array_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2127:JDeleteItemFromArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2127:JDeleteItemFromArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md", + "target": "function:n_cjson.c:2115:JDetachItemFromArray", + "target_artifact": "artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2135:JDetachItemFromObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2135:JDetachItemFromObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md", + "target": "function:n_cjson.c:2089:JDetachItemViaPointer", + "target_artifact": "artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive", + "source_artifact": "artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md", + "target": "function:n_cjson.c:1740:JGetObjectItemCaseSensitive", + "target_artifact": "artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive", + "source_artifact": "artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md", + "target": "function:n_cjson.c:2089:JDetachItemViaPointer", + "target_artifact": "artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2157:JDeleteItemFromObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2157:JDeleteItemFromObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md", + "target": "function:n_cjson.c:2135:JDetachItemFromObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2165:JDeleteItemFromObjectCaseSensitive", + "source_artifact": "artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2165:JDeleteItemFromObjectCaseSensitive", + "source_artifact": "artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md", + "target": "function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive", + "target_artifact": "artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2174:JInsertItemInArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2174:JInsertItemInArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md", + "target": "function:n_cjson.c:1681:_get_array_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1681__get_array_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2174:JInsertItemInArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md", + "target": "function:n_cjson.c:1783:_add_item_to_array", + "target_artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2206:JReplaceItemViaPointer", + "source_artifact": "artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2236:JReplaceItemInArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2236:JReplaceItemInArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md", + "target": "function:n_cjson.c:2206:JReplaceItemViaPointer", + "target_artifact": "artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2236:JReplaceItemInArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md", + "target": "function:n_cjson.c:1681:_get_array_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1681__get_array_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2253:_replace_item_in_object", + "source_artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "target": "function:n_cjson.c:1710:_get_object_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2253:_replace_item_in_object", + "source_artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "target": "function:n_cjson.c:146:_j_strdup", + "target_artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2253:_replace_item_in_object", + "source_artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2253:_replace_item_in_object", + "source_artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "target": "function:n_cjson.c:2206:JReplaceItemViaPointer", + "target_artifact": "artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2281:JReplaceItemInObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2281:JReplaceItemInObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md", + "target": "function:n_cjson.c:2253:_replace_item_in_object", + "target_artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2292:JReplaceItemInObjectCaseSensitive", + "source_artifact": "artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2292:JReplaceItemInObjectCaseSensitive", + "source_artifact": "artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md", + "target": "function:n_cjson.c:2253:_replace_item_in_object", + "target_artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2303:JCreateTrue", + "source_artifact": "artifacts/functions/n_cjson_c__L2303__JCreateTrue.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2312:JCreateFalse", + "source_artifact": "artifacts/functions/n_cjson_c__L2312__JCreateFalse.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2321:JCreateBool", + "source_artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2330:JCreateNumber", + "source_artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2349:JCreateInteger", + "source_artifact": "artifacts/functions/n_cjson_c__L2349__JCreateInteger.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2360:JCreateString", + "source_artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2360:JCreateString", + "source_artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "target": "function:n_cjson.c:146:_j_strdup", + "target_artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2360:JCreateString", + "source_artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2374:JCreateStringValue", + "source_artifact": "artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2374:JCreateStringValue", + "source_artifact": "artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md", + "target": "function:n_cjson.c:1826:_cast_away_const", + "target_artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2384:JCreateStringReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2384:JCreateStringReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "target": "function:n_cjson.c:1826:_cast_away_const", + "target_artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2394:JCreateObjectReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2394:JCreateObjectReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md", + "target": "function:n_cjson.c:1826:_cast_away_const", + "target_artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2407:JCreateArrayReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2407:JCreateArrayReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md", + "target": "function:n_cjson.c:1826:_cast_away_const", + "target_artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2420:JCreateRaw", + "source_artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2420:JCreateRaw", + "source_artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "target": "function:n_cjson.c:146:_j_strdup", + "target_artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2420:JCreateRaw", + "source_artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2434:JCreateArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2450:JCreateObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2460:JCreateIntArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md", + "target": "function:n_cjson.c:2434:JCreateArray", + "target_artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2460:JCreateIntArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md", + "target": "function:n_cjson.c:2330:JCreateNumber", + "target_artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2460:JCreateIntArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2460:JCreateIntArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md", + "target": "function:n_cjson.c:1757:_suffix_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1757__suffix_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2489:JCreateNumberArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md", + "target": "function:n_cjson.c:2434:JCreateArray", + "target_artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2489:JCreateNumberArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md", + "target": "function:n_cjson.c:2330:JCreateNumber", + "target_artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2489:JCreateNumberArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2489:JCreateNumberArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md", + "target": "function:n_cjson.c:1757:_suffix_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1757__suffix_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2519:JCreateStringArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md", + "target": "function:n_cjson.c:2434:JCreateArray", + "target_artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2519:JCreateStringArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md", + "target": "function:n_cjson.c:2360:JCreateString", + "target_artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2519:JCreateStringArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2519:JCreateStringArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md", + "target": "function:n_cjson.c:1757:_suffix_object", + "target_artifact": "artifacts/functions/n_cjson_c__L1757__suffix_object.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2550:JDuplicate", + "source_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "target": "function:n_cjson.c:194:_jNew_Item", + "target_artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2550:JDuplicate", + "source_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "target": "function:n_cjson.c:146:_j_strdup", + "target_artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2550:JDuplicate", + "source_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "function:n_cjson.c:2665:JIsInvalid", + "target_artifact": "artifacts/functions/n_cjson_c__L2665__JIsInvalid.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "macro:n_cjson.h:320:JArrayForEach", + "target_artifact": "artifacts/macros/n_cjson_h__L320__JArrayForEach.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "function:n_cjson.c:1710:_get_object_item", + "target_artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:19:JIsPresent", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:27:JGetString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:27:JGetString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "target": "function:n_cjson.c:2713:JIsString", + "target_artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:45:JGetArray", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:45:JGetArray", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md", + "target": "function:n_cjson.c:2721:JIsArray", + "target_artifact": "artifacts/functions/n_cjson_c__L2721__JIsArray.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:60:JGetObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:60:JGetObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md", + "target": "function:n_cjson.c:2729:JIsObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2729__JIsObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:99:JGetNumber", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:99:JGetNumber", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "target": "function:n_cjson.c:2705:JIsNumber", + "target_artifact": "artifacts/functions/n_cjson_c__L2705__JIsNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:99:JGetNumber", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "target": "function:n_cjson_helpers.c:91:JNumberValue", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:122:JGetInt", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:122:JGetInt", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "target": "function:n_cjson.c:2705:JIsNumber", + "target_artifact": "artifacts/functions/n_cjson_c__L2705__JIsNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:122:JGetInt", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "target": "function:n_cjson_helpers.c:114:JIntValue", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:137:JGetBool", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:137:JGetBool", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "target": "function:n_cjson.c:2690:JIsBool", + "target_artifact": "artifacts/functions/n_cjson_c__L2690__JIsBool.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:137:JGetBool", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "target": "function:n_cjson.c:2681:JIsTrue", + "target_artifact": "artifacts/functions/n_cjson_c__L2681__JIsTrue.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:152:JIsNullString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:152:JIsNullString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "target": "function:n_cjson.c:2713:JIsString", + "target_artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:173:JIsExactString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:173:JIsExactString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md", + "target": "function:n_cjson.c:2713:JIsString", + "target_artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:194:JContainsString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:194:JContainsString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "target": "function:n_cjson.c:2713:JIsString", + "target_artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "target": "function:n_b64.c:169:JB64EncodeLen", + "target_artifact": "artifacts/functions/n_b64_c__L169__JB64EncodeLen.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "target": "function:n_b64.c:174:JB64Encode", + "target_artifact": "artifacts/functions/n_b64_c__L174__JB64Encode.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "target": "function:n_cjson.c:2374:JCreateStringValue", + "target_artifact": "artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "target": "function:n_cjson.c:1866:JAddItemToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "target": "function:n_cjson_helpers.c:19:JIsPresent", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:235:JGetBinaryFromObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:235:JGetBinaryFromObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:235:JGetBinaryFromObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md", + "target": "function:n_b64.c:106:JB64DecodeLen", + "target_artifact": "artifacts/functions/n_b64_c__L106__JB64DecodeLen.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:235:JGetBinaryFromObject", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md", + "target": "function:n_b64.c:121:JB64Decode", + "target_artifact": "artifacts/functions/n_b64_c__L121__JB64Decode.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:342:JAllocString", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:379:JGetType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L379__JGetType.md", + "target": "function:n_cjson_helpers.c:387:JGetItemType", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:379:JGetType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L379__JGetType.md", + "target": "function:n_cjson.c:1732:JGetObjectItem", + "target_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "function:n_atof.c:71:JAtoN", + "target_artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:56:JNtoA", + "source_artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "target": "function:n_ftoa.c:74:fmtflt", + "target_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:378:fmtstr", + "target_artifact": "artifacts/functions/n_ftoa_c__L378__fmtstr.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:426:getexponent", + "target_artifact": "artifacts/functions/n_ftoa_c__L426__getexponent.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:497:mypow10", + "target_artifact": "artifacts/functions/n_ftoa_c__L497__mypow10.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:462:cast", + "target_artifact": "artifacts/functions/n_ftoa_c__L462__cast.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:486:myround", + "target_artifact": "artifacts/functions/n_ftoa_c__L486__myround.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:448:convert", + "target_artifact": "artifacts/functions/n_ftoa_c__L448__convert.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:420:getnumsep", + "target_artifact": "artifacts/functions/n_ftoa_c__L420__getnumsep.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:45:OUTCHAR", + "target_artifact": "artifacts/macros/n_ftoa_c__L45__OUTCHAR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "function:n_ftoa.c:415:printsep", + "target_artifact": "artifacts/functions/n_ftoa_c__L415__printsep.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:378:fmtstr", + "source_artifact": "artifacts/functions/n_ftoa_c__L378__fmtstr.md", + "target": "macro:n_ftoa.c:45:OUTCHAR", + "target_artifact": "artifacts/macros/n_ftoa_c__L45__OUTCHAR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:415:printsep", + "source_artifact": "artifacts/functions/n_ftoa_c__L415__printsep.md", + "target": "macro:n_ftoa.c:45:OUTCHAR", + "target_artifact": "artifacts/macros/n_ftoa_c__L45__OUTCHAR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ftoa.c:486:myround", + "source_artifact": "artifacts/functions/n_ftoa_c__L486__myround.md", + "target": "function:n_ftoa.c:462:cast", + "target_artifact": "artifacts/functions/n_ftoa_c__L462__cast.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "source_artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "source_artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "target": "function:n_cjson.c:1989:JAddIntToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "source_artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "source_artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "source_artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "source_artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "source_artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "source_artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "source_artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "source_artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "target": "function:n_cobs.c:305:_cobsGuaranteedFit", + "target_artifact": "artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "source_artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "target": "function:n_cobs.c:32:_cobsDecode", + "target_artifact": "artifacts/functions/n_cobs_c__L32__cobsDecode.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "source_artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "source_artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "source_artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "source_artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "target": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "target_artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "source_artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "target": "function:n_cobs.c:196:_cobsEncodedLength", + "target_artifact": "artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "source_artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "target": "function:n_cobs.c:115:_cobsEncode", + "target_artifact": "artifacts/functions/n_cobs_c__L115__cobsEncode.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:218:NoteBinaryCodecMaxDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md", + "target": "function:n_cobs.c:305:_cobsGuaranteedFit", + "target_artifact": "artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:233:NoteBinaryCodecMaxEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md", + "target": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "target_artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "function:n_request.c:940:NoteErrorContains", + "target_artifact": "artifacts/functions/n_request_c__L940__NoteErrorContains.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "function:n_request.c:940:NoteErrorContains", + "target_artifact": "artifacts/functions/n_request_c__L940__NoteErrorContains.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "target_artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_cjson.c:1989:JAddIntToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_request.c:428:_noteTransactionShouldLock", + "target_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:n_lib.h:239:_ChunkedReceive", + "target_artifact": "artifacts/macros/n_lib_h__L239__ChunkedReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_request.c:756:NoteResetRequired", + "target_artifact": "artifacts/functions/n_request_c__L756__NoteResetRequired.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "target_artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_md5.c:301:NoteMD5HashString", + "target_artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "target_artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cobs.c:196:_cobsEncodedLength", + "target_artifact": "artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_request.c:940:NoteErrorContains", + "target_artifact": "artifacts/functions/n_request_c__L940__NoteErrorContains.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_md5.c:301:NoteMD5HashString", + "target_artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "target_artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cjson.c:1989:JAddIntToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_request.c:428:_noteTransactionShouldLock", + "target_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "target_artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:n_lib.h:240:_ChunkedTransmit", + "target_artifact": "artifacts/macros/n_lib_h__L240__ChunkedTransmit.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:998:NOTE_C_LOG_WARN", + "target_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:743:NoteTimeValid", + "source_artifact": "artifacts/functions/n_helpers_c__L743__NoteTimeValid.md", + "target": "function:n_helpers.c:755:NoteTimeValidST", + "target_artifact": "artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:755:NoteTimeValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md", + "target": "function:n_helpers.c:871:NoteTimeST", + "target_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:767:NoteTime", + "source_artifact": "artifacts/functions/n_helpers_c__L767__NoteTime.md", + "target": "function:n_helpers.c:871:NoteTimeST", + "target_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:791:_setTime", + "source_artifact": "artifacts/functions/n_helpers_c__L791__setTime.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:808:NoteTimeSet", + "source_artifact": "artifacts/functions/n_helpers_c__L808__NoteTimeSet.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:808:NoteTimeSet", + "source_artifact": "artifacts/functions/n_helpers_c__L808__NoteTimeSet.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:834:NotePrintln", + "source_artifact": "artifacts/functions/n_helpers_c__L834__NotePrintln.md", + "target": "function:n_helpers.c:847:NotePrint", + "target_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:847:NotePrint", + "source_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "target": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "target_artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:847:NotePrint", + "source_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "target": "macro:n_lib.h:256:_Debug", + "target_artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:847:NotePrint", + "source_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:847:NotePrint", + "source_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:847:NotePrint", + "source_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_helpers.c:2301:_timerExpiredSecs", + "target_artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_helpers.c:791:_setTime", + "target_artifact": "artifacts/functions/n_helpers_c__L791__setTime.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:965:NoteRegion", + "source_artifact": "artifacts/functions/n_helpers_c__L965__NoteRegion.md", + "target": "function:n_helpers.c:871:NoteTimeST", + "target_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1016:NoteLocalTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "target": "function:n_helpers.c:755:NoteTimeValidST", + "target_artifact": "artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1016:NoteLocalTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "target": "function:n_helpers.c:871:NoteTimeST", + "target_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1016:NoteLocalTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "target": "function:n_helpers.c:965:NoteRegion", + "target_artifact": "artifacts/functions/n_helpers_c__L965__NoteRegion.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1016:NoteLocalTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "target": "function:n_helpers.c:1119:_yToDays", + "target_artifact": "artifacts/functions/n_helpers_c__L1119__yToDays.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1016:NoteLocalTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "target": "macro:n_helpers.c:71:daysByMonth", + "target_artifact": "artifacts/macros/n_helpers_c__L71__daysByMonth.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1119:_yToDays", + "source_artifact": "artifacts/functions/n_helpers_c__L1119__yToDays.md", + "target": "macro:n_helpers.c:71:daysByMonth", + "target_artifact": "artifacts/macros/n_helpers_c__L71__daysByMonth.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1139:NoteLocationValid", + "source_artifact": "artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md", + "target": "function:n_helpers.c:1156:NoteLocationValidST", + "target_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "function:n_helpers.c:2301:_timerExpiredSecs", + "target_artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1215:NoteSetEnvDefault", + "source_artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1215:NoteSetEnvDefault", + "source_artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1215:NoteSetEnvDefault", + "source_artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1235:NoteSetEnvDefaultInt", + "source_artifact": "artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md", + "target": "function:n_cjson_helpers.c:284:JItoA", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1235:NoteSetEnvDefaultInt", + "source_artifact": "artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md", + "target": "function:n_helpers.c:1215:NoteSetEnvDefault", + "target_artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1250:NoteSetEnvDefaultNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md", + "target": "function:n_ftoa.c:56:JNtoA", + "target_artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1250:NoteSetEnvDefaultNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md", + "target": "function:n_helpers.c:1215:NoteSetEnvDefault", + "target_artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1265:NoteGetEnvNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md", + "target": "function:n_ftoa.c:56:JNtoA", + "target_artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1265:NoteGetEnvNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md", + "target": "function:n_helpers.c:1302:NoteGetEnv", + "target_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1265:NoteGetEnvNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md", + "target": "function:n_atof.c:71:JAtoN", + "target_artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1281:NoteGetEnvInt", + "source_artifact": "artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md", + "target": "function:n_cjson_helpers.c:284:JItoA", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1281:NoteGetEnvInt", + "source_artifact": "artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md", + "target": "function:n_helpers.c:1302:NoteGetEnv", + "target_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1334:NoteIsConnected", + "source_artifact": "artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md", + "target": "function:n_helpers.c:1346:NoteIsConnectedST", + "target_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1346:NoteIsConnectedST", + "source_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "target": "function:n_helpers.c:2301:_timerExpiredSecs", + "target_artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1346:NoteIsConnectedST", + "source_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1346:NoteIsConnectedST", + "source_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1346:NoteIsConnectedST", + "source_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1346:NoteIsConnectedST", + "source_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "target": "function:n_cjson_helpers.c:137:JGetBool", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1346:NoteIsConnectedST", + "source_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1368:NoteGetNetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1368:NoteGetNetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1368:NoteGetNetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1368:NoteGetNetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1368:NoteGetNetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1368:NoteGetNetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1391:NoteGetVersion", + "source_artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1391:NoteGetVersion", + "source_artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1391:NoteGetVersion", + "source_artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1391:NoteGetVersion", + "source_artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1391:NoteGetVersion", + "source_artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1391:NoteGetVersion", + "source_artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "function:n_cjson_helpers.c:19:JIsPresent", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "function:n_cjson_helpers.c:99:JGetNumber", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1463:NoteSetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1463:NoteSetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1463:NoteSetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1463:NoteSetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1482:NoteClearLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1482:NoteClearLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1482:NoteClearLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1501:NoteGetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1501:NoteGetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1501:NoteGetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1501:NoteGetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1501:NoteGetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1501:NoteGetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1524:NoteSetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1524:NoteSetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1524:NoteSetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1524:NoteSetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1557:NoteGetServiceConfig", + "source_artifact": "artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md", + "target": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "target_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "function:n_helpers.c:2301:_timerExpiredSecs", + "target_artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1631:NoteGetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md", + "target": "function:n_helpers.c:1649:NoteGetStatusST", + "target_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_helpers.c:2301:_timerExpiredSecs", + "target_artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_cjson_helpers.c:137:JGetBool", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "target": "function:n_b64.c:169:JB64EncodeLen", + "target_artifact": "artifacts/functions/n_b64_c__L169__JB64EncodeLen.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "target": "function:n_b64.c:174:JB64Encode", + "target_artifact": "artifacts/functions/n_b64_c__L174__JB64Encode.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "target": "function:n_helpers.c:1754:NoteSleep", + "target_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "macro:note.h:1006:NOTE_C_LOG_INFO", + "target_artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_request.c:182:NoteNewCommand", + "target_artifact": "artifacts/functions/n_request_c__L182__NoteNewCommand.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_cjson.c:2384:JCreateStringReference", + "target_artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_cjson.c:1866:JAddItemToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_str.c:69:strlcat", + "target_artifact": "artifacts/functions/n_str_c__L69__strlcat.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_helpers.c:1754:NoteSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1805:NoteWake", + "source_artifact": "artifacts/functions/n_helpers_c__L1805__NoteWake.md", + "target": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "target_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1805:NoteWake", + "source_artifact": "artifacts/functions/n_helpers_c__L1805__NoteWake.md", + "target": "function:n_helpers.c:2453:NotePayloadFree", + "target_artifact": "artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_helpers.c:791:_setTime", + "target_artifact": "artifacts/functions/n_helpers_c__L791__setTime.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_b64.c:106:JB64DecodeLen", + "target_artifact": "artifacts/functions/n_b64_c__L106__JB64DecodeLen.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_b64.c:121:JB64Decode", + "target_artifact": "artifacts/functions/n_b64_c__L121__JB64Decode.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "macro:note.h:1006:NOTE_C_LOG_INFO", + "target_artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "macro:note.h:1006:NOTE_C_LOG_INFO", + "target_artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "function:n_request.c:766:NoteReset", + "target_artifact": "artifacts/functions/n_request_c__L766__NoteReset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1939:NoteSetProductID", + "source_artifact": "artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1939:NoteSetProductID", + "source_artifact": "artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1939:NoteSetProductID", + "source_artifact": "artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1963:NoteSetSerialNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1963:NoteSetSerialNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1963:NoteSetSerialNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1993:NoteSetUploadMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1993:NoteSetUploadMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1993:NoteSetUploadMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1993:NoteSetUploadMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:1993:NoteSetUploadMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2028:NoteSetSyncMode", + "source_artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2028:NoteSetSyncMode", + "source_artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2028:NoteSetSyncMode", + "source_artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2028:NoteSetSyncMode", + "source_artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2028:NoteSetSyncMode", + "source_artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2060:NoteTemplate", + "source_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2060:NoteTemplate", + "source_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2060:NoteTemplate", + "source_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2060:NoteTemplate", + "source_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "target": "function:n_cjson.c:1866:JAddItemToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2060:NoteTemplate", + "source_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2083:NoteAdd", + "source_artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2083:NoteAdd", + "source_artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2083:NoteAdd", + "source_artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2083:NoteAdd", + "source_artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "target": "function:n_cjson.c:1866:JAddItemToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2083:NoteAdd", + "source_artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2083:NoteAdd", + "source_artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_cjson.c:1866:JAddItemToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_cjson.c:2135:JDetachItemFromObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_str.c:69:strlcat", + "target_artifact": "artifacts/functions/n_str_c__L69__strlcat.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "function:n_cjson_helpers.c:99:JGetNumber", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "function:n_cjson_helpers.c:99:JGetNumber", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2226:NoteGetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2226:NoteGetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2226:NoteGetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2226:NoteGetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2226:NoteGetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2226:NoteGetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2276:NoteSetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2276__NoteSetContact.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2276:NoteSetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2276__NoteSetContact.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2276:NoteSetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2276__NoteSetContact.md", + "target": "function:n_request.c:191:NoteRequest", + "target_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2301:_timerExpiredSecs", + "source_artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_request.c:173:NoteNewRequest", + "target_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_request.c:88:_noteSuspendTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_request.c:80:_noteResumeTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "macro:note.h:479:NoteResponseError", + "target_artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "macro:note.h:486:NoteDeleteResponse", + "target_artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_cjson_helpers.c:60:JGetObject", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "macro:n_lib.h:256:_Debug", + "target_artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "macro:n_lib.h:257:_Debugln", + "target_artifact": "artifacts/macros/n_lib_h__L257__Debugln.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2399:NoteMemAvailable", + "source_artifact": "artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2399:NoteMemAvailable", + "source_artifact": "artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2453:NotePayloadFree", + "source_artifact": "artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2473:NotePayloadAddSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2473:NotePayloadAddSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-direct-call", + "kind": "calls", + "source": "function:n_helpers.c:2533:NotePayloadGetSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md", + "target": "function:n_helpers.c:2555:NotePayloadFindSegment", + "target_artifact": "artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_helpers.c:2587:NoteTurboIO", + "source_artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "target": "macro:note.h:998:NOTE_C_LOG_WARN", + "target_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:241:NoteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:241:NoteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md", + "target": "function:n_hooks.c:214:_noteSetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:241:NoteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:248:NoteSetFnDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:248:NoteSetFnDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:266:NoteSetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:266:NoteSetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:285:NoteSetFnHeartbeat", + "source_artifact": "artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:285:NoteSetFnHeartbeat", + "source_artifact": "artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:294:NoteSetFnDebugOutput", + "source_artifact": "artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:294:NoteSetFnDebugOutput", + "source_artifact": "artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:313:NoteSetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:313:NoteSetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:341:NoteSetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:341:NoteSetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "target": "function:n_hooks.c:214:_noteSetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:341:NoteSetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "target": "function:n_hooks.c:214:_noteSetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:381:NoteSetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:381:NoteSetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "target": "function:n_hooks.c:214:_noteSetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:381:NoteSetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "target": "function:n_hooks.c:214:_noteSetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:433:NoteSetFnDisabled", + "source_artifact": "artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:433:NoteSetFnDisabled", + "source_artifact": "artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md", + "target": "function:n_hooks.c:214:_noteSetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:433:NoteSetFnDisabled", + "source_artifact": "artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:453:NoteDebugIntln", + "source_artifact": "artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md", + "target": "macro:n_lib.h:256:_Debug", + "target_artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:453:NoteDebugIntln", + "source_artifact": "artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md", + "target": "function:n_cjson_helpers.c:284:JItoA", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:464:NoteDebugln", + "source_artifact": "artifacts/functions/n_hooks_c__L464__NoteDebugln.md", + "target": "macro:n_lib.h:256:_Debug", + "target_artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:474:NoteDebug", + "source_artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "target": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "target_artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:485:NoteDebugWithLevel", + "source_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "target": "macro:n_lib.h:256:_Debug", + "target_artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "source_artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "target": "macro:n_lib.h:259:_DebugWithLevel", + "target_artifact": "artifacts/macros/n_lib_h__L259__DebugWithLevel.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:561:_n_ptoa32", + "source_artifact": "artifacts/functions/n_hooks_c__L561__n_ptoa32.md", + "target": "function:n_hooks.c:544:_n_htoa32", + "target_artifact": "artifacts/functions/n_hooks_c__L544__n_htoa32.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:569:NoteMalloc", + "source_artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "target": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "target_artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:569:NoteMalloc", + "source_artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "target": "function:n_cjson_helpers.c:284:JItoA", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:569:NoteMalloc", + "source_artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "target": "function:n_hooks.c:561:_n_ptoa32", + "target_artifact": "artifacts/functions/n_hooks_c__L561__n_ptoa32.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:595:NoteFree", + "source_artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "target": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "target_artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:595:NoteFree", + "source_artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "target": "function:n_hooks.c:561:_n_ptoa32", + "target_artifact": "artifacts/functions/n_hooks_c__L561__n_ptoa32.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:725:NoteGetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:725:NoteGetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:774:NoteGetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:774:NoteGetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:793:NoteGetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:793:NoteGetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:812:NoteGetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_hooks.c:812:NoteGetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:30:_delayIO", + "source_artifact": "artifacts/functions/n_i2c_c__L30__delayIO.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:48:_i2cNoteQueryLength", + "source_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:48:_i2cNoteQueryLength", + "source_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:48:_i2cNoteQueryLength", + "source_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "target": "macro:n_lib.h:236:_I2CReceive", + "target_artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:48:_i2cNoteQueryLength", + "source_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "target": "macro:n_lib.h:247:_I2CAddress", + "target_artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:48:_i2cNoteQueryLength", + "source_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:48:_i2cNoteQueryLength", + "source_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:48:_i2cNoteQueryLength", + "source_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:n_lib.h:245:_LockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "function:n_i2c.c:475:_i2cChunkedTransmit", + "target_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:n_lib.h:246:_UnlockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "function:n_i2c.c:30:_delayIO", + "target_artifact": "artifacts/functions/n_i2c_c__L30__delayIO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "function:n_i2c.c:48:_i2cNoteQueryLength", + "target_artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "function:n_i2c.c:365:_i2cChunkedReceive", + "target_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:245:_LockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:234:_I2CReset", + "target_artifact": "artifacts/macros/n_lib_h__L234__I2CReset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:247:_I2CAddress", + "target_artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:246:_UnlockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "function:n_i2c.c:30:_delayIO", + "target_artifact": "artifacts/functions/n_i2c_c__L30__delayIO.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:235:_I2CTransmit", + "target_artifact": "artifacts/macros/n_lib_h__L235__I2CTransmit.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:248:_I2CMax", + "target_artifact": "artifacts/macros/n_lib_h__L248__I2CMax.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:236:_I2CReceive", + "target_artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:note.h:998:NOTE_C_LOG_WARN", + "target_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:338:_i2cNoteChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md", + "target": "macro:n_lib.h:245:_LockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:338:_i2cNoteChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md", + "target": "function:n_i2c.c:365:_i2cChunkedReceive", + "target_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:338:_i2cNoteChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md", + "target": "macro:n_lib.h:246:_UnlockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:n_lib.h:248:_I2CMax", + "target_artifact": "artifacts/macros/n_lib_h__L248__I2CMax.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:n_lib.h:236:_I2CReceive", + "target_artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:n_lib.h:247:_I2CAddress", + "target_artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:note.h:998:NOTE_C_LOG_WARN", + "target_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:456:_i2cNoteChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md", + "target": "macro:n_lib.h:245:_LockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:456:_i2cNoteChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md", + "target": "function:n_i2c.c:475:_i2cChunkedTransmit", + "target_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:456:_i2cNoteChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md", + "target": "macro:n_lib.h:246:_UnlockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:248:_I2CMax", + "target_artifact": "artifacts/macros/n_lib_h__L248__I2CMax.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "function:n_i2c.c:30:_delayIO", + "target_artifact": "artifacts/functions/n_i2c_c__L30__delayIO.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:235:_I2CTransmit", + "target_artifact": "artifacts/macros/n_lib_h__L235__I2CTransmit.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:247:_I2CAddress", + "target_artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:234:_I2CReset", + "target_artifact": "artifacts/macros/n_lib_h__L234__I2CReset.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:95:NoteMD5Update", + "source_artifact": "artifacts/functions/n_md5_c__L95__NoteMD5Update.md", + "target": "function:n_md5.c:201:NoteMD5Transform", + "target_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:143:NoteMD5Final", + "source_artifact": "artifacts/functions/n_md5_c__L143__NoteMD5Final.md", + "target": "function:n_md5.c:201:NoteMD5Transform", + "target_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:143:NoteMD5Final", + "source_artifact": "artifacts/functions/n_md5_c__L143__NoteMD5Final.md", + "target": "function:n_md5.c:48:putu32", + "target_artifact": "artifacts/functions/n_md5_c__L48__putu32.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:201:NoteMD5Transform", + "source_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "target": "function:n_md5.c:42:getu32", + "target_artifact": "artifacts/functions/n_md5_c__L42__getu32.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:201:NoteMD5Transform", + "source_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "target": "macro:n_md5.c:193:MD5STEP", + "target_artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:292:NoteMD5Hash", + "source_artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "target": "function:n_md5.c:78:NoteMD5Init", + "target_artifact": "artifacts/functions/n_md5_c__L78__NoteMD5Init.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:292:NoteMD5Hash", + "source_artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "target": "function:n_md5.c:95:NoteMD5Update", + "target_artifact": "artifacts/functions/n_md5_c__L95__NoteMD5Update.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:292:NoteMD5Hash", + "source_artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "target": "function:n_md5.c:143:NoteMD5Final", + "target_artifact": "artifacts/functions/n_md5_c__L143__NoteMD5Final.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:301:NoteMD5HashString", + "source_artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "target": "function:n_md5.c:292:NoteMD5Hash", + "target_artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:301:NoteMD5HashString", + "source_artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "target": "function:n_md5.c:57:n_htoa8", + "target_artifact": "artifacts/functions/n_md5_c__L57__n_htoa8.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:301:NoteMD5HashString", + "source_artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:314:NoteMD5HashToString", + "source_artifact": "artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md", + "target": "function:n_md5.c:57:n_htoa8", + "target_artifact": "artifacts/functions/n_md5_c__L57__n_htoa8.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_md5.c:314:NoteMD5HashToString", + "source_artifact": "artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md", + "target": "function:n_str.c:31:strlcpy", + "target_artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_printf.c:35:NoteDebugf", + "source_artifact": "artifacts/functions/n_printf_c__L35__NoteDebugf.md", + "target": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "target_artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_printf.c:60:NotePrintf", + "source_artifact": "artifacts/functions/n_printf_c__L60__NotePrintf.md", + "target": "function:n_helpers.c:847:NotePrint", + "target_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:55:_errDoc", + "source_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:55:_errDoc", + "source_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:55:_errDoc", + "source_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "target": "function:n_cjson.c:1989:JAddIntToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:55:_errDoc", + "source_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "target": "macro:n_lib.h:259:_DebugWithLevel", + "target_artifact": "artifacts/macros/n_lib_h__L259__DebugWithLevel.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:55:_errDoc", + "source_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "target": "macro:n_lib.h:260:_DebugWithLevelLn", + "target_artifact": "artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:55:_errDoc", + "source_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "function:n_cjson_helpers.c:194:JContainsString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "function:n_cjson_helpers.c:19:JIsPresent", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:153:NoteSuspendTransactionDebug", + "source_artifact": "artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md", + "target": "function:n_request.c:88:_noteSuspendTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:161:NoteResumeTransactionDebug", + "source_artifact": "artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md", + "target": "function:n_request.c:80:_noteResumeTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:173:NoteNewRequest", + "source_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:173:NoteNewRequest", + "source_artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:182:NoteNewCommand", + "source_artifact": "artifacts/functions/n_request_c__L182__NoteNewCommand.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:182:NoteNewCommand", + "source_artifact": "artifacts/functions/n_request_c__L182__NoteNewCommand.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:191:NoteRequest", + "source_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "target": "function:n_request.c:220:NoteRequestResponse", + "target_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:191:NoteRequest", + "source_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:191:NoteRequest", + "source_artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:205:NoteRequestWithRetry", + "source_artifact": "artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md", + "target": "function:n_request.c:234:NoteRequestResponseWithRetry", + "target_artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:205:NoteRequestWithRetry", + "source_artifact": "artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:205:NoteRequestWithRetry", + "source_artifact": "artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:220:NoteRequestResponse", + "source_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "target": "function:n_request.c:411:NoteTransaction", + "target_artifact": "artifacts/functions/n_request_c__L411__NoteTransaction.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:220:NoteRequestResponse", + "source_artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:234:NoteRequestResponseWithRetry", + "source_artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:234:NoteRequestResponseWithRetry", + "source_artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "target": "function:n_request.c:411:NoteTransaction", + "target_artifact": "artifacts/functions/n_request_c__L411__NoteTransaction.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:234:NoteRequestResponseWithRetry", + "source_artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "target": "function:n_cjson_helpers.c:194:JContainsString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:234:NoteRequestResponseWithRetry", + "source_artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:228:_TransactionStart", + "target_artifact": "artifacts/macros/n_lib_h__L228__TransactionStart.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:note.h:998:NOTE_C_LOG_WARN", + "target_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "function:n_cjson.c:976:JParse", + "target_artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "function:n_cjson_helpers.c:19:JIsPresent", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:238:_Transaction", + "target_artifact": "artifacts/macros/n_lib_h__L238__Transaction.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "function:n_request.c:55:_errDoc", + "target_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "function:n_cjson.c:1051:JPrintUnformatted", + "target_artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:229:_TransactionStop", + "target_artifact": "artifacts/macros/n_lib_h__L229__TransactionStop.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:411:NoteTransaction", + "source_artifact": "artifacts/functions/n_request_c__L411__NoteTransaction.md", + "target": "function:n_request.c:428:_noteTransactionShouldLock", + "target_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson.c:1051:JPrintUnformatted", + "target_artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson_helpers.c:27:JGetString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson_helpers.c:122:JGetInt", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:228:_TransactionStart", + "target_artifact": "artifacts/macros/n_lib_h__L228__TransactionStart.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_request.c:55:_errDoc", + "target_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson_helpers.c:19:JIsPresent", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson_helpers.c:194:JContainsString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_ua.c:95:NoteUserAgent", + "target_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson.c:1866:JAddItemToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "target_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_request.c:1047:_crcAdd", + "target_artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:237:_Reset", + "target_artifact": "artifacts/macros/n_lib_h__L237__Reset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:229:_TransactionStop", + "target_artifact": "artifacts/macros/n_lib_h__L229__TransactionStop.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:1006:NOTE_C_LOG_INFO", + "target_artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:238:_Transaction", + "target_artifact": "artifacts/macros/n_lib_h__L238__Transaction.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_request.c:940:NoteErrorContains", + "target_artifact": "artifacts/functions/n_request_c__L940__NoteErrorContains.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:998:NOTE_C_LOG_WARN", + "target_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_request.c:1113:_crcError", + "target_artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson.c:976:JParse", + "target_artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:259:_DebugWithLevel", + "target_artifact": "artifacts/macros/n_lib_h__L259__DebugWithLevel.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_hooks.c:643:_noteHeartbeat", + "target_artifact": "artifacts/functions/n_hooks_c__L643__noteHeartbeat.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_request.c:756:NoteResetRequired", + "target_artifact": "artifacts/functions/n_request_c__L756__NoteResetRequired.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:766:NoteReset", + "source_artifact": "artifacts/functions/n_request_c__L766__NoteReset.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:766:NoteReset", + "source_artifact": "artifacts/functions/n_request_c__L766__NoteReset.md", + "target": "macro:n_lib.h:237:_Reset", + "target_artifact": "artifacts/macros/n_lib_h__L237__Reset.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:766:NoteReset", + "source_artifact": "artifacts/functions/n_request_c__L766__NoteReset.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "function:n_hooks.c:209:NoteGetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:232:_SerialAvailable", + "target_artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:233:_SerialReceive", + "target_artifact": "artifacts/macros/n_lib_h__L233__SerialReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:245:_LockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:236:_I2CReceive", + "target_artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:247:_I2CAddress", + "target_artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:786:_notePingDrainInput", + "source_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "target": "macro:n_lib.h:246:_UnlockI2C", + "target_artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_cjson.c:1051:JPrintUnformatted", + "target_artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_request.c:88:_noteSuspendTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "macro:n_lib.h:228:_TransactionStart", + "target_artifact": "artifacts/macros/n_lib_h__L228__TransactionStart.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_request.c:80:_noteResumeTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "macro:n_lib.h:226:_LockNote", + "target_artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_request.c:786:_notePingDrainInput", + "target_artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "macro:n_lib.h:238:_Transaction", + "target_artifact": "artifacts/macros/n_lib_h__L238__Transaction.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "macro:n_lib.h:227:_UnlockNote", + "target_artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "macro:n_lib.h:229:_TransactionStop", + "target_artifact": "artifacts/macros/n_lib_h__L229__TransactionStop.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_cjson.c:976:JParse", + "target_artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_request.c:841:NotePing", + "source_artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "target": "function:n_cjson_helpers.c:173:JIsExactString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:1047:_crcAdd", + "source_artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:1047:_crcAdd", + "source_artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "target": "function:n_cjson.c:728:_n_htoa16", + "target_artifact": "artifacts/functions/n_cjson_c__L728__n_htoa16.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:1047:_crcAdd", + "source_artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "target": "function:n_hooks.c:544:_n_htoa32", + "target_artifact": "artifacts/functions/n_hooks_c__L544__n_htoa32.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:1047:_crcAdd", + "source_artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "target": "function:n_request.c:1019:_crc32", + "target_artifact": "artifacts/functions/n_request_c__L1019__crc32.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:1113:_crcError", + "source_artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "target": "function:n_request.c:975:_n_atoh", + "target_artifact": "artifacts/functions/n_request_c__L975__n_atoh.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_request.c:1113:_crcError", + "source_artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "target": "function:n_request.c:1019:_crc32", + "target_artifact": "artifacts/functions/n_request_c__L1019__crc32.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "function:n_serial.c:303:_serialChunkedTransmit", + "target_artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:231:_SerialTransmit", + "target_artifact": "artifacts/macros/n_lib_h__L231__SerialTransmit.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:232:_SerialAvailable", + "target_artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:241:_Malloc", + "target_artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "function:n_serial.c:237:_serialChunkedReceive", + "target_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:242:_Free", + "target_artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "target_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:230:_SerialReset", + "target_artifact": "artifacts/macros/n_lib_h__L230__SerialReset.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:231:_SerialTransmit", + "target_artifact": "artifacts/macros/n_lib_h__L231__SerialTransmit.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:232:_SerialAvailable", + "target_artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:233:_SerialReceive", + "target_artifact": "artifacts/macros/n_lib_h__L233__SerialReceive.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:n_lib.h:243:_GetMs", + "target_artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:n_lib.h:232:_SerialAvailable", + "target_artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-callsite-group", + "kind": "calls", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:note.h:990:NOTE_C_LOG_ERROR", + "target_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "verified": true + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:note.h:75:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:note.h:78:ERRSTR", + "target_artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:n_lib.h:233:_SerialReceive", + "target_artifact": "artifacts/macros/n_lib_h__L233__SerialReceive.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:303:_serialChunkedTransmit", + "source_artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "target": "macro:n_lib.h:231:_SerialTransmit", + "target_artifact": "artifacts/macros/n_lib_h__L231__SerialTransmit.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_serial.c:303:_serialChunkedTransmit", + "source_artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "target": "macro:n_lib.h:244:_DelayMs", + "target_artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "function:n_cjson.c:2450:JCreateObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "macro:note.h:40:NOTE_C_STRINGIZE", + "target_artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "function:n_hooks.c:209:NoteGetActiveInterface", + "target_artifact": "artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": false + }, + { + "confidence": "low", + "extraction_method": "lexical", + "kind": "calls", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "function:n_ua.c:80:NoteUserAgentUpdate", + "target_artifact": "artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md", + "verified": false + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expansion", + "kind": "macro_expands", + "source": "macro:note.h:990:NOTE_C_LOG_ERROR", + "source_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "target": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "target_artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expansion", + "kind": "macro_expands", + "source": "macro:note.h:990:NOTE_C_LOG_ERROR", + "source_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "target": "function:n_hooks.c:485:NoteDebugWithLevel", + "target_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expansion", + "kind": "macro_expands", + "source": "macro:note.h:990:NOTE_C_LOG_ERROR", + "source_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "target": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "target_artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-md5step-argument", + "kind": "macro_expands", + "source": "function:n_md5.c:201:NoteMD5Transform", + "source_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "target": "macro:n_md5.c:187:F1", + "target_artifact": "artifacts/macros/n_md5_c__L187__F1.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-md5step-argument", + "kind": "macro_expands", + "source": "function:n_md5.c:201:NoteMD5Transform", + "source_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "target": "macro:n_md5.c:188:F2", + "target_artifact": "artifacts/macros/n_md5_c__L188__F2.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-md5step-argument", + "kind": "macro_expands", + "source": "function:n_md5.c:201:NoteMD5Transform", + "source_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "target": "macro:n_md5.c:189:F3", + "target_artifact": "artifacts/macros/n_md5_c__L189__F3.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-md5step-argument", + "kind": "macro_expands", + "source": "function:n_md5.c:201:NoteMD5Transform", + "source_artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "target": "macro:n_md5.c:190:F4", + "target_artifact": "artifacts/macros/n_md5_c__L190__F4.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "source-inspected-macro-parameter-f", + "kind": "possible_dynamic_call", + "source": "macro:n_md5.c:193:MD5STEP", + "source_artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "target": "macro:n_md5.c:187:F1", + "target_artifact": "artifacts/macros/n_md5_c__L187__F1.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "source-inspected-macro-parameter-f", + "kind": "possible_dynamic_call", + "source": "macro:n_md5.c:193:MD5STEP", + "source_artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "target": "macro:n_md5.c:188:F2", + "target_artifact": "artifacts/macros/n_md5_c__L188__F2.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "source-inspected-macro-parameter-f", + "kind": "possible_dynamic_call", + "source": "macro:n_md5.c:193:MD5STEP", + "source_artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "target": "macro:n_md5.c:189:F3", + "target_artifact": "artifacts/macros/n_md5_c__L189__F3.md", + "verified": true + }, + { + "confidence": "medium", + "extraction_method": "source-inspected-macro-parameter-f", + "kind": "possible_dynamic_call", + "source": "macro:n_md5.c:193:MD5STEP", + "source_artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "target": "macro:n_md5.c:190:F4", + "target_artifact": "artifacts/macros/n_md5_c__L190__F4.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expansion", + "kind": "macro_expands", + "source": "macro:n_md5.c:188:F2", + "source_artifact": "artifacts/macros/n_md5_c__L188__F2.md", + "target": "macro:n_md5.c:187:F1", + "target_artifact": "artifacts/macros/n_md5_c__L187__F1.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_serial.c:153:_serialNoteReset", + "target_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_serial.c:35:_serialNoteTransaction", + "target_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_serial.c:237:_serialChunkedReceive", + "target_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_serial.c:303:_serialChunkedTransmit", + "target_artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_i2c.c:195:_i2cNoteReset", + "target_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_i2c.c:87:_i2cNoteTransaction", + "target_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_i2c.c:338:_i2cNoteChunkedReceive", + "target_artifact": "artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-selector", + "kind": "assigns_function_pointer", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "function:n_i2c.c:456:_i2cNoteChunkedTransmit", + "target_artifact": "artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-dispatch", + "kind": "dispatches_via_pointer", + "source": "function:n_hooks.c:1015:_noteHardReset", + "source_artifact": "artifacts/functions/n_hooks_c__L1015__noteHardReset.md", + "target": "function:n_serial.c:153:_serialNoteReset", + "target_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-dispatch", + "kind": "dispatches_via_pointer", + "source": "function:n_hooks.c:1015:_noteHardReset", + "source_artifact": "artifacts/functions/n_hooks_c__L1015__noteHardReset.md", + "target": "function:n_i2c.c:195:_i2cNoteReset", + "target_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-dispatch", + "kind": "dispatches_via_pointer", + "source": "function:n_hooks.c:1042:_noteJSONTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md", + "target": "function:n_serial.c:35:_serialNoteTransaction", + "target_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-function-pointer-dispatch", + "kind": "dispatches_via_pointer", + "source": "function:n_hooks.c:1042:_noteJSONTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md", + "target": "function:n_i2c.c:87:_i2cNoteTransaction", + "target_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "macro:n_cjson.h:176:N_CJSON_NESTING_LIMIT", + "target_artifact": "artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "macro:n_cjson.h:176:N_CJSON_NESTING_LIMIT", + "target_artifact": "artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-alias", + "kind": "expands_to", + "source": "macro:n_cjson.h:322:JObjectForEach", + "source_artifact": "artifacts/macros/n_cjson_h__L322__JObjectForEach.md", + "target": "macro:n_cjson.h:320:JArrayForEach", + "target_artifact": "artifacts/macros/n_cjson_h__L320__JArrayForEach.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2665:JIsInvalid", + "source_artifact": "artifacts/functions/n_cjson_c__L2665__JIsInvalid.md", + "target": "macro:n_cjson.h:59:JInvalid", + "target_artifact": "artifacts/macros/n_cjson_h__L59__JInvalid.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "macro:n_cjson.h:59:JInvalid", + "target_artifact": "artifacts/macros/n_cjson_h__L59__JInvalid.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2312:JCreateFalse", + "source_artifact": "artifacts/functions/n_cjson_c__L2312__JCreateFalse.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2321:JCreateBool", + "source_artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2673:JIsFalse", + "source_artifact": "artifacts/functions/n_cjson_c__L2673__JIsFalse.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2690:JIsBool", + "source_artifact": "artifacts/functions/n_cjson_c__L2690__JIsBool.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2303:JCreateTrue", + "source_artifact": "artifacts/functions/n_cjson_c__L2303__JCreateTrue.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2321:JCreateBool", + "source_artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2681:JIsTrue", + "source_artifact": "artifacts/functions/n_cjson_c__L2681__JIsTrue.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2690:JIsBool", + "source_artifact": "artifacts/functions/n_cjson_c__L2690__JIsBool.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_cjson.h:62:JNULL", + "target_artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:62:JNULL", + "target_artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2697:JIsNull", + "source_artifact": "artifacts/functions/n_cjson_c__L2697__JIsNull.md", + "target": "macro:n_cjson.h:62:JNULL", + "target_artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "macro:n_cjson.h:63:JNumber", + "target_artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:63:JNumber", + "target_artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2330:JCreateNumber", + "source_artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "target": "macro:n_cjson.h:63:JNumber", + "target_artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2349:JCreateInteger", + "source_artifact": "artifacts/functions/n_cjson_c__L2349__JCreateInteger.md", + "target": "macro:n_cjson.h:63:JNumber", + "target_artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2705:JIsNumber", + "source_artifact": "artifacts/functions/n_cjson_c__L2705__JIsNumber.md", + "target": "macro:n_cjson.h:63:JNumber", + "target_artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:96:JGetStringValue", + "source_artifact": "artifacts/functions/n_cjson_c__L96__JGetStringValue.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:604:_parse_string", + "source_artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2360:JCreateString", + "source_artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2374:JCreateStringValue", + "source_artifact": "artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2384:JCreateStringReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2713:JIsString", + "source_artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2407:JCreateArrayReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2434:JCreateArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2721:JIsArray", + "source_artifact": "artifacts/functions/n_cjson_c__L2721__JIsArray.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2394:JCreateObjectReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2450:JCreateObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2729:JIsObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2729__JIsObject.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_cjson.h:67:JRaw", + "target_artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2420:JCreateRaw", + "source_artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "target": "macro:n_cjson.h:67:JRaw", + "target_artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2737:JIsRaw", + "source_artifact": "artifacts/functions/n_cjson_c__L2737__JIsRaw.md", + "target": "macro:n_cjson.h:67:JRaw", + "target_artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "macro:n_cjson.h:69:JIsReference", + "target_artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1764:_create_reference", + "source_artifact": "artifacts/functions/n_cjson_c__L1764__create_reference.md", + "target": "macro:n_cjson.h:69:JIsReference", + "target_artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2384:JCreateStringReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "target": "macro:n_cjson.h:69:JIsReference", + "target_artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2394:JCreateObjectReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md", + "target": "macro:n_cjson.h:69:JIsReference", + "target_artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2407:JCreateArrayReference", + "source_artifact": "artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md", + "target": "macro:n_cjson.h:69:JIsReference", + "target_artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2550:JDuplicate", + "source_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "target": "macro:n_cjson.h:69:JIsReference", + "target_artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "macro:n_cjson.h:70:JStringIsConst", + "target_artifact": "artifacts/macros/n_cjson_h__L70__JStringIsConst.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1835:_add_item_to_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "target": "macro:n_cjson.h:70:JStringIsConst", + "target_artifact": "artifacts/macros/n_cjson_h__L70__JStringIsConst.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2253:_replace_item_in_object", + "source_artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "target": "macro:n_cjson.h:70:JStringIsConst", + "target_artifact": "artifacts/macros/n_cjson_h__L70__JStringIsConst.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-flag-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2550:JDuplicate", + "source_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "target": "macro:n_cjson.h:70:JStringIsConst", + "target_artifact": "artifacts/macros/n_cjson_h__L70__JStringIsConst.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:62:JNULL", + "target_artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:63:JNumber", + "target_artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:355:JType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "target": "macro:n_cjson.h:67:JRaw", + "target_artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:60:JFalse", + "target_artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:61:JTrue", + "target_artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:62:JNULL", + "target_artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:63:JNumber", + "target_artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:64:JString", + "target_artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:65:JArray", + "target_artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:66:JObject", + "target_artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-helper-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:n_cjson.h:67:JRaw", + "target_artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "source_artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "target": "macro:n_cobs.c:8:COBS_EOP_OVERHEAD", + "target_artifact": "artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "source_artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "target": "macro:n_cobs.c:9:COBS_MAX_PACKET_SIZE", + "target_artifact": "artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:56:JNtoA", + "source_artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "target": "macro:n_ftoa.c:28:PRINT_F_TYPE_G", + "target_artifact": "artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:26:PRINT_F_QUOTE", + "target_artifact": "artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:27:PRINT_F_TYPE_E", + "target_artifact": "artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:28:PRINT_F_TYPE_G", + "target_artifact": "artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:29:PRINT_F_NUM", + "target_artifact": "artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:30:PRINT_F_PLUS", + "target_artifact": "artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:31:PRINT_F_MINUS", + "target_artifact": "artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:32:PRINT_F_ZERO", + "target_artifact": "artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:33:PRINT_F_SPACE", + "target_artifact": "artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:n_ftoa.c:34:PRINT_F_UP", + "target_artifact": "artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-format-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:378:fmtstr", + "source_artifact": "artifacts/functions/n_ftoa_c__L378__fmtstr.md", + "target": "macro:n_ftoa.c:31:PRINT_F_MINUS", + "target_artifact": "artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-compile-guard-reference", + "kind": "uses_constant", + "source": "function:n_hooks.c:561:_n_ptoa32", + "source_artifact": "artifacts/functions/n_hooks_c__L561__n_ptoa32.md", + "target": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "target_artifact": "artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-compile-guard-reference", + "kind": "uses_constant", + "source": "function:n_hooks.c:569:NoteMalloc", + "source_artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "target": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "target_artifact": "artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-compile-guard-reference", + "kind": "uses_constant", + "source": "function:n_hooks.c:595:NoteFree", + "source_artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "target": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "target_artifact": "artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:379:JGetType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L379__JGetType.md", + "target": "macro:note.h:1400:JTYPE_NOT_PRESENT", + "target_artifact": "artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1400:JTYPE_NOT_PRESENT", + "target_artifact": "artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1401:JTYPE_BOOL_TRUE", + "target_artifact": "artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "target_artifact": "artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1404:JTYPE_NULL", + "target_artifact": "artifacts/macros/note_h__L1404__JTYPE_NULL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "target_artifact": "artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1406:JTYPE_NUMBER", + "target_artifact": "artifacts/macros/note_h__L1406__JTYPE_NUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1407:JTYPE_STRING_BLANK", + "target_artifact": "artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1408:JTYPE_STRING_ZERO", + "target_artifact": "artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1409:JTYPE_STRING_NUMBER", + "target_artifact": "artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1410:JTYPE_STRING_BOOL_TRUE", + "target_artifact": "artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1411:JTYPE_STRING_BOOL_FALSE", + "target_artifact": "artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1412:JTYPE_STRING", + "target_artifact": "artifacts/macros/note_h__L1412__JTYPE_STRING.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1413:JTYPE_OBJECT", + "target_artifact": "artifacts/macros/note_h__L1413__JTYPE_OBJECT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:387:JGetItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "target": "macro:note.h:1414:JTYPE_ARRAY", + "target_artifact": "artifacts/macros/note_h__L1414__JTYPE_ARRAY.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1401:JTYPE_BOOL_TRUE", + "target_artifact": "artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "target_artifact": "artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1403:JTYPE_BOOL", + "target_artifact": "artifacts/macros/note_h__L1403__JTYPE_BOOL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "target_artifact": "artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1406:JTYPE_NUMBER", + "target_artifact": "artifacts/macros/note_h__L1406__JTYPE_NUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1407:JTYPE_STRING_BLANK", + "target_artifact": "artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1408:JTYPE_STRING_ZERO", + "target_artifact": "artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1409:JTYPE_STRING_NUMBER", + "target_artifact": "artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1410:JTYPE_STRING_BOOL_TRUE", + "target_artifact": "artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1411:JTYPE_STRING_BOOL_FALSE", + "target_artifact": "artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:446:JBaseItemType", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "target": "macro:note.h:1412:JTYPE_STRING", + "target_artifact": "artifacts/macros/note_h__L1412__JTYPE_STRING.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1507:_last_non_omitted_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "target": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "target_artifact": "artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1507:_last_non_omitted_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "target": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "target_artifact": "artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1507:_last_non_omitted_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "target": "macro:note.h:1407:JTYPE_STRING_BLANK", + "target_artifact": "artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "target_artifact": "artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "target_artifact": "artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-jtype-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1523:_print_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "target": "macro:note.h:1407:JTYPE_STRING_BLANK", + "target_artifact": "artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:166:NoteSetRequestTimeout", + "source_artifact": "artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md", + "target": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:279:NoteRequestResponseJSON", + "source_artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "target": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:365:_i2cChunkedReceive", + "source_artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "target": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:237:_serialChunkedReceive", + "source_artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "target": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "target_artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:56:CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "target_artifact": "artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "target_artifact": "artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "target_artifact": "artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "target_artifact": "artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:475:_i2cChunkedTransmit", + "source_artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "target": "macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "target_artifact": "artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:74:CARD_REQUEST_I2C_NACK_WAIT_MS", + "target_artifact": "artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:303:_serialChunkedTransmit", + "source_artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "target": "macro:n_lib.h:80:CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "target_artifact": "artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "target_artifact": "artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:303:_serialChunkedTransmit", + "source_artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "target": "macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "target_artifact": "artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:92:CARD_RESET_DRAIN_MS", + "target_artifact": "artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:92:CARD_RESET_DRAIN_MS", + "target_artifact": "artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:n_lib.h:98:CARD_REQUEST_RETRIES_ALLOWED", + "target_artifact": "artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES", + "target_artifact": "artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:153:_serialNoteReset", + "source_artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "target": "macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES", + "target_artifact": "artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:n_lib.h:111:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:111:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:111:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:351:_ensure", + "source_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "target": "macro:n_lib.h:111:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:87:_i2cNoteTransaction", + "source_artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "target": "macro:n_lib.h:113:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_i2c.c:195:_i2cNoteReset", + "source_artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "target": "macro:n_lib.h:113:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:113:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:351:_ensure", + "source_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "target": "macro:n_lib.h:113:ALLOC_CHUNK", + "target_artifact": "artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-wrapper", + "kind": "expands_to", + "source": "macro:n_lib.h:258:_DebugIntln", + "source_artifact": "artifacts/macros/n_lib_h__L258__DebugIntln.md", + "target": "function:n_hooks.c:453:NoteDebugIntln", + "target_artifact": "artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:1047:_crcAdd", + "source_artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "target": "macro:n_request.c:31:CRC_FIELD_LENGTH", + "target_artifact": "artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:1113:_crcError", + "source_artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "target": "macro:n_request.c:31:CRC_FIELD_LENGTH", + "target_artifact": "artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:1113:_crcError", + "source_artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "target": "macro:n_request.c:32:CRC_FIELD_NAME_OFFSET", + "target_artifact": "artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:1113:_crcError", + "source_artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "target": "macro:n_request.c:33:CRC_FIELD_NAME_TEST", + "target_artifact": "artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:1113:_crcError", + "source_artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "target": "macro:n_request.c:34:ERR_FIELD_NAME_TEST", + "target_artifact": "artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "macro:n_ua.c:107:PLUS", + "target_artifact": "artifacts/macros/n_ua_c__L107__PLUS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "macro:n_ua.c:109:PLUS", + "target_artifact": "artifacts/macros/n_ua_c__L109__PLUS.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_lib.h:186:c_false_len", + "target_artifact": "artifacts/macros/n_lib_h__L186__c_false_len.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_lib.h:186:c_false_len", + "target_artifact": "artifacts/macros/n_lib_h__L186__c_false_len.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_lib.h:207:c_null_len", + "target_artifact": "artifacts/macros/n_lib_h__L207__c_null_len.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_lib.h:207:c_null_len", + "target_artifact": "artifacts/macros/n_lib_h__L207__c_null_len.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "macro:n_lib.h:219:c_true_len", + "target_artifact": "artifacts/macros/n_lib_h__L219__c_true_len.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "macro:n_lib.h:219:c_true_len", + "target_artifact": "artifacts/macros/n_lib_h__L219__c_true_len.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_serial.c:35:_serialNoteTransaction", + "source_artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "target": "macro:n_lib.h:204:c_newline_len", + "target_artifact": "artifacts/macros/n_lib_h__L204__c_newline_len.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-wrapper", + "kind": "expands_to", + "source": "macro:note.h:323:NoteAddBodyToObject", + "source_artifact": "artifacts/macros/note_h__L323__NoteAddBodyToObject.md", + "target": "function:n_cjson.c:1866:JAddItemToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-wrapper", + "kind": "expands_to", + "source": "macro:note.h:324:NoteGetBody", + "source_artifact": "artifacts/macros/note_h__L324__NoteGetBody.md", + "target": "function:n_cjson_helpers.c:60:JGetObject", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-wrapper", + "kind": "expands_to", + "source": "macro:note.h:480:NoteResponseErrorContains", + "source_artifact": "artifacts/macros/note_h__L480__NoteResponseErrorContains.md", + "target": "function:n_cjson_helpers.c:194:JContainsString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "macro:note.h:414:SYNCSTATUS_LEVEL_ALL", + "target_artifact": "artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:56:JNtoA", + "source_artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "target": "macro:note.h:1443:JNTOA_PRECISION", + "target_artifact": "artifacts/macros/note_h__L1443__JNTOA_PRECISION.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:56:JNtoA", + "source_artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "target": "macro:note.h:1444:JNTOA_MAX", + "target_artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_ftoa.c:74:fmtflt", + "source_artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "target": "macro:note.h:1444:JNTOA_MAX", + "target_artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:412:_print_number", + "source_artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "target": "macro:note.h:1444:JNTOA_MAX", + "target_artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:1250:NoteSetEnvDefaultNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md", + "target": "macro:note.h:1444:JNTOA_MAX", + "target_artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:1265:NoteGetEnvNumber", + "source_artifact": "artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md", + "target": "macro:note.h:1444:JNTOA_MAX", + "target_artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_md5.c:301:NoteMD5HashString", + "source_artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "target": "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "target_artifact": "artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_md5.c:314:NoteMD5HashToString", + "source_artifact": "artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md", + "target": "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "target_artifact": "artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "target_artifact": "artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "target_artifact": "artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "source_artifact": "artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md", + "target": "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "target_artifact": "artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "macro:note.h:990:NOTE_C_LOG_ERROR", + "source_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "target": "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "target_artifact": "artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "macro:note.h:998:NOTE_C_LOG_WARN", + "source_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "target": "macro:note.h:954:NOTE_C_LOG_LEVEL_WARN", + "target_artifact": "artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "macro:note.h:1006:NOTE_C_LOG_INFO", + "source_artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "target": "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "target_artifact": "artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "source_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "target": "macro:note.h:956:NOTE_C_LOG_LEVEL_DEBUG", + "target_artifact": "artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md", + "target": "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "target_artifact": "artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:55:_errDoc", + "source_artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "target": "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "target_artifact": "artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_request.c:428:_noteTransactionShouldLock", + "source_artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "target": "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "target_artifact": "artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-deprecated-declaration", + "kind": "annotates_decl", + "source": "macro:note.h:19:NOTE_C_DEPRECATED", + "source_artifact": "artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md", + "target": "function:n_request.c:153:NoteSuspendTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-deprecated-declaration", + "kind": "annotates_decl", + "source": "macro:note.h:19:NOTE_C_DEPRECATED", + "source_artifact": "artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md", + "target": "function:n_request.c:161:NoteResumeTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-deprecated-declaration", + "kind": "annotates_decl", + "source": "macro:note.h:19:NOTE_C_DEPRECATED", + "source_artifact": "artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md", + "target": "function:n_helpers.c:2587:NoteTurboIO", + "target_artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-deprecated-declaration", + "kind": "annotates_decl", + "source": "macro:note.h:21:NOTE_C_DEPRECATED", + "source_artifact": "artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md", + "target": "function:n_request.c:153:NoteSuspendTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-deprecated-declaration", + "kind": "annotates_decl", + "source": "macro:note.h:21:NOTE_C_DEPRECATED", + "source_artifact": "artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md", + "target": "function:n_request.c:161:NoteResumeTransactionDebug", + "target_artifact": "artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-deprecated-declaration", + "kind": "annotates_decl", + "source": "macro:note.h:21:NOTE_C_DEPRECATED", + "source_artifact": "artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md", + "target": "function:n_helpers.c:2587:NoteTurboIO", + "target_artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-stringize-delegation", + "kind": "expands_to", + "source": "macro:note.h:40:NOTE_C_STRINGIZE", + "source_artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "target": "macro:note.h:39:_NOTE_C_STRINGIZE", + "target_artifact": "artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-stringize-delegation", + "kind": "expands_to", + "source": "macro:note.h:2195:TSTRING", + "source_artifact": "artifacts/macros/note_h__L2195__TSTRING.md", + "target": "macro:note.h:39:_NOTE_C_STRINGIZE", + "target_artifact": "artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-stringize-delegation", + "kind": "expands_to", + "source": "macro:note.h:2196:TSTRINGV", + "source_artifact": "artifacts/macros/note_h__L2196__TSTRINGV.md", + "target": "macro:note.h:39:_NOTE_C_STRINGIZE", + "target_artifact": "artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:46:NOTE_C_VERSION", + "source_artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "target": "macro:note.h:42:NOTE_C_VERSION_MAJOR", + "target_artifact": "artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:46:NOTE_C_VERSION", + "source_artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "target": "macro:note.h:43:NOTE_C_VERSION_MINOR", + "target_artifact": "artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:46:NOTE_C_VERSION", + "source_artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "target": "macro:note.h:44:NOTE_C_VERSION_PATCH", + "target_artifact": "artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:46:NOTE_C_VERSION", + "source_artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "target": "macro:note.h:40:NOTE_C_STRINGIZE", + "target_artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_ua.c:95:NoteUserAgent", + "source_artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "target": "macro:note.h:46:NOTE_C_VERSION", + "target_artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "macro:note.h:94:JINTEGER_MIN", + "target_artifact": "artifacts/macros/note_h__L94__JINTEGER_MIN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:255:_parse_number", + "source_artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "target": "macro:note.h:95:JINTEGER_MAX", + "target_artifact": "artifacts/macros/note_h__L95__JINTEGER_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:322:JSetNumberHelper", + "source_artifact": "artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md", + "target": "macro:note.h:94:JINTEGER_MIN", + "target_artifact": "artifacts/macros/note_h__L94__JINTEGER_MIN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:322:JSetNumberHelper", + "source_artifact": "artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md", + "target": "macro:note.h:95:JINTEGER_MAX", + "target_artifact": "artifacts/macros/note_h__L95__JINTEGER_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2330:JCreateNumber", + "source_artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "target": "macro:note.h:94:JINTEGER_MIN", + "target_artifact": "artifacts/macros/note_h__L94__JINTEGER_MIN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson.c:2330:JCreateNumber", + "source_artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "target": "macro:note.h:95:JINTEGER_MAX", + "target_artifact": "artifacts/macros/note_h__L95__JINTEGER_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_cjson_helpers.c:284:JItoA", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "target": "macro:note.h:94:JINTEGER_MIN", + "target_artifact": "artifacts/macros/note_h__L94__JINTEGER_MIN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_hooks.c:969:NoteI2CAddress", + "source_artifact": "artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md", + "target": "macro:note.h:829:NOTE_I2C_ADDR_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:845:NOTE_I2C_MAX_MAX", + "source_artifact": "artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md", + "target": "macro:note.h:833:NOTE_I2C_HEADER_SIZE", + "target_artifact": "artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-i2c-macro-lattice", + "kind": "compatibility_mirror", + "source": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "source_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "target": "macro:note.h:845:NOTE_I2C_MAX_MAX", + "target_artifact": "artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-i2c-macro-lattice", + "kind": "compatibility_input_branch", + "source": "macro:note.h:843:NOTE_I2C_MAX_MAX", + "source_artifact": "artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md", + "target": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "target_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-i2c-macro-lattice", + "kind": "platform_default_dependency", + "source": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md", + "target": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "target_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-i2c-macro-lattice", + "kind": "compatibility_mirror", + "source": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "target": "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-i2c-macro-lattice", + "kind": "compatibility_mirror", + "source": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "target": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-i2c-macro-lattice", + "kind": "compatibility_mirror", + "source": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "source_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "target": "macro:note.h:876:NOTE_I2C_MAX_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_hooks.c:994:NoteI2CMax", + "source_artifact": "artifacts/functions/n_hooks_c__L994__NoteI2CMax.md", + "target": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "target_artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_hooks.c:994:NoteI2CMax", + "source_artifact": "artifacts/functions/n_hooks_c__L994__NoteI2CMax.md", + "target": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "target_artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:2473:NotePayloadAddSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "target": "macro:note.h:2102:NP_SEGTYPE_LEN", + "target_artifact": "artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:2555:NotePayloadFindSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md", + "target": "macro:note.h:2102:NP_SEGTYPE_LEN", + "target_artifact": "artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:2473:NotePayloadAddSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "target": "macro:note.h:2103:NP_SEGLEN_LEN", + "target_artifact": "artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:2473:NotePayloadAddSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "target": "macro:note.h:2104:NP_SEGHDR_LEN", + "target_artifact": "artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-constant-reference", + "kind": "uses_constant", + "source": "function:n_helpers.c:2555:NotePayloadFindSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md", + "target": "macro:note.h:2104:NP_SEGHDR_LEN", + "target_artifact": "artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:2104:NP_SEGHDR_LEN", + "source_artifact": "artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md", + "target": "macro:note.h:2102:NP_SEGTYPE_LEN", + "target_artifact": "artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-expression", + "kind": "expands_to", + "source": "macro:note.h:2104:NP_SEGHDR_LEN", + "source_artifact": "artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md", + "target": "macro:note.h:2103:NP_SEGLEN_LEN", + "target_artifact": "artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2182:TBOOL", + "source_artifact": "artifacts/macros/note_h__L2182__TBOOL.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2182:TBOOL", + "source_artifact": "artifacts/macros/note_h__L2182__TBOOL.md", + "target": "function:n_cjson.c:1950:JAddBoolToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2183:TINT8", + "source_artifact": "artifacts/macros/note_h__L2183__TINT8.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2183:TINT8", + "source_artifact": "artifacts/macros/note_h__L2183__TINT8.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2184:TINT16", + "source_artifact": "artifacts/macros/note_h__L2184__TINT16.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2184:TINT16", + "source_artifact": "artifacts/macros/note_h__L2184__TINT16.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2185:TINT24", + "source_artifact": "artifacts/macros/note_h__L2185__TINT24.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2185:TINT24", + "source_artifact": "artifacts/macros/note_h__L2185__TINT24.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2186:TINT32", + "source_artifact": "artifacts/macros/note_h__L2186__TINT32.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2186:TINT32", + "source_artifact": "artifacts/macros/note_h__L2186__TINT32.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2187:TINT64", + "source_artifact": "artifacts/macros/note_h__L2187__TINT64.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2187:TINT64", + "source_artifact": "artifacts/macros/note_h__L2187__TINT64.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2188:TUINT8", + "source_artifact": "artifacts/macros/note_h__L2188__TUINT8.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2188:TUINT8", + "source_artifact": "artifacts/macros/note_h__L2188__TUINT8.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2189:TUINT16", + "source_artifact": "artifacts/macros/note_h__L2189__TUINT16.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2189:TUINT16", + "source_artifact": "artifacts/macros/note_h__L2189__TUINT16.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2190:TUINT24", + "source_artifact": "artifacts/macros/note_h__L2190__TUINT24.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2190:TUINT24", + "source_artifact": "artifacts/macros/note_h__L2190__TUINT24.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2191:TUINT32", + "source_artifact": "artifacts/macros/note_h__L2191__TUINT32.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2191:TUINT32", + "source_artifact": "artifacts/macros/note_h__L2191__TUINT32.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2192:TFLOAT16", + "source_artifact": "artifacts/macros/note_h__L2192__TFLOAT16.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2192:TFLOAT16", + "source_artifact": "artifacts/macros/note_h__L2192__TFLOAT16.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2193:TFLOAT32", + "source_artifact": "artifacts/macros/note_h__L2193__TFLOAT32.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2193:TFLOAT32", + "source_artifact": "artifacts/macros/note_h__L2193__TFLOAT32.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2194:TFLOAT64", + "source_artifact": "artifacts/macros/note_h__L2194__TFLOAT64.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2194:TFLOAT64", + "source_artifact": "artifacts/macros/note_h__L2194__TFLOAT64.md", + "target": "function:n_cjson.c:1974:JAddNumberToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2195:TSTRING", + "source_artifact": "artifacts/macros/note_h__L2195__TSTRING.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2195:TSTRING", + "source_artifact": "artifacts/macros/note_h__L2195__TSTRING.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "public_template_constant_for", + "source": "macro:note.h:2196:TSTRINGV", + "source_artifact": "artifacts/macros/note_h__L2196__TSTRINGV.md", + "target": "function:n_helpers.c:2060:NoteTemplate", + "target_artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-public-template-constant", + "kind": "encoded_by_user_via", + "source": "macro:note.h:2196:TSTRINGV", + "source_artifact": "artifacts/macros/note_h__L2196__TSTRINGV.md", + "target": "function:n_cjson.c:2013:JAddStringToObject", + "target_artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-call", + "kind": "calls", + "source": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "source_artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "target": "function:n_hooks.c:485:NoteDebugWithLevel", + "target_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-call", + "kind": "uses_macro", + "source": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "source_artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "target": "macro:note.h:40:NOTE_C_STRINGIZE", + "target_artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-call", + "kind": "uses_macro", + "source": "macro:note.h:990:NOTE_C_LOG_ERROR", + "source_artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "target": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "target_artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-call", + "kind": "uses_macro", + "source": "macro:note.h:998:NOTE_C_LOG_WARN", + "source_artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "target": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "target_artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-call", + "kind": "uses_macro", + "source": "macro:note.h:1006:NOTE_C_LOG_INFO", + "source_artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "target": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "target_artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-macro-call", + "kind": "uses_macro", + "source": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "source_artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "target": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "target_artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2450:JCreateObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "target": "typedef:n_cjson.h:78:typedef_78", + "target_artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "typedef:n_cjson.h:78:typedef_78", + "target_artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1732:JGetObjectItem", + "source_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "target": "typedef:n_cjson.h:78:typedef_78", + "target_artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "typedef:n_cjson.h:78:typedef_78", + "target_artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "typedef:n_cjson.h:78:typedef_78", + "target_artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2550:JDuplicate", + "source_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "target": "typedef:n_cjson.h:78:typedef_78", + "target_artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "typedef:n_cjson.h:78:typedef_78", + "target_artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2450:JCreateObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "target": "struct:n_cjson.h:80:J", + "target_artifact": "artifacts/types/n_cjson_h__L80__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2450:JCreateObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "target": "struct:n_cjson.h:81:J", + "target_artifact": "artifacts/types/n_cjson_h__L81__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2450:JCreateObject", + "source_artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "target": "struct:n_cjson.h:83:J", + "target_artifact": "artifacts/types/n_cjson_h__L83__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "struct:n_cjson.h:80:J", + "target_artifact": "artifacts/types/n_cjson_h__L80__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "struct:n_cjson.h:81:J", + "target_artifact": "artifacts/types/n_cjson_h__L81__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "struct:n_cjson.h:83:J", + "target_artifact": "artifacts/types/n_cjson_h__L83__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1732:JGetObjectItem", + "source_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "target": "struct:n_cjson.h:80:J", + "target_artifact": "artifacts/types/n_cjson_h__L80__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1732:JGetObjectItem", + "source_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "target": "struct:n_cjson.h:81:J", + "target_artifact": "artifacts/types/n_cjson_h__L81__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1732:JGetObjectItem", + "source_artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "target": "struct:n_cjson.h:83:J", + "target_artifact": "artifacts/types/n_cjson_h__L83__J.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:229:_get_decimal_point", + "source_artifact": "artifacts/functions/n_cjson_c__L229__get_decimal_point.md", + "target": "struct:n_cjson.c:232:lconv", + "target_artifact": "artifacts/types/n_cjson_c__L232__lconv.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:91:JGetErrorPtr", + "source_artifact": "artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md", + "target": "typedef:n_cjson.c:82:typedef_82", + "target_artifact": "artifacts/types/n_cjson_c__L82__typedef_82.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "typedef:n_cjson.c:82:typedef_82", + "target_artifact": "artifacts/types/n_cjson_c__L82__typedef_82.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "typedef:n_cjson.c:239:typedef_239", + "target_artifact": "artifacts/types/n_cjson_c__L239__typedef_239.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1129:_parse_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "target": "typedef:n_cjson.c:239:typedef_239", + "target_artifact": "artifacts/types/n_cjson_c__L239__typedef_239.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1245:_parse_array", + "source_artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "target": "typedef:n_cjson.c:239:typedef_239", + "target_artifact": "artifacts/types/n_cjson_c__L239__typedef_239.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1395:_parse_object", + "source_artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "target": "typedef:n_cjson.c:239:typedef_239", + "target_artifact": "artifacts/types/n_cjson_c__L239__typedef_239.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:351:_ensure", + "source_artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "target": "typedef:n_cjson.c:340:typedef_340", + "target_artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:400:_update_offset", + "source_artifact": "artifacts/functions/n_cjson_c__L400__update_offset.md", + "target": "typedef:n_cjson.c:340:typedef_340", + "target_artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:983:_print", + "source_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "target": "typedef:n_cjson.c:340:typedef_340", + "target_artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1067:JPrintBuffered", + "source_artifact": "artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md", + "target": "typedef:n_cjson.c:340:typedef_340", + "target_artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1123:JPrintPreallocated", + "source_artifact": "artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md", + "target": "typedef:n_cjson.c:340:typedef_340", + "target_artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1118:JPrintPreallocatedOmitEmpty", + "source_artifact": "artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md", + "target": "typedef:n_cjson.c:340:typedef_340", + "target_artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:1179:_print_value", + "source_artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "target": "typedef:n_cjson.c:340:typedef_340", + "target_artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:902:JParseWithOpts", + "source_artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "target": "typedef:n_cjson.h:103:Jbool", + "target_artifact": "artifacts/types/n_cjson_h__L103__Jbool.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:983:_print", + "source_artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "target": "typedef:n_cjson.h:103:Jbool", + "target_artifact": "artifacts/types/n_cjson_h__L103__Jbool.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2321:JCreateBool", + "source_artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "target": "typedef:n_cjson.h:103:Jbool", + "target_artifact": "artifacts/types/n_cjson_h__L103__Jbool.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "typedef:n_cjson.h:103:Jbool", + "target_artifact": "artifacts/types/n_cjson_h__L103__Jbool.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2399:NoteMemAvailable", + "source_artifact": "artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md", + "target": "typedef:n_helpers.c:2388:typedef_2388", + "target_artifact": "artifacts/types/n_helpers_c__L2388__typedef_2388.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2399:NoteMemAvailable", + "source_artifact": "artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md", + "target": "struct:n_helpers.c:2389:objHeader_s", + "target_artifact": "artifacts/types/n_helpers_c__L2389__objHeader_s.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "typedef:n_hooks.c:190:nNoteResetFn", + "target_artifact": "artifacts/types/n_hooks_c__L190__nNoteResetFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "typedef:n_hooks.c:191:nTransactionFn", + "target_artifact": "artifacts/types/n_hooks_c__L191__nTransactionFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "typedef:n_hooks.c:192:nReceiveFn", + "target_artifact": "artifacts/types/n_hooks_c__L192__nReceiveFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:214:_noteSetActiveInterface", + "source_artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "target": "typedef:n_hooks.c:193:nTransmitFn", + "target_artifact": "artifacts/types/n_hooks_c__L193__nTransmitFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:91:JNumberValue", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md", + "target": "typedef:note.h:85:JNUMBER", + "target_artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:91:JNumberValue", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md", + "target": "typedef:note.h:87:JNUMBER", + "target_artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:99:JGetNumber", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "target": "typedef:note.h:85:JNUMBER", + "target_artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:99:JGetNumber", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "target": "typedef:note.h:87:JNUMBER", + "target_artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_atof.c:71:JAtoN", + "source_artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "target": "typedef:note.h:85:JNUMBER", + "target_artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_atof.c:71:JAtoN", + "source_artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "target": "typedef:note.h:87:JNUMBER", + "target_artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "typedef:note.h:85:JNUMBER", + "target_artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "typedef:note.h:87:JNUMBER", + "target_artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "typedef:note.h:85:JNUMBER", + "target_artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "typedef:note.h:87:JNUMBER", + "target_artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:114:JIntValue", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md", + "target": "typedef:note.h:93:JINTEGER", + "target_artifact": "artifacts/types/note_h__L93__JINTEGER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:122:JGetInt", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "target": "typedef:note.h:93:JINTEGER", + "target_artifact": "artifacts/types/note_h__L93__JINTEGER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:312:JAtoI", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md", + "target": "typedef:note.h:93:JINTEGER", + "target_artifact": "artifacts/types/note_h__L93__JINTEGER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_cjson_helpers.c:284:JItoA", + "source_artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "target": "typedef:note.h:100:JUINTEGER", + "target_artifact": "artifacts/types/note_h__L100__JUINTEGER.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:767:NoteTime", + "source_artifact": "artifacts/functions/n_helpers_c__L767__NoteTime.md", + "target": "typedef:note.h:105:JTIME", + "target_artifact": "artifacts/types/note_h__L105__JTIME.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "typedef:note.h:105:JTIME", + "target_artifact": "artifacts/types/note_h__L105__JTIME.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:808:NoteTimeSet", + "source_artifact": "artifacts/functions/n_helpers_c__L808__NoteTimeSet.md", + "target": "typedef:note.h:105:JTIME", + "target_artifact": "artifacts/types/note_h__L105__JTIME.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:1417:NoteGetLocation", + "source_artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "target": "typedef:note.h:105:JTIME", + "target_artifact": "artifacts/types/note_h__L105__JTIME.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:1631:NoteGetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md", + "target": "typedef:note.h:105:JTIME", + "target_artifact": "artifacts/types/note_h__L105__JTIME.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:248:NoteSetFnDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "target": "typedef:note.h:124:delayMsFn", + "target_artifact": "artifacts/types/note_h__L124__delayMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:266:NoteSetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "target": "typedef:note.h:124:delayMsFn", + "target_artifact": "artifacts/types/note_h__L124__delayMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:774:NoteGetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "target": "typedef:note.h:124:delayMsFn", + "target_artifact": "artifacts/types/note_h__L124__delayMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:528:NoteDelayMs", + "source_artifact": "artifacts/functions/n_hooks_c__L528__NoteDelayMs.md", + "target": "typedef:note.h:124:delayMsFn", + "target_artifact": "artifacts/types/note_h__L124__delayMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:248:NoteSetFnDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "target": "typedef:note.h:133:freeFn", + "target_artifact": "artifacts/types/note_h__L133__freeFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:266:NoteSetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "target": "typedef:note.h:133:freeFn", + "target_artifact": "artifacts/types/note_h__L133__freeFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:774:NoteGetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "target": "typedef:note.h:133:freeFn", + "target_artifact": "artifacts/types/note_h__L133__freeFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:595:NoteFree", + "source_artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "target": "typedef:note.h:133:freeFn", + "target_artifact": "artifacts/types/note_h__L133__freeFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:248:NoteSetFnDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "target": "typedef:note.h:142:getMsFn", + "target_artifact": "artifacts/types/note_h__L142__getMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:266:NoteSetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "target": "typedef:note.h:142:getMsFn", + "target_artifact": "artifacts/types/note_h__L142__getMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:774:NoteGetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "target": "typedef:note.h:142:getMsFn", + "target_artifact": "artifacts/types/note_h__L142__getMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:520:NoteGetMs", + "source_artifact": "artifacts/functions/n_hooks_c__L520__NoteGetMs.md", + "target": "typedef:note.h:142:getMsFn", + "target_artifact": "artifacts/types/note_h__L142__getMsFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:294:NoteSetFnDebugOutput", + "source_artifact": "artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md", + "target": "typedef:note.h:153:debugOutputFn", + "target_artifact": "artifacts/types/note_h__L153__debugOutputFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:701:NoteGetFnDebugOutput", + "source_artifact": "artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md", + "target": "typedef:note.h:153:debugOutputFn", + "target_artifact": "artifacts/types/note_h__L153__debugOutputFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:285:NoteSetFnHeartbeat", + "source_artifact": "artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md", + "target": "typedef:note.h:166:heartbeatFn", + "target_artifact": "artifacts/types/note_h__L166__heartbeatFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:714:NoteGetFnHeartbeat", + "source_artifact": "artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md", + "target": "typedef:note.h:166:heartbeatFn", + "target_artifact": "artifacts/types/note_h__L166__heartbeatFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:381:NoteSetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "target": "typedef:note.h:183:i2cReceiveFn", + "target_artifact": "artifacts/types/note_h__L183__i2cReceiveFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "target": "typedef:note.h:183:i2cReceiveFn", + "target_artifact": "artifacts/types/note_h__L183__i2cReceiveFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:812:NoteGetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "target": "typedef:note.h:183:i2cReceiveFn", + "target_artifact": "artifacts/types/note_h__L183__i2cReceiveFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:381:NoteSetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "target": "typedef:note.h:196:i2cResetFn", + "target_artifact": "artifacts/types/note_h__L196__i2cResetFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "target": "typedef:note.h:196:i2cResetFn", + "target_artifact": "artifacts/types/note_h__L196__i2cResetFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:812:NoteGetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "target": "typedef:note.h:196:i2cResetFn", + "target_artifact": "artifacts/types/note_h__L196__i2cResetFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:381:NoteSetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "target": "typedef:note.h:211:i2cTransmitFn", + "target_artifact": "artifacts/types/note_h__L211__i2cTransmitFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "target": "typedef:note.h:211:i2cTransmitFn", + "target_artifact": "artifacts/types/note_h__L211__i2cTransmitFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:812:NoteGetFnI2C", + "source_artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "target": "typedef:note.h:211:i2cTransmitFn", + "target_artifact": "artifacts/types/note_h__L211__i2cTransmitFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:248:NoteSetFnDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "target": "typedef:note.h:223:mallocFn", + "target_artifact": "artifacts/types/note_h__L223__mallocFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:266:NoteSetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "target": "typedef:note.h:223:mallocFn", + "target_artifact": "artifacts/types/note_h__L223__mallocFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:774:NoteGetFn", + "source_artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "target": "typedef:note.h:223:mallocFn", + "target_artifact": "artifacts/types/note_h__L223__mallocFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:569:NoteMalloc", + "source_artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "target": "typedef:note.h:223:mallocFn", + "target_artifact": "artifacts/types/note_h__L223__mallocFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:321:NoteSetFnMutex", + "source_artifact": "artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md", + "target": "typedef:note.h:230:mutexFn", + "target_artifact": "artifacts/types/note_h__L230__mutexFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:329:NoteSetFnI2CMutex", + "source_artifact": "artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md", + "target": "typedef:note.h:230:mutexFn", + "target_artifact": "artifacts/types/note_h__L230__mutexFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:335:NoteSetFnNoteMutex", + "source_artifact": "artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md", + "target": "typedef:note.h:230:mutexFn", + "target_artifact": "artifacts/types/note_h__L230__mutexFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:737:NoteGetFnMutex", + "source_artifact": "artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md", + "target": "typedef:note.h:230:mutexFn", + "target_artifact": "artifacts/types/note_h__L230__mutexFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:341:NoteSetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "target": "typedef:note.h:239:serialAvailableFn", + "target_artifact": "artifacts/types/note_h__L239__serialAvailableFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "target": "typedef:note.h:239:serialAvailableFn", + "target_artifact": "artifacts/types/note_h__L239__serialAvailableFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:793:NoteGetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "target": "typedef:note.h:239:serialAvailableFn", + "target_artifact": "artifacts/types/note_h__L239__serialAvailableFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:341:NoteSetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "target": "typedef:note.h:248:serialReceiveFn", + "target_artifact": "artifacts/types/note_h__L248__serialReceiveFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "target": "typedef:note.h:248:serialReceiveFn", + "target_artifact": "artifacts/types/note_h__L248__serialReceiveFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:793:NoteGetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "target": "typedef:note.h:248:serialReceiveFn", + "target_artifact": "artifacts/types/note_h__L248__serialReceiveFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:341:NoteSetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "target": "typedef:note.h:260:serialResetFn", + "target_artifact": "artifacts/types/note_h__L260__serialResetFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "target": "typedef:note.h:260:serialResetFn", + "target_artifact": "artifacts/types/note_h__L260__serialResetFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:793:NoteGetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "target": "typedef:note.h:260:serialResetFn", + "target_artifact": "artifacts/types/note_h__L260__serialResetFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:341:NoteSetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "target": "typedef:note.h:271:serialTransmitFn", + "target_artifact": "artifacts/types/note_h__L271__serialTransmitFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "source_artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "target": "typedef:note.h:271:serialTransmitFn", + "target_artifact": "artifacts/types/note_h__L271__serialTransmitFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:793:NoteGetFnSerial", + "source_artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "target": "typedef:note.h:271:serialTransmitFn", + "target_artifact": "artifacts/types/note_h__L271__serialTransmitFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:313:NoteSetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md", + "target": "typedef:note.h:282:txnStartFn", + "target_artifact": "artifacts/types/note_h__L282__txnStartFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:725:NoteGetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md", + "target": "typedef:note.h:282:txnStartFn", + "target_artifact": "artifacts/types/note_h__L282__txnStartFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:313:NoteSetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md", + "target": "typedef:note.h:289:txnStopFn", + "target_artifact": "artifacts/types/note_h__L289__txnStopFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_hooks.c:725:NoteGetFnTransaction", + "source_artifact": "artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md", + "target": "typedef:note.h:289:txnStopFn", + "target_artifact": "artifacts/types/note_h__L289__txnStopFn.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_md5.c:78:NoteMD5Init", + "source_artifact": "artifacts/functions/n_md5_c__L78__NoteMD5Init.md", + "target": "typedef:note.h:1523:typedef_1523", + "target_artifact": "artifacts/types/note_h__L1523__typedef_1523.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_md5.c:95:NoteMD5Update", + "source_artifact": "artifacts/functions/n_md5_c__L95__NoteMD5Update.md", + "target": "typedef:note.h:1523:typedef_1523", + "target_artifact": "artifacts/types/note_h__L1523__typedef_1523.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_md5.c:143:NoteMD5Final", + "source_artifact": "artifacts/functions/n_md5_c__L143__NoteMD5Final.md", + "target": "typedef:note.h:1523:typedef_1523", + "target_artifact": "artifacts/types/note_h__L1523__typedef_1523.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_md5.c:292:NoteMD5Hash", + "source_artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "target": "typedef:note.h:1523:typedef_1523", + "target_artifact": "artifacts/types/note_h__L1523__typedef_1523.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2440:NotePayloadSet", + "source_artifact": "artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md", + "target": "typedef:note.h:2109:typedef_2109", + "target_artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2453:NotePayloadFree", + "source_artifact": "artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md", + "target": "typedef:note.h:2109:typedef_2109", + "target_artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2473:NotePayloadAddSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "target": "typedef:note.h:2109:typedef_2109", + "target_artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2533:NotePayloadGetSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md", + "target": "typedef:note.h:2109:typedef_2109", + "target_artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:2555:NotePayloadFindSegment", + "source_artifact": "artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md", + "target": "typedef:note.h:2109:typedef_2109", + "target_artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "target": "typedef:note.h:2109:typedef_2109", + "target_artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "verified": true + }, + { + "confidence": "high", + "extraction_method": "source-inspected-type-reference", + "kind": "uses_type", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "typedef:note.h:2109:typedef_2109", + "target_artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "verified": true + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_cjson.c:2745:JCompare", + "source_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "target": "function:n_cjson.c:2745:JCompare", + "target_artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_cjson.c:209:JDelete", + "source_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "target": "function:n_cjson.c:209:JDelete", + "target_artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_cjson.c:2550:JDuplicate", + "source_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "target": "function:n_cjson.c:2550:JDuplicate", + "target_artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "source_artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "source_artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:492:NoteBinaryStoreReset", + "source_artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "source_artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_hooks.c:474:NoteDebug", + "target_artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "target": "function:n_hooks.c:464:NoteDebugln", + "target_artifact": "artifacts/functions/n_hooks_c__L464__NoteDebugln.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "function:n_hooks.c:485:NoteDebugWithLevel", + "target_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1902:NoteFactoryReset", + "source_artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "target": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "target_artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2226:NoteGetContact", + "source_artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1302:NoteGetEnv", + "source_artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1501:NoteGetLocationMode", + "source_artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1368:NoteGetNetStatus", + "source_artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "source_artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1649:NoteGetStatusST", + "source_artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2197:NoteGetTemperature", + "source_artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1391:NoteGetVersion", + "source_artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2175:NoteGetVoltage", + "source_artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1346:NoteIsConnectedST", + "source_artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1156:NoteLocationValidST", + "source_artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_hooks.c:485:NoteDebugWithLevel", + "target_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "source_artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "target": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "target_artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:847:NotePrint", + "source_artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "target": "function:n_hooks.c:474:NoteDebug", + "target_artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2119:NoteSendToRoute", + "source_artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:871:NoteTimeST", + "source_artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "target": "function:n_cjson_helpers.c:152:JIsNullString", + "target_artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2587:NoteTurboIO", + "source_artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "target": "function:n_hooks.c:485:NoteDebugWithLevel", + "target_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_helpers.c:2587:NoteTurboIO", + "source_artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "target": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "target_artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_hooks.c:453:NoteDebugIntln", + "source_artifact": "artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md", + "target": "function:n_hooks.c:474:NoteDebug", + "target_artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_hooks.c:485:NoteDebugWithLevel", + "source_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "target": "function:n_hooks.c:474:NoteDebug", + "target_artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "source_artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "target": "function:n_hooks.c:485:NoteDebugWithLevel", + "target_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_hooks.c:464:NoteDebugln", + "source_artifact": "artifacts/functions/n_hooks_c__L464__NoteDebugln.md", + "target": "function:n_hooks.c:474:NoteDebug", + "target_artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "function:n_hooks.c:485:NoteDebugWithLevel", + "target_artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + }, + { + "confidence": "high", + "created_at_utc": "2026-06-30T00:19:23+00:00", + "evidence_refs": [ + "source-research/inventory/cmake-ast-validation.json", + "source-research/inventory/compile_commands.default.json" + ], + "extraction_method": "clang-ast-cmake-default", + "kind": "calls_static", + "note": "CMake compile_commands plus Clang AST direct call; not yet source-inspected as a graph repair.", + "source": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "source_artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "target": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "target_artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "updated_at_utc": "2026-06-30T00:19:23+00:00", + "verified": false + } + ], + "nodes": [ + { + "artifact": "artifacts/macros/n_atof_c__L29__const.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:29:const", + "line": 29, + "name": "const", + "node_type": "macro", + "qualified_name": "const", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e544ef4cb639f553a4369690b4dc0cf9e58ca3d6c718e52271555361981af106" + }, + { + "artifact": "artifacts/macros/n_atof_c__L36__TRUE.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:36:TRUE", + "line": 36, + "name": "TRUE", + "node_type": "macro", + "qualified_name": "TRUE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "889197f5b5563fde2cb8ccd0da14173313b4ed059913e6a1fccaf71e6796dbb2" + }, + { + "artifact": "artifacts/macros/n_atof_c__L37__FALSE.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:37:FALSE", + "line": 37, + "name": "FALSE", + "node_type": "macro", + "qualified_name": "FALSE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1597637690d4c40861a3fba83a3e03e8229cfca8f2d599bd509f87222a11e726" + }, + { + "artifact": "artifacts/macros/n_atof_c__L40__NULL.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:40:NULL", + "line": 40, + "name": "NULL", + "node_type": "macro", + "qualified_name": "NULL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3b2249c02f3991ef013b2ec79447f43b3240e4b8ba05d80d209b09cfdbf2089b" + }, + { + "artifact": "artifacts/macros/n_atof_c__L43__MAX_EXPONENT.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:43:MAX_EXPONENT", + "line": 43, + "name": "MAX_EXPONENT", + "node_type": "macro", + "qualified_name": "MAX_EXPONENT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8ad69aac4902b3879294fe0947c14509c11ecc594c8035ed0a562693e9f538ea" + }, + { + "artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "extraction_method": "regex-c-function", + "file": "n_atof.c", + "id": "function:n_atof.c:71:JAtoN", + "line": 71, + "name": "JAtoN", + "node_type": "function", + "qualified_name": "JAtoN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "03ce1eca4ed9344cad7d0115858b1a28cd63747769ed089791de541e6a9e67aa" + }, + { + "artifact": "artifacts/functions/n_b64_c__L106__JB64DecodeLen.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:106:JB64DecodeLen", + "line": 106, + "name": "JB64DecodeLen", + "node_type": "function", + "qualified_name": "JB64DecodeLen", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7fdba6771dfdc5c0b05908d68afc2465dfe6a169593778782c862d06a69b763e" + }, + { + "artifact": "artifacts/functions/n_b64_c__L121__JB64Decode.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:121:JB64Decode", + "line": 121, + "name": "JB64Decode", + "node_type": "function", + "qualified_name": "JB64Decode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3767591bfb8dce588f2d094b76bb5e3a1016155aeab2808ffe70be44891d520f" + }, + { + "artifact": "artifacts/functions/n_b64_c__L169__JB64EncodeLen.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:169:JB64EncodeLen", + "line": 169, + "name": "JB64EncodeLen", + "node_type": "function", + "qualified_name": "JB64EncodeLen", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "035566ae5d9cd337941835ae64275b34b30847502a07b249fb1e113aa065cb6b" + }, + { + "artifact": "artifacts/functions/n_b64_c__L174__JB64Encode.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:174:JB64Encode", + "line": 174, + "name": "JB64Encode", + "node_type": "function", + "qualified_name": "JB64Encode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bdd365bd77956ce4e0f1069260795d294996907a0ca9ff45d6ed16888257b980" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L80__PRINT_TAB_CHARS.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:80:PRINT_TAB_CHARS", + "line": 80, + "name": "PRINT_TAB_CHARS", + "node_type": "macro", + "qualified_name": "PRINT_TAB_CHARS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2985ed752483c373892bc009fdb4fbc6f9b8666b7badd340ee4af8de8dcea53f" + }, + { + "artifact": "artifacts/types/n_cjson_c__L82__typedef_82.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.c", + "id": "typedef:n_cjson.c:82:typedef_82", + "line": 82, + "name": "typedef_82", + "node_type": "typedef", + "qualified_name": "typedef_82", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cd9abd2323330478d366d716036ba604ead2ddb3cd7b8f5a89bb2d1e83b1d233" + }, + { + "artifact": "artifacts/types/n_cjson_c__L232__lconv.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.c", + "id": "struct:n_cjson.c:232:lconv", + "line": 232, + "name": "lconv", + "node_type": "struct", + "qualified_name": "lconv", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "fe61e01a589160a8711a5927cb359098e4fb593a45148b22d2c59723a279d166" + }, + { + "artifact": "artifacts/types/n_cjson_c__L239__typedef_239.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.c", + "id": "typedef:n_cjson.c:239:typedef_239", + "line": 239, + "name": "typedef_239", + "node_type": "typedef", + "qualified_name": "typedef_239", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07e06ca1798334b30f3fe74d3ecf10bde991b0ffbc6d252a1cc02d49787360f5" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L247__can_read.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:247:can_read", + "line": 247, + "name": "can_read", + "node_type": "macro", + "qualified_name": "can_read", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "00c643262d6de036889bdc348b89518d4d578651e534868768a88df1bf647983" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:249:can_access_at_index", + "line": 249, + "name": "can_access_at_index", + "node_type": "macro", + "qualified_name": "can_access_at_index", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "13a77f229d23f5c47e03d590240b5f421e5f100daf906b58409a1e7fdd1d697d" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:250:cannot_access_at_index", + "line": 250, + "name": "cannot_access_at_index", + "node_type": "macro", + "qualified_name": "cannot_access_at_index", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e04d71325a9581728899ae4092d7a071fb2bc590b35ad916c64a4d0c63649bbc" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:252:buffer_at_offset", + "line": 252, + "name": "buffer_at_offset", + "node_type": "macro", + "qualified_name": "buffer_at_offset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "24c17b209290c170f5770101491bfec848c6b2f7325e6a8d5bbabeb9ab83ceb5" + }, + { + "artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.c", + "id": "typedef:n_cjson.c:340:typedef_340", + "line": 340, + "name": "typedef_340", + "node_type": "typedef", + "qualified_name": "typedef_340", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c7adad48df42e820b70d72e028581b5158f615293328008616a9b2e5f06a7e53" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L981__cjson_min.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:981:cjson_min", + "line": 981, + "name": "cjson_min", + "node_type": "macro", + "qualified_name": "cjson_min", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "45add06d8821c5f77a7235d2169d8460858adc7390923184b7b13aab364a8bc8" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:91:JGetErrorPtr", + "line": 91, + "name": "JGetErrorPtr", + "node_type": "function", + "qualified_name": "JGetErrorPtr", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "08a2dfb05ec49084c9be8f27f667e0cf54174743dab948a5567c24dc47a2831a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L96__JGetStringValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:96:JGetStringValue", + "line": 96, + "name": "JGetStringValue", + "node_type": "function", + "qualified_name": "JGetStringValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a7be09df75a497d246c3464fc6122f690f917bd23c12918007bf3c9ce3207e6f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L110__JVersion.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:110:JVersion", + "line": 110, + "name": "JVersion", + "node_type": "function", + "qualified_name": "JVersion", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e5b1e384883ce793cdacc5cfb3038efbfe1948f27207cd3bf7981966d97c2c08" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L115__j_tolower.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:115:_j_tolower", + "line": 115, + "name": "_j_tolower", + "node_type": "function", + "qualified_name": "_j_tolower", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d598f4e9e9cd75248c5cf51026ace724cb56f309dd2d143338cc264728e7cb41" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:127:_case_insensitive_strcmp", + "line": 127, + "name": "_case_insensitive_strcmp", + "node_type": "function", + "qualified_name": "_case_insensitive_strcmp", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cf2e1975d613001c53b5b10836117b1feed3adc50d3121ec1e24e2ad10c946e3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:146:_j_strdup", + "line": 146, + "name": "_j_strdup", + "node_type": "function", + "qualified_name": "_j_strdup", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c6daa48efbd0fe2755ccd3deb8ba11c14af08e4fd53cbc88378b795299db3044" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L175__JMalloc.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:175:JMalloc", + "line": 175, + "name": "JMalloc", + "node_type": "function", + "qualified_name": "JMalloc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c60f68415e7406e312f08858aa76ad346969220b0d6042850d6cf972d8369307" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L188__JFree.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:188:JFree", + "line": 188, + "name": "JFree", + "node_type": "function", + "qualified_name": "JFree", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8bf513a840a46ad27701f0a22d5eae26fe2f15a13c0aeb4ec5f879452cf9d65b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:194:_jNew_Item", + "line": 194, + "name": "_jNew_Item", + "node_type": "function", + "qualified_name": "_jNew_Item", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "341a5b47e7a26ce45a595fba33756c356b973e5471fa0d4c18b95bc88b7a1edc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:209:JDelete", + "line": 209, + "name": "JDelete", + "node_type": "function", + "qualified_name": "JDelete", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "401fdfa8ac22f56a9a4910a3f44e517ec511ac323e901823d00510a81e9116a0" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L229__get_decimal_point.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:229:_get_decimal_point", + "line": 229, + "name": "_get_decimal_point", + "node_type": "function", + "qualified_name": "_get_decimal_point", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f8da2117d2d3f9c669fc690bf8c0c81b95cd3b2963a721c432d22421c0ed0f1f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:255:_parse_number", + "line": 255, + "name": "_parse_number", + "node_type": "function", + "qualified_name": "_parse_number", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1cfebabf7702212f120c103171f454dded1d19c560e771d2a5b44122b95140f8" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:322:JSetNumberHelper", + "line": 322, + "name": "JSetNumberHelper", + "node_type": "function", + "qualified_name": "JSetNumberHelper", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1cc7969d2f972942011c81a4376eaa7a3a7254d2506fd7bc550c4f3a0b7d77f1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:351:_ensure", + "line": 351, + "name": "_ensure", + "node_type": "function", + "qualified_name": "_ensure", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3ed9bdd492482d6a6852441b23b1e438f533a9a809536f2e6a77f4dc97d134a3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L400__update_offset.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:400:_update_offset", + "line": 400, + "name": "_update_offset", + "node_type": "function", + "qualified_name": "_update_offset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e697e38f3b0aabd8414bd3adc6a32a0f0431677e955484e6a1af6247132510c3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:412:_print_number", + "line": 412, + "name": "_print_number", + "node_type": "function", + "qualified_name": "_print_number", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "74a6c322b7d8666baedd6eb3ef0d116ffb6b824b3b5bcd3be52580d660cbd54b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L476__parse_hex4.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:476:_parse_hex4", + "line": 476, + "name": "_parse_hex4", + "node_type": "function", + "qualified_name": "_parse_hex4", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0c9645070460c6bd7f6ff28a2e258742d61debce713935c7f7b97da1b87b9f67" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:504:_utf16_literal_to_utf8", + "line": 504, + "name": "_utf16_literal_to_utf8", + "node_type": "function", + "qualified_name": "_utf16_literal_to_utf8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5bdffe40a666e263802befbe7b2ec35e82e575cb4f748c55b7312080034614f7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:604:_parse_string", + "line": 604, + "name": "_parse_string", + "node_type": "function", + "qualified_name": "_parse_string", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3e269a057e4a86a98fc57978e6036237da9c4ec927e6ad134262e8083b46541d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L728__n_htoa16.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:728:_n_htoa16", + "line": 728, + "name": "_n_htoa16", + "node_type": "function", + "qualified_name": "_n_htoa16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6463436fddf6f9f48bfb76600c5baf24ec6438b84afed3fe9dae7bb9830537c1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L744__print_string_ptr.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:744:_print_string_ptr", + "line": 744, + "name": "_print_string_ptr", + "node_type": "function", + "qualified_name": "_print_string_ptr", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c215b2566ff983fcc77540dfae7f0f34cab2011e0aae52e95bf2526a379e729a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L856__print_string.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:856:_print_string", + "line": 856, + "name": "_print_string", + "node_type": "function", + "qualified_name": "_print_string", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c4d11d3461b53c9ac892b7edb66e0e39743fa196ffb69bac9c786e8e519bf911" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:870:_buffer_skip_whitespace", + "line": 870, + "name": "_buffer_skip_whitespace", + "node_type": "function", + "qualified_name": "_buffer_skip_whitespace", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7539fd00b6516832394e54a78ab9d8914258960f0ef0025ad98082e0dd1b5d1b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:888:_skip_utf8_bom", + "line": 888, + "name": "_skip_utf8_bom", + "node_type": "function", + "qualified_name": "_skip_utf8_bom", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0957fde115493e2763fa37616df04f44fc5707e250878cd2f05dff8e948b81d7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:902:JParseWithOpts", + "line": 902, + "name": "JParseWithOpts", + "node_type": "function", + "qualified_name": "JParseWithOpts", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "476fe43a623fbbc063662b3affdfde059a51e08d3dc498dc96424cac32da7657" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:976:JParse", + "line": 976, + "name": "JParse", + "node_type": "function", + "qualified_name": "JParse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c7bcade68275f7148656570a06d375bd90ccfb6caaf94afe16720d8b8879b0f1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:983:_print", + "line": 983, + "name": "_print", + "node_type": "function", + "qualified_name": "_print", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07686327a28512d77ee55d22c375b7edcde1e4c64232097b65f74335c9fb5b64" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1032__JPrint.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1032:JPrint", + "line": 1032, + "name": "JPrint", + "node_type": "function", + "qualified_name": "JPrint", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "152774fb9b4dd0402584512665d9dcdfb4b8ee88d07ec17b9877acf10171975c" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1051:JPrintUnformatted", + "line": 1051, + "name": "JPrintUnformatted", + "node_type": "function", + "qualified_name": "JPrintUnformatted", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "54a31f57760aa3566041b98bf1c5bae0fd2b625bd51b80acfc7a15d04ea599e4" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1059:JPrintUnformattedOmitEmpty", + "line": 1059, + "name": "JPrintUnformattedOmitEmpty", + "node_type": "function", + "qualified_name": "JPrintUnformattedOmitEmpty", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "fcf8e45c42cb97d24da3f862af50d6711ce26b0da4246e2bff3e442ca4022ddc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1067:JPrintBuffered", + "line": 1067, + "name": "JPrintBuffered", + "node_type": "function", + "qualified_name": "JPrintBuffered", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "fe0944121128e3e2cbe28491f1b9a652f8890835ca6136ff9fcc28033bdfa2fd" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1097__printPreallocated.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1097:_printPreallocated", + "line": 1097, + "name": "_printPreallocated", + "node_type": "function", + "qualified_name": "_printPreallocated", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "36b4e26152ad41424c9cf086c094c503d9980eeaba82c73cea409badf76a0c9f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1118:JPrintPreallocatedOmitEmpty", + "line": 1118, + "name": "JPrintPreallocatedOmitEmpty", + "node_type": "function", + "qualified_name": "JPrintPreallocatedOmitEmpty", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8aa3291f403a406c22eb4f25ba074dcd30b0c94f9a9f38976e278a0f69b36594" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1123:JPrintPreallocated", + "line": 1123, + "name": "JPrintPreallocated", + "node_type": "function", + "qualified_name": "JPrintPreallocated", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "68932d1006fc0eb6c2e9f47b73920d83636a4551f157cd0aac3dfc0ff1a0be2c" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1129:_parse_value", + "line": 1129, + "name": "_parse_value", + "node_type": "function", + "qualified_name": "_parse_value", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d30804d640770515afa925dacf2ccae9559410af5782c1a03127037c49b7710f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1179:_print_value", + "line": 1179, + "name": "_print_value", + "node_type": "function", + "qualified_name": "_print_value", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a020a588396dfb9b90be1e68e3114c8dfd574cc1a612499ce556db69e115088e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1245:_parse_array", + "line": 1245, + "name": "_parse_array", + "node_type": "function", + "qualified_name": "_parse_array", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5a6032b0aba44772152dfe96d89b9f3028b8acfbaeeaa1f0f31913cfc7388e57" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1341__print_array.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1341:_print_array", + "line": 1341, + "name": "_print_array", + "node_type": "function", + "qualified_name": "_print_array", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ed710d2e689c2108f302f2dc467323d89ef8d332a0892be4d741a4b136e64948" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1395:_parse_object", + "line": 1395, + "name": "_parse_object", + "node_type": "function", + "qualified_name": "_parse_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2c16f1e358e3064db6ee80eadd63e729f8a0e20105c7556bf1820a063866fafa" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1507:_last_non_omitted_object", + "line": 1507, + "name": "_last_non_omitted_object", + "node_type": "function", + "qualified_name": "_last_non_omitted_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c8f2272e50f72c6da1314603b643011ed54378396b27a98b6a2596f112a8ccca" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1523:_print_object", + "line": 1523, + "name": "_print_object", + "node_type": "function", + "qualified_name": "_print_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8aab7093bc075c459aae6a48c97a72b2a9261e2b04a42ad824c52f63a281cafd" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1660__JGetArraySize.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1660:JGetArraySize", + "line": 1660, + "name": "JGetArraySize", + "node_type": "function", + "qualified_name": "JGetArraySize", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3d92edbc821841a2ce155c465dca8ecde4053b2be1a41c3c7a9d45f17b081087" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1681__get_array_item.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1681:_get_array_item", + "line": 1681, + "name": "_get_array_item", + "node_type": "function", + "qualified_name": "_get_array_item", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "03030d8ad12272e84fba7b456b53e869f08da33f5e0a577f53185e2962b62dda" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1698:JGetArrayItem", + "line": 1698, + "name": "JGetArrayItem", + "node_type": "function", + "qualified_name": "JGetArrayItem", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "12ed23327cd89b3f75c235c3001cdcdd34bf7a62fd58cf314a91201d40103a7f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1710:_get_object_item", + "line": 1710, + "name": "_get_object_item", + "node_type": "function", + "qualified_name": "_get_object_item", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "36ca2cf5199e1827d44be4784f08fc8bd1b28340b08882450b8a63df8087721b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1732:JGetObjectItem", + "line": 1732, + "name": "JGetObjectItem", + "node_type": "function", + "qualified_name": "JGetObjectItem", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "60932b014bb81c4ff0bac53fc921dfb35673565b769b080cbc2c9f29fa7c3732" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1740:JGetObjectItemCaseSensitive", + "line": 1740, + "name": "JGetObjectItemCaseSensitive", + "node_type": "function", + "qualified_name": "JGetObjectItemCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "573cb77d20e3f746607e5bbb0efb39d9423dd02489e233c5f202ae8f627a23c0" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1748:JHasObjectItem", + "line": 1748, + "name": "JHasObjectItem", + "node_type": "function", + "qualified_name": "JHasObjectItem", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "77da1db9d6cfab65b89c2a5eddf168fff7d7a21e09dea33248ed00c32ac732f7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1757__suffix_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1757:_suffix_object", + "line": 1757, + "name": "_suffix_object", + "node_type": "function", + "qualified_name": "_suffix_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b28fd32990e05daa5b2a943d9cba55968a104110b97c24772fa84c6ae2332a71" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1764__create_reference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1764:_create_reference", + "line": 1764, + "name": "_create_reference", + "node_type": "function", + "qualified_name": "_create_reference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "894ee9cc8b947406c5642d87c46a861efc67d53af40c931c2158537d783f3c57" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1783:_add_item_to_array", + "line": 1783, + "name": "_add_item_to_array", + "node_type": "function", + "qualified_name": "_add_item_to_array", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1c1c9daff7087b0dea59461a9b64b9158cc0d2c175fdc10c1fd8e550d654afc2" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1808:JAddItemToArray", + "line": 1808, + "name": "JAddItemToArray", + "node_type": "function", + "qualified_name": "JAddItemToArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "dc89ddaee7dde4598d9f58732fa454f778198986335629b9a474ef5a5377399e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1826:_cast_away_const", + "line": 1826, + "name": "_cast_away_const", + "node_type": "function", + "qualified_name": "_cast_away_const", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bdc36d034b571af60644cb26f897307a5ff5c073a35e11709f719b0571adb5c3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1835:_add_item_to_object", + "line": 1835, + "name": "_add_item_to_object", + "node_type": "function", + "qualified_name": "_add_item_to_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f9e3e65a6b5e8f0b655014a637650fb33b9dd955c29cebd3dc0ed1547732a18a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1866:JAddItemToObject", + "line": 1866, + "name": "JAddItemToObject", + "node_type": "function", + "qualified_name": "JAddItemToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6b607d304d9079d34e9bfdb47e24b3962ecb4ec968ac961b1908748c762a3030" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1878:JAddItemToObjectCS", + "line": 1878, + "name": "JAddItemToObjectCS", + "node_type": "function", + "qualified_name": "JAddItemToObjectCS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7eeb558cf1286453ace929e91879a4ee1ac619199f8ea67a70df7e8d9808feda" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1889:JAddItemReferenceToArray", + "line": 1889, + "name": "JAddItemReferenceToArray", + "node_type": "function", + "qualified_name": "JAddItemReferenceToArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bc9d6d85475c084d2972d2e6d05a86d6b71a09530051752a533816adb2b78c9b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1900:JAddItemReferenceToObject", + "line": 1900, + "name": "JAddItemReferenceToObject", + "node_type": "function", + "qualified_name": "JAddItemReferenceToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "07a4a83a732f664b2e79eba8146dda9ac8f970960d0db96a6ccd93101ee466c3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1911:JAddTrueToObject", + "line": 1911, + "name": "JAddTrueToObject", + "node_type": "function", + "qualified_name": "JAddTrueToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f157698f2b24cfb108b3bda54d0cb86ea3f1ec66c88bb49b540414bdafe032b0" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1926:JAddFalseToObject", + "line": 1926, + "name": "JAddFalseToObject", + "node_type": "function", + "qualified_name": "JAddFalseToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7e1e2e34b976ee6a2cec7b13bcf2c8a924e5a76e7bcc3b29b881fd9fa41c3484" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1950:JAddBoolToObject", + "line": 1950, + "name": "JAddBoolToObject", + "node_type": "function", + "qualified_name": "JAddBoolToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "808d99ddbe4bc0ef0f509f38876b25530805402d316ccd68493fc278d515e890" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1974:JAddNumberToObject", + "line": 1974, + "name": "JAddNumberToObject", + "node_type": "function", + "qualified_name": "JAddNumberToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "33b615cb4cd4f168f1a80506004d42d9f7b539c64c94d10a1b63674404469bcf" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1989:JAddIntToObject", + "line": 1989, + "name": "JAddIntToObject", + "node_type": "function", + "qualified_name": "JAddIntToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ba7ab93b4d301e101d2c5006584c194ac192bceb234cbcc12e2221e543e55dbc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2013:JAddStringToObject", + "line": 2013, + "name": "JAddStringToObject", + "node_type": "function", + "qualified_name": "JAddStringToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4658acef88d1ccca31474ef59692722f79cfa341c5c01fd6b6c9a5f393808590" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2028:JAddRawToObject", + "line": 2028, + "name": "JAddRawToObject", + "node_type": "function", + "qualified_name": "JAddRawToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "21186decd8bdd32c3a5e9cfc8adf20a8426e79cc3aee0ab2a6c701c677fb5e32" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2051:JAddObjectToObject", + "line": 2051, + "name": "JAddObjectToObject", + "node_type": "function", + "qualified_name": "JAddObjectToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "21781a11766bd4baac6d5ac61f93ab3a4038f9a93d0160152d6e0b8e1ef45c64" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2074:JAddArrayToObject", + "line": 2074, + "name": "JAddArrayToObject", + "node_type": "function", + "qualified_name": "JAddArrayToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eb3d0326d6b4322deec61eafd41389c6566edcfc79e270d5c04f50c0e419793a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2089:JDetachItemViaPointer", + "line": 2089, + "name": "JDetachItemViaPointer", + "node_type": "function", + "qualified_name": "JDetachItemViaPointer", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d6b571fbe8a296132440f13deee18f59d0a8a79a7044b260f9d40e2c37ebaae3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2115:JDetachItemFromArray", + "line": 2115, + "name": "JDetachItemFromArray", + "node_type": "function", + "qualified_name": "JDetachItemFromArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "354d985935a9cfd68f1b2e97d511fadb9782c7e37913ac958e9c7481cf7f2c2f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2127:JDeleteItemFromArray", + "line": 2127, + "name": "JDeleteItemFromArray", + "node_type": "function", + "qualified_name": "JDeleteItemFromArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7158ef101721c9b8a7d528ca5dd840093f959678f32277988fa95836820e248a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2135:JDetachItemFromObject", + "line": 2135, + "name": "JDetachItemFromObject", + "node_type": "function", + "qualified_name": "JDetachItemFromObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "30f0b7f03f03fb05e5eaf5a1ca2ca413bcd531452c726081a23549c0aaa38c4e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive", + "line": 2146, + "name": "JDetachItemFromObjectCaseSensitive", + "node_type": "function", + "qualified_name": "JDetachItemFromObjectCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7b04c47015127eeb2c3fbdf99ec42ad1c1500cacb23a195b98ccfb43d98505e7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2157:JDeleteItemFromObject", + "line": 2157, + "name": "JDeleteItemFromObject", + "node_type": "function", + "qualified_name": "JDeleteItemFromObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "adcfa57eb83bc0372d0697d4f79fcd96de62bb38eb915c5328026b5c0eb4134e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2165:JDeleteItemFromObjectCaseSensitive", + "line": 2165, + "name": "JDeleteItemFromObjectCaseSensitive", + "node_type": "function", + "qualified_name": "JDeleteItemFromObjectCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8cd6f6d4fa6b02ff6c3417e07ac9c75e35656f42642b5cda89a0b4381a6488b8" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2174:JInsertItemInArray", + "line": 2174, + "name": "JInsertItemInArray", + "node_type": "function", + "qualified_name": "JInsertItemInArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "9a1b8db0e52166633686aae4a26c5fcecba21d5572d3d0655b4065b423df17f1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2206:JReplaceItemViaPointer", + "line": 2206, + "name": "JReplaceItemViaPointer", + "node_type": "function", + "qualified_name": "JReplaceItemViaPointer", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "188da51e2d32e0e6f60615f49873799947590b999613982d424e66663390032d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2236:JReplaceItemInArray", + "line": 2236, + "name": "JReplaceItemInArray", + "node_type": "function", + "qualified_name": "JReplaceItemInArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4a67427ffffdd61d33e8f0cdab508ab2b1e6d62300541fa67cede1171e4d3ce1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2253:_replace_item_in_object", + "line": 2253, + "name": "_replace_item_in_object", + "node_type": "function", + "qualified_name": "_replace_item_in_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "25b9639ac836674bb311621c2cd1ffa2d7661f0a0e54bd2ed6e10cc4f1b58f1a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2281:JReplaceItemInObject", + "line": 2281, + "name": "JReplaceItemInObject", + "node_type": "function", + "qualified_name": "JReplaceItemInObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0f17a8691b24ba3edcf24c8745ce5c472d3e9a176646e6c4e841a4f32f15cd35" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2292:JReplaceItemInObjectCaseSensitive", + "line": 2292, + "name": "JReplaceItemInObjectCaseSensitive", + "node_type": "function", + "qualified_name": "JReplaceItemInObjectCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0036b3f3a955da673535af1c22f11f3ec38b3a51db5ad07f457150831a218fd1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2303__JCreateTrue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2303:JCreateTrue", + "line": 2303, + "name": "JCreateTrue", + "node_type": "function", + "qualified_name": "JCreateTrue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d488b36296a4c0f49d1cbe2f78606044318fefb80dd7c1082a361d107dc67a9c" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2312__JCreateFalse.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2312:JCreateFalse", + "line": 2312, + "name": "JCreateFalse", + "node_type": "function", + "qualified_name": "JCreateFalse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "6fd24df975e58026342e9543a18a0fc8818a1a8d046957581f5018f838cd5a78" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2321:JCreateBool", + "line": 2321, + "name": "JCreateBool", + "node_type": "function", + "qualified_name": "JCreateBool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1c6e676d2a679f9638e3a162e5a3f6f85a6a3e266fab147cc638b65fe80a1dfd" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2330:JCreateNumber", + "line": 2330, + "name": "JCreateNumber", + "node_type": "function", + "qualified_name": "JCreateNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a2f13fc6dd50458cc26086a4f374f61cee4941c60f392920cd76834e306a3e5b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2349__JCreateInteger.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2349:JCreateInteger", + "line": 2349, + "name": "JCreateInteger", + "node_type": "function", + "qualified_name": "JCreateInteger", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "2cb103e6090e01ee672d2bd2ae15325b130dfba8ff90b9d4b4d87a936f9f5609" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2360:JCreateString", + "line": 2360, + "name": "JCreateString", + "node_type": "function", + "qualified_name": "JCreateString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e60432ab91a80dead87745720b29e3bc30016f7a6250f3bd61464e4d7dbb61ad" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2374:JCreateStringValue", + "line": 2374, + "name": "JCreateStringValue", + "node_type": "function", + "qualified_name": "JCreateStringValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6c8da1276cc7308d587da320eb9f9186e1e30f51ba2af73adb236e761ac2d041" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2384:JCreateStringReference", + "line": 2384, + "name": "JCreateStringReference", + "node_type": "function", + "qualified_name": "JCreateStringReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3387d9348f6a16634abe273825391cc82d9afd91e8e8851789fa2d63296c093f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2394:JCreateObjectReference", + "line": 2394, + "name": "JCreateObjectReference", + "node_type": "function", + "qualified_name": "JCreateObjectReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f52af079e5b2599c572d315646c26a56b9550cb2f852b91e258230d5e2eec7b4" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2407:JCreateArrayReference", + "line": 2407, + "name": "JCreateArrayReference", + "node_type": "function", + "qualified_name": "JCreateArrayReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ace6c893b19181fd9e097b320e45fac8071139d59277328272b00a5c1bfa4cbc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2420:JCreateRaw", + "line": 2420, + "name": "JCreateRaw", + "node_type": "function", + "qualified_name": "JCreateRaw", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1ed67d5c12a0f900df3da9d956d28eb7eb2bf181a1852a4509948009f8183f3a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2434:JCreateArray", + "line": 2434, + "name": "JCreateArray", + "node_type": "function", + "qualified_name": "JCreateArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f0eedccc22f7c9e0655dc9beb7e6a8bfae443fdcd048514e5e338d08b1b8c6f9" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2450:JCreateObject", + "line": 2450, + "name": "JCreateObject", + "node_type": "function", + "qualified_name": "JCreateObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4c015312d8742bffda85122a82a443fca658c8f40d88f38b82cf0003fba02916" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2460:JCreateIntArray", + "line": 2460, + "name": "JCreateIntArray", + "node_type": "function", + "qualified_name": "JCreateIntArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "471f308422e673bc931d6a7af4f76eee04cd4674d283a1463841de7f77d96c8d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2489:JCreateNumberArray", + "line": 2489, + "name": "JCreateNumberArray", + "node_type": "function", + "qualified_name": "JCreateNumberArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4927466f91606037cf6566050fb952eb5d6640e7f917dad170c488c7ae8c7c30" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2519:JCreateStringArray", + "line": 2519, + "name": "JCreateStringArray", + "node_type": "function", + "qualified_name": "JCreateStringArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1c9716995d973658ad9871fdb004db61a4eaaaf7fc1b99dde3467dda2bf9dc00" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2550:JDuplicate", + "line": 2550, + "name": "JDuplicate", + "node_type": "function", + "qualified_name": "JDuplicate", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "5cf428e724440d75b11ac447b27327022ef951fa5c26dba89a135427144f685e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2616__JMinify.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2616:JMinify", + "line": 2616, + "name": "JMinify", + "node_type": "function", + "qualified_name": "JMinify", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "5bfe5985b5bfeacac34f00b0619dca463491d19df10e55abf797f0868304e24d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2665__JIsInvalid.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2665:JIsInvalid", + "line": 2665, + "name": "JIsInvalid", + "node_type": "function", + "qualified_name": "JIsInvalid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ca7726195b25e0a449cf1a60149218dfecbc2718ca522903efdb3515adb921f9" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2673__JIsFalse.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2673:JIsFalse", + "line": 2673, + "name": "JIsFalse", + "node_type": "function", + "qualified_name": "JIsFalse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "92bd6b8a6a22d896050ae50a0baf7849dcca96253cfc873246dc324ef4c3d753" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2681__JIsTrue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2681:JIsTrue", + "line": 2681, + "name": "JIsTrue", + "node_type": "function", + "qualified_name": "JIsTrue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "18013140d8ac5599c12b16b28e8ae321a3616dc6b559ddf8886721d0c44e06d9" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2690__JIsBool.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2690:JIsBool", + "line": 2690, + "name": "JIsBool", + "node_type": "function", + "qualified_name": "JIsBool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "36cd63b4a7eabd79fd97d4f7f3d79ea8366f8e0e21f0721cd2f765917568423b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2697__JIsNull.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2697:JIsNull", + "line": 2697, + "name": "JIsNull", + "node_type": "function", + "qualified_name": "JIsNull", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "de8d4381c1c78eee9fc464356edfd66c5f37a0bfc2e85e0a409216eec9d6f7a7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2705__JIsNumber.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2705:JIsNumber", + "line": 2705, + "name": "JIsNumber", + "node_type": "function", + "qualified_name": "JIsNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "73ebfbf0f2cf7bee97c6ef39332f6bfaf12ea9b880fb4801472e78049bc318ef" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2713:JIsString", + "line": 2713, + "name": "JIsString", + "node_type": "function", + "qualified_name": "JIsString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4963181a2f03e68aba0e80ea8297921ba485c7b5ca3a1a2a91aed287468cfb60" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2721__JIsArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2721:JIsArray", + "line": 2721, + "name": "JIsArray", + "node_type": "function", + "qualified_name": "JIsArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "94d967f1dc2d3be8d622324836f607fa3b72111d8c254d2120d2311c48d43fb2" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2729__JIsObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2729:JIsObject", + "line": 2729, + "name": "JIsObject", + "node_type": "function", + "qualified_name": "JIsObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "11ddedc6009566d07e90aaca9616e4b3b7a931d768bc0747328c08f2ca6caf0a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2737__JIsRaw.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2737:JIsRaw", + "line": 2737, + "name": "JIsRaw", + "node_type": "function", + "qualified_name": "JIsRaw", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "6bc3d571f1e831953c5f2323455beb66e28374d22480942db5d1f79b28602c76" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2745:JCompare", + "line": 2745, + "name": "JCompare", + "node_type": "function", + "qualified_name": "JCompare", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "423d43cfde9c0681ae58c0c149501256c26fb8099f37c73255f5c61063083567" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:52:N_CJSON_VERSION_MAJOR", + "line": 52, + "name": "N_CJSON_VERSION_MAJOR", + "node_type": "macro", + "qualified_name": "N_CJSON_VERSION_MAJOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3c912ad22c7a590fc64bd4e6b07a1df4742627aed2f0a28d0963b7b2575da1f8" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L53__N_CJSON_VERSION_MINOR.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:53:N_CJSON_VERSION_MINOR", + "line": 53, + "name": "N_CJSON_VERSION_MINOR", + "node_type": "macro", + "qualified_name": "N_CJSON_VERSION_MINOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "183e7a406657171a3e248deac1766e55b7db2649dc550c94bb9f920c1715d9f2" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L54__N_CJSON_VERSION_PATCH.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:54:N_CJSON_VERSION_PATCH", + "line": 54, + "name": "N_CJSON_VERSION_PATCH", + "node_type": "macro", + "qualified_name": "N_CJSON_VERSION_PATCH", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "81175ed107ce7768e5cc8b94163c1c1fe67b11592e0e9be620cf835f1a34a72a" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L59__JInvalid.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:59:JInvalid", + "line": 59, + "name": "JInvalid", + "node_type": "macro", + "qualified_name": "JInvalid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9eaf5557af37e439288fc6bb7c0a26cddf083194a798c13a2e77680986852f1a" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:60:JFalse", + "line": 60, + "name": "JFalse", + "node_type": "macro", + "qualified_name": "JFalse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "811379bebdbbd90e07133b8b1c63057a9ae25b94dee4510682e3663703e8fa64" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:61:JTrue", + "line": 61, + "name": "JTrue", + "node_type": "macro", + "qualified_name": "JTrue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "83b01405013ba36a5d68e9dfac1a377fc356a497834723a485d8731acbbd22ac" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:62:JNULL", + "line": 62, + "name": "JNULL", + "node_type": "macro", + "qualified_name": "JNULL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1ae289ffc2bf8474af6c00908d811fb21c0d068e6019c7019cee5eacd49d0788" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:63:JNumber", + "line": 63, + "name": "JNumber", + "node_type": "macro", + "qualified_name": "JNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f36114aa94003881f7bac0695054beb7e677d51aeeb36c859b4365d823003efb" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:64:JString", + "line": 64, + "name": "JString", + "node_type": "macro", + "qualified_name": "JString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "38a8b99548b7d7066b39d50ec928d7dfdd95579547141fb6cfb9b8c6e1e9adab" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:65:JArray", + "line": 65, + "name": "JArray", + "node_type": "macro", + "qualified_name": "JArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "22d91ae7077506512e4f523dc152311854843bc4c89e94ccf829e0cdde2ca5a6" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:66:JObject", + "line": 66, + "name": "JObject", + "node_type": "macro", + "qualified_name": "JObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "933bbccfb1068e4dbef0642a5d4a1ff63fc4c49be7ebf59f329551dbb3d12f54" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:67:JRaw", + "line": 67, + "name": "JRaw", + "node_type": "macro", + "qualified_name": "JRaw", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "11b24d5b3547ad08fa7e4c9033275f4cf0191f4b2b14f6bb1e98773c436a5b7b" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:69:JIsReference", + "line": 69, + "name": "JIsReference", + "node_type": "macro", + "qualified_name": "JIsReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1d9067ff141aa894dfabb49c16cc6743bca63bec3f8e5276df42b5df15686405" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L70__JStringIsConst.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:70:JStringIsConst", + "line": 70, + "name": "JStringIsConst", + "node_type": "macro", + "qualified_name": "JStringIsConst", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cf5598cf5115673288abf0d78ecb0219c92054759ad3ac75b85c0d75394e1568" + }, + { + "artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.h", + "id": "typedef:n_cjson.h:78:typedef_78", + "line": 78, + "name": "typedef_78", + "node_type": "typedef", + "qualified_name": "typedef_78", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a937609d858e1291847e961279ae8294352961a79e106b54986868e7a6f98209" + }, + { + "artifact": "artifacts/types/n_cjson_h__L80__J.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.h", + "id": "struct:n_cjson.h:80:J", + "line": 80, + "name": "J", + "node_type": "struct", + "qualified_name": "J", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8c312153d1800b6e80c2a4b9d03e1a5f3861c43992f0783b62f3da7bb860c10e" + }, + { + "artifact": "artifacts/types/n_cjson_h__L81__J.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.h", + "id": "struct:n_cjson.h:81:J", + "line": 81, + "name": "J", + "node_type": "struct", + "qualified_name": "J", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eaf12bccfcb4ab30d6e472f223d55372f64536ed9c0fe133e82427b79864d7a7" + }, + { + "artifact": "artifacts/types/n_cjson_h__L83__J.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.h", + "id": "struct:n_cjson.h:83:J", + "line": 83, + "name": "J", + "node_type": "struct", + "qualified_name": "J", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7ed29ceb499ec9e3c58c10bcad26007a875da3b3275a601edda626dc36de7321" + }, + { + "artifact": "artifacts/types/n_cjson_h__L98__typedef_98.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.h", + "id": "typedef:n_cjson.h:98:typedef_98", + "line": 98, + "name": "typedef_98", + "node_type": "typedef", + "qualified_name": "typedef_98", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e62f5aafefb1eb8b8b6cb8517328336dbdc38266cc557a4e30ad9f54481aef74" + }, + { + "artifact": "artifacts/types/n_cjson_h__L103__Jbool.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.h", + "id": "typedef:n_cjson.h:103:Jbool", + "line": 103, + "name": "Jbool", + "node_type": "typedef", + "qualified_name": "Jbool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1e51d0e577531e7f66c17b52a7669e104a968b066ef7ee0a5c80b52a035a9cb8" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L134__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:134:N_CJSON_PUBLIC", + "line": 134, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "374aaa136c941d337a7435fa2b2e563875394ad38b79bd9a5de07016ac9f3726" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L136__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:136:N_CJSON_PUBLIC", + "line": 136, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "25f7a847bdd649b44db407479f83c67753d2a623f82e112839565116f675e7fb" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L138__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:138:N_CJSON_PUBLIC", + "line": 138, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d9a037449f6f13944e916ce453f95887f59d8a0ada0f8a6edbd3b1c8a1fa5b94" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L142__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:142:N_CJSON_PUBLIC", + "line": 142, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0c6c851100316aeb9a054ba70dfd9287d4cdc27eee82544ab025f15c4b4dd0aa" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L144__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:144:N_CJSON_PUBLIC", + "line": 144, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "03b60f5ff9d7922d3099bfde24ed85b11607fd2ba61cc0a816a7f6fcb7698b37" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:176:N_CJSON_NESTING_LIMIT", + "line": 176, + "name": "N_CJSON_NESTING_LIMIT", + "node_type": "macro", + "qualified_name": "N_CJSON_NESTING_LIMIT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2b1ec6360a66aa9bd9b58ce56d02b85588a88801f3496f2e15e80eb9497fd52e" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L209__JGetObjectItems.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:209:JGetObjectItems", + "line": 209, + "name": "JGetObjectItems", + "node_type": "macro", + "qualified_name": "JGetObjectItems", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "889e29ded1d15284d37d6532f0001612d7377ed53696ec47df3e8dc203697d26" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:310:JConvertToJSONString", + "line": 310, + "name": "JConvertToJSONString", + "node_type": "macro", + "qualified_name": "JConvertToJSONString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1a9c522c166acb47749d98aca3f9f754b87983a302b48b397577d659f0eeb146" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:311:JConvertFromJSONString", + "line": 311, + "name": "JConvertFromJSONString", + "node_type": "macro", + "qualified_name": "JConvertFromJSONString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8102d442610d092aa97b3dbb28b217b67477b61da780cc2decb4e308adb44c7c" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L314__JSetIntValue.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:314:JSetIntValue", + "line": 314, + "name": "JSetIntValue", + "node_type": "macro", + "qualified_name": "JSetIntValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f337bb7e291d55367a86c9b4031698158b38c07577b18383258aae89562ad7bc" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L317__JSetNumberValue.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:317:JSetNumberValue", + "line": 317, + "name": "JSetNumberValue", + "node_type": "macro", + "qualified_name": "JSetNumberValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2718e14cd8ebb88d8c1534b57f0bcfa83471841e0c1ea2696eb83c80da71694d" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L320__JArrayForEach.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:320:JArrayForEach", + "line": 320, + "name": "JArrayForEach", + "node_type": "macro", + "qualified_name": "JArrayForEach", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "41b651b74e2e40c3eda2d525c345cae7fa2e0eabf9e2d541bde72804578a8c09" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L322__JObjectForEach.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:322:JObjectForEach", + "line": 322, + "name": "JObjectForEach", + "node_type": "macro", + "qualified_name": "JObjectForEach", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "89fbdd04287665cc779cac3afff185d81062565c853c3ac1f151642586ba9677" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:19:JIsPresent", + "line": 19, + "name": "JIsPresent", + "node_type": "function", + "qualified_name": "JIsPresent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f85ed9a0618a76dc4ddab9d4d68f1d961f0a51d2c1eff76d2479abc5db9d8a13" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:27:JGetString", + "line": 27, + "name": "JGetString", + "node_type": "function", + "qualified_name": "JGetString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f63a4b6de6fc5b7c7e267d97b8450f86ef928043e6be7d92cab00e998c40eda6" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:45:JGetArray", + "line": 45, + "name": "JGetArray", + "node_type": "function", + "qualified_name": "JGetArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "63e3c7bb18bd763238e6b1ac1a5af39f6e5d02cb8a5c6901430e3cf158e4c066" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:60:JGetObject", + "line": 60, + "name": "JGetObject", + "node_type": "function", + "qualified_name": "JGetObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7016b0f51753ab8ecf1ae2c8b7009bd8b2965fa7f9fdca56131570c77ef126a4" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L75__JBoolValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:75:JBoolValue", + "line": 75, + "name": "JBoolValue", + "node_type": "function", + "qualified_name": "JBoolValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9be934a6c3caf6fed18e05aa6f66f1b6782ffa5558ab029ebf8b99d4c9c95ae5" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L83__JStringValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:83:JStringValue", + "line": 83, + "name": "JStringValue", + "node_type": "function", + "qualified_name": "JStringValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7a9bd53f131d2b0cd19f5bcbefe7784e299c98d02cfff186989b5958070966ce" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:91:JNumberValue", + "line": 91, + "name": "JNumberValue", + "node_type": "function", + "qualified_name": "JNumberValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6c89aefe50dbd1a5af0e4049cdf5341278c15bd829d463a33e984658df4e73c8" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:99:JGetNumber", + "line": 99, + "name": "JGetNumber", + "node_type": "function", + "qualified_name": "JGetNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a576e3e4cc56264981951a033bcc7dd801d560aadc9e048fe52cb00a25115e5a" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:114:JIntValue", + "line": 114, + "name": "JIntValue", + "node_type": "function", + "qualified_name": "JIntValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "197d9ace57d5be5fdfa3379da4354dca1facce628b221a371c0242900fea585a" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:122:JGetInt", + "line": 122, + "name": "JGetInt", + "node_type": "function", + "qualified_name": "JGetInt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0bde242f6e146c6536fe97ed8b764391b3f03bf62257dc8c91fed45b551d8cbc" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:137:JGetBool", + "line": 137, + "name": "JGetBool", + "node_type": "function", + "qualified_name": "JGetBool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "331c2c8919e5f00b6f24c76c9fd6eafe51bb0e989f0e66451afd335ea1cc39b5" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:152:JIsNullString", + "line": 152, + "name": "JIsNullString", + "node_type": "function", + "qualified_name": "JIsNullString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a6b58fbefff9d973ca17845aac53079a1d444d9d5771664862cad6cb19652600" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:173:JIsExactString", + "line": 173, + "name": "JIsExactString", + "node_type": "function", + "qualified_name": "JIsExactString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ec1b95c36d6a16261eef833651cf77dbb070f9ddd4f93df2ef5f0c7a02026c0b" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:194:JContainsString", + "line": 194, + "name": "JContainsString", + "node_type": "function", + "qualified_name": "JContainsString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4a1c4157e6d4eccbd650ea40596dc58fc97af922b35a3dacef7d4545acc41192" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "line": 215, + "name": "JAddBinaryToObject", + "node_type": "function", + "qualified_name": "JAddBinaryToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "50eee5412dec90fe5b73c149d9c5ef5181244af5c3e56fa957eacf7c84959426" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:235:JGetBinaryFromObject", + "line": 235, + "name": "JGetBinaryFromObject", + "node_type": "function", + "qualified_name": "JGetBinaryFromObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6d646f9004197c615bd64a12d61351814c5f295a8add2a913501e85f178f8800" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L276__JGetItemName.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:276:JGetItemName", + "line": 276, + "name": "JGetItemName", + "node_type": "function", + "qualified_name": "JGetItemName", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cf6c10957a9a53254272488568b7722daf3441943db753b017a8c45fd226b072" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:284:JItoA", + "line": 284, + "name": "JItoA", + "node_type": "function", + "qualified_name": "JItoA", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ac2d5cc382f43e392f5f73d34197fef5588f8afe5581cc97c3de90cfccc67ac7" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:312:JAtoI", + "line": 312, + "name": "JAtoI", + "node_type": "function", + "qualified_name": "JAtoI", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "46b52b2863430862d1b8fedab535ad5e2f2d0e3fc2e39a502dc07876d2a9b0f5" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:342:JAllocString", + "line": 342, + "name": "JAllocString", + "node_type": "function", + "qualified_name": "JAllocString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0f94c77fa27e9f2c0c1307692a5b36ce4c1c25691b63a0961f7c25191db674a3" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:355:JType", + "line": 355, + "name": "JType", + "node_type": "function", + "qualified_name": "JType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d55df257147d74a9fe845ed452f144d12f272ed488ca9f05cc84cb2e303f8841" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L379__JGetType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:379:JGetType", + "line": 379, + "name": "JGetType", + "node_type": "function", + "qualified_name": "JGetType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3d73fa55c9b1c3fc386714a920504dec643eb90a6df0210fd693a9c1026768b7" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:387:JGetItemType", + "line": 387, + "name": "JGetItemType", + "node_type": "function", + "qualified_name": "JGetItemType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0fff56d5b7c8ac4ceead8754034f17c6bcdf07cc36054229a0c27db416286fba" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:446:JBaseItemType", + "line": 446, + "name": "JBaseItemType", + "node_type": "function", + "qualified_name": "JBaseItemType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "42c245607da13145903680ef3cf07e1565c5f1128933137bf3d798a55193e60e" + }, + { + "artifact": "artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md", + "extraction_method": "regex-c-macro", + "file": "n_cobs.c", + "id": "macro:n_cobs.c:8:COBS_EOP_OVERHEAD", + "line": 8, + "name": "COBS_EOP_OVERHEAD", + "node_type": "macro", + "qualified_name": "COBS_EOP_OVERHEAD", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1c991d9f7eac8ff7d0b385c7ffeec8e060dfd0a99a6ab200adaab4b391472902" + }, + { + "artifact": "artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "n_cobs.c", + "id": "macro:n_cobs.c:9:COBS_MAX_PACKET_SIZE", + "line": 9, + "name": "COBS_MAX_PACKET_SIZE", + "node_type": "macro", + "qualified_name": "COBS_MAX_PACKET_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5d61beb0996e5f337007ef46c364dbee862476856a60c752bb6efe578c4a6251" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L32__cobsDecode.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:32:_cobsDecode", + "line": 32, + "name": "_cobsDecode", + "node_type": "function", + "qualified_name": "_cobsDecode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "25efdef4e741eaf5057beee971cdf9d2717b328557f160d5ebd29386532ad20e" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L115__cobsEncode.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:115:_cobsEncode", + "line": 115, + "name": "_cobsEncode", + "node_type": "function", + "qualified_name": "_cobsEncode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e059169403b5a8055827bb8b5e4372e811a4c6189ce4dd0c5f247b104281aed8" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:196:_cobsEncodedLength", + "line": 196, + "name": "_cobsEncodedLength", + "node_type": "function", + "qualified_name": "_cobsEncodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3601999bf788d2ce63917f68f37388666ecd2a0af0bdd1d2c7a8e52486c0dae6" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "line": 263, + "name": "_cobsEncodedMaxLength", + "node_type": "function", + "qualified_name": "_cobsEncodedMaxLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ed693ad45e09db11c3859dcda5013c6b011dca377a9bbefb7f3f780b816f5bb2" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:305:_cobsGuaranteedFit", + "line": 305, + "name": "_cobsGuaranteedFit", + "node_type": "function", + "qualified_name": "_cobsGuaranteedFit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6c1d012c1b8fc6d3a7b4371c0a2e0c5e5bd970e336d9653d33e413e87eb10e99" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:26:PRINT_F_QUOTE", + "line": 26, + "name": "PRINT_F_QUOTE", + "node_type": "macro", + "qualified_name": "PRINT_F_QUOTE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2014fad3c330981b10dd4a59add8a41902fa18c155221133fa7ea6aa6019cf06" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:27:PRINT_F_TYPE_E", + "line": 27, + "name": "PRINT_F_TYPE_E", + "node_type": "macro", + "qualified_name": "PRINT_F_TYPE_E", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "523f259826a82a9a9d7ff42820b1f1dc18d0e6fefe87f2df82cb9d42599f8246" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:28:PRINT_F_TYPE_G", + "line": 28, + "name": "PRINT_F_TYPE_G", + "node_type": "macro", + "qualified_name": "PRINT_F_TYPE_G", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "47d43fb32a4f1e81a6ad92182379e384615260d523a2f744e7a625a85bc15b3f" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:29:PRINT_F_NUM", + "line": 29, + "name": "PRINT_F_NUM", + "node_type": "macro", + "qualified_name": "PRINT_F_NUM", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "546a4e256b02dd925c5341c96f5d6ff08d7a62342c69220d3b8a7ebc776eaa6b" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:30:PRINT_F_PLUS", + "line": 30, + "name": "PRINT_F_PLUS", + "node_type": "macro", + "qualified_name": "PRINT_F_PLUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7bb732bf85d4981e32df250944b3b17fbe4fbff77d7bc9896e69c7fb21fd9434" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:31:PRINT_F_MINUS", + "line": 31, + "name": "PRINT_F_MINUS", + "node_type": "macro", + "qualified_name": "PRINT_F_MINUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d216b72312121dd38ac22f5c65574d984577e1ddabf13f6df2949fd4ef9280e9" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:32:PRINT_F_ZERO", + "line": 32, + "name": "PRINT_F_ZERO", + "node_type": "macro", + "qualified_name": "PRINT_F_ZERO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e274feea9a555fc074f71525dd35dbaafddf76bf72754cdcde5c2a84c89116bd" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:33:PRINT_F_SPACE", + "line": 33, + "name": "PRINT_F_SPACE", + "node_type": "macro", + "qualified_name": "PRINT_F_SPACE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "75e3897d59b0fafeb92f5d7b6f25ba9f8b607c9ab17d6112678eb5fb15155c4e" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:34:PRINT_F_UP", + "line": 34, + "name": "PRINT_F_UP", + "node_type": "macro", + "qualified_name": "PRINT_F_UP", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c46c2f43a908d73af4447cb146da592cc32a504c078c2c0590037d4a73d49337" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L45__OUTCHAR.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:45:OUTCHAR", + "line": 45, + "name": "OUTCHAR", + "node_type": "macro", + "qualified_name": "OUTCHAR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c428cfdc28ff7e75c0184043e1e14a72966c9e0b35362f11e4a73c6062f607be" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:56:JNtoA", + "line": 56, + "name": "JNtoA", + "node_type": "function", + "qualified_name": "JNtoA", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6bbff90a898798224b4096a43c2271af84c473b3272aefeed7da4559509980b2" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:74:fmtflt", + "line": 74, + "name": "fmtflt", + "node_type": "function", + "qualified_name": "fmtflt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f6c01f25daeed979cc439b2685f3084b83b9b7831dd0bb2f8a55de0edae62bf3" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L378__fmtstr.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:378:fmtstr", + "line": 378, + "name": "fmtstr", + "node_type": "function", + "qualified_name": "fmtstr", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "13e72dc56613505c901de05e17706482258bc11677ee25c9da7f47f17f6bf2f9" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L415__printsep.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:415:printsep", + "line": 415, + "name": "printsep", + "node_type": "function", + "qualified_name": "printsep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9b99e91aec6dae3ddfe0f50dce230af76346ef55dc69642f2a96c845317bae54" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L420__getnumsep.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:420:getnumsep", + "line": 420, + "name": "getnumsep", + "node_type": "function", + "qualified_name": "getnumsep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a13c6b22abc0042abe62a20a1d87c22f36de9eb05425f5939c9d9187bc5f7f75" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L426__getexponent.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:426:getexponent", + "line": 426, + "name": "getexponent", + "node_type": "function", + "qualified_name": "getexponent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3cc40f8ca1f3e08a33d342694849e830637421a5cf9e47ccae76b3b4e1b12b05" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L448__convert.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:448:convert", + "line": 448, + "name": "convert", + "node_type": "function", + "qualified_name": "convert", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "69daffe24f07bd67211d5a44567a1a652dbe744d211114dbc5cb96b6707bd57c" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L462__cast.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:462:cast", + "line": 462, + "name": "cast", + "node_type": "function", + "qualified_name": "cast", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3655b90f93fd3f8e46e1d4b621477009bf44d9358d8fc887e908f7f88411a5c4" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L486__myround.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:486:myround", + "line": 486, + "name": "myround", + "node_type": "function", + "qualified_name": "myround", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c8681b047c5b39a2bb43437f136dbf3bce86b9d2ea14841f91e9469cfbb20254" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L497__mypow10.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:497:mypow10", + "line": 497, + "name": "mypow10", + "node_type": "function", + "qualified_name": "mypow10", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "62dac5158a782317b83383c2139d09588291a3d1fff2ca7660416bbdd23d9212" + }, + { + "artifact": "artifacts/macros/n_helpers_c__L71__daysByMonth.md", + "extraction_method": "regex-c-macro", + "file": "n_helpers.c", + "id": "macro:n_helpers.c:71:daysByMonth", + "line": 71, + "name": "daysByMonth", + "node_type": "macro", + "qualified_name": "daysByMonth", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "79579cebad12ce987f6f63b4fe694b4d5d1297ea61a0c4649d61b7755433f720" + }, + { + "artifact": "artifacts/types/n_helpers_c__L2388__typedef_2388.md", + "extraction_method": "regex-c-typedef", + "file": "n_helpers.c", + "id": "typedef:n_helpers.c:2388:typedef_2388", + "line": 2388, + "name": "typedef_2388", + "node_type": "typedef", + "qualified_name": "typedef_2388", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cbcb829f909c5f0f1a03306bbf37ae2b2466fbd5b84d18a0882e6385c1f4ce11" + }, + { + "artifact": "artifacts/types/n_helpers_c__L2389__objHeader_s.md", + "extraction_method": "regex-c-type", + "file": "n_helpers.c", + "id": "struct:n_helpers.c:2389:objHeader_s", + "line": 2389, + "name": "objHeader_s", + "node_type": "struct", + "qualified_name": "objHeader_s", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e42a485473b9a3df1edbfa0d24635e540ec588753a89ec8c01dea182582e97d0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "line": 92, + "name": "NoteAuxSerialFlowControl", + "node_type": "function", + "qualified_name": "NoteAuxSerialFlowControl", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "75c1e9fe8d19b08c381dd3693f3e0248a73ebed591b0cda8331f9b2b1648fe87" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "line": 127, + "name": "NoteBinaryCodecDecode", + "node_type": "function", + "qualified_name": "NoteBinaryCodecDecode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1024bbe2a1415164ec0eac38c79ed09c07339089805f314511da5f0b47e6fc51" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "line": 169, + "name": "NoteBinaryCodecEncode", + "node_type": "function", + "qualified_name": "NoteBinaryCodecEncode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fb7819d1f9c0170086d9a0b4aeffb4562c920172f4895c1ff45b2e62466dfcc9" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:218:NoteBinaryCodecMaxDecodedLength", + "line": 218, + "name": "NoteBinaryCodecMaxDecodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryCodecMaxDecodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "60f8e8818c3b459f1d66e34e55e54ae8913137e4885e55affade1fe58e4424cf" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:233:NoteBinaryCodecMaxEncodedLength", + "line": 233, + "name": "NoteBinaryCodecMaxEncodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryCodecMaxEncodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "63f4a50c7134013e4bd21b2ac4bef9d775c9a8e923687ec61c4d88ebdebe472d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "line": 249, + "name": "NoteBinaryStoreDecodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryStoreDecodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "20b611d057c130470cd55aa53ce2dc934efac051c7f7197e5c22b0389960c491" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "line": 300, + "name": "NoteBinaryStoreEncodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryStoreEncodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f66d3784681a9fda5bd0346f60a24501f1e4f4449f653bd2021f85daa51e85ab" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "line": 359, + "name": "NoteBinaryStoreReceive", + "node_type": "function", + "qualified_name": "NoteBinaryStoreReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5b9cf836abee7a6c4b86c138b98c7a0cbb212465839e3452f692697eb646f23a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:492:NoteBinaryStoreReset", + "line": 492, + "name": "NoteBinaryStoreReset", + "node_type": "function", + "qualified_name": "NoteBinaryStoreReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "355aedd685a1364281dffb083a43f0bcaaca94a0f20eeb0dc0739120b23e4c80" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "line": 539, + "name": "NoteBinaryStoreTransmit", + "node_type": "function", + "qualified_name": "NoteBinaryStoreTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fd76217bdf26d14c8607e4cec4d5640d06eb79728993240153ad56543b971f78" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L743__NoteTimeValid.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:743:NoteTimeValid", + "line": 743, + "name": "NoteTimeValid", + "node_type": "function", + "qualified_name": "NoteTimeValid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0d29a9b75ac4b307f7fcdded437c72ffb8e91186ff907dadeef2c93f0d67199a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:755:NoteTimeValidST", + "line": 755, + "name": "NoteTimeValidST", + "node_type": "function", + "qualified_name": "NoteTimeValidST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "798418c2dd429b01f8d197ad1bc43906d9d63cad25f81802699881af92e0b407" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L767__NoteTime.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:767:NoteTime", + "line": 767, + "name": "NoteTime", + "node_type": "function", + "qualified_name": "NoteTime", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "259f8cd99bb3b24569c33877b124e1effd22f1cbcb4434c2371e7605fdc89f53" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L780__NoteTimeRefreshMins.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:780:NoteTimeRefreshMins", + "line": 780, + "name": "NoteTimeRefreshMins", + "node_type": "function", + "qualified_name": "NoteTimeRefreshMins", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0843b9dc271879fca0026915fa1642c35ebc995b47183a4eddb5f20c20ed73fc" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L791__setTime.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:791:_setTime", + "line": 791, + "name": "_setTime", + "node_type": "function", + "qualified_name": "_setTime", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "004405c2bb1dc75f002ed2e803ade303b73faf5942e051992dfa25d8de93460a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L808__NoteTimeSet.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:808:NoteTimeSet", + "line": 808, + "name": "NoteTimeSet", + "node_type": "function", + "qualified_name": "NoteTimeSet", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "56ee842d3dcfe3bb331c85ca934514052dc83ed8a607503f614a354fb12d13f6" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L834__NotePrintln.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:834:NotePrintln", + "line": 834, + "name": "NotePrintln", + "node_type": "function", + "qualified_name": "NotePrintln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "945d84a14c5032e0b1493a2fea09eaefe18ee67055a5a401a4102117db614895" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:847:NotePrint", + "line": 847, + "name": "NotePrint", + "node_type": "function", + "qualified_name": "NotePrint", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "367a8eb67053ec2ab0fc8e5900b6b12bda4ca16f3c217cf87e0df1959c816598" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:871:NoteTimeST", + "line": 871, + "name": "NoteTimeST", + "node_type": "function", + "qualified_name": "NoteTimeST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9e3f2b78060248dfdad40100a184e30b9c379d59a258f7a0a5130a76373d2be0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L948__NoteSetSTSecs.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:948:NoteSetSTSecs", + "line": 948, + "name": "NoteSetSTSecs", + "node_type": "function", + "qualified_name": "NoteSetSTSecs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1037130fe2e99d934527b5ff41922f4e1eca74434994e2ee29c87ab5ff72f360" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L965__NoteRegion.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:965:NoteRegion", + "line": 965, + "name": "NoteRegion", + "node_type": "function", + "qualified_name": "NoteRegion", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c2eb8dbe12c31e9631cf4d3c1a9bdb523e55e67b5678e5f63ec0009a6fd58b8e" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1016:NoteLocalTimeST", + "line": 1016, + "name": "NoteLocalTimeST", + "node_type": "function", + "qualified_name": "NoteLocalTimeST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "be27f4d898d323a31ba2cf2d067a06be863c9a68965e0a8ea69e0e0244cbdf35" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1119__yToDays.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1119:_yToDays", + "line": 1119, + "name": "_yToDays", + "node_type": "function", + "qualified_name": "_yToDays", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "83a95dce3ff7c38c43ee332f3eb82511ef4445408b7fcb681f52a0a64bb237e0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1139:NoteLocationValid", + "line": 1139, + "name": "NoteLocationValid", + "node_type": "function", + "qualified_name": "NoteLocationValid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "44c5f76a05af7bbd83d54ee36f4c5416d801d5547a82dc7cc42f1adc0e74e2d3" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1156:NoteLocationValidST", + "line": 1156, + "name": "NoteLocationValidST", + "node_type": "function", + "qualified_name": "NoteLocationValidST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f71bb5aa1111fa546f9c4a57287b8ae967f0ae7e46eb3ef85a6645f202da5676" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1215:NoteSetEnvDefault", + "line": 1215, + "name": "NoteSetEnvDefault", + "node_type": "function", + "qualified_name": "NoteSetEnvDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d34c4bb28ea81dde551c20f8d9c1ce72040cafcf500f9216c0c947bb8490b077" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1235:NoteSetEnvDefaultInt", + "line": 1235, + "name": "NoteSetEnvDefaultInt", + "node_type": "function", + "qualified_name": "NoteSetEnvDefaultInt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0029b2e73afc8e5220da2926e3fd48151d5a2013d9815ad17c552eec931ffb41" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1250:NoteSetEnvDefaultNumber", + "line": 1250, + "name": "NoteSetEnvDefaultNumber", + "node_type": "function", + "qualified_name": "NoteSetEnvDefaultNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e2332c02b1abe601eebe2633cd57f2272cac6f14c2b772b772233cef848f0eb0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1265:NoteGetEnvNumber", + "line": 1265, + "name": "NoteGetEnvNumber", + "node_type": "function", + "qualified_name": "NoteGetEnvNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "91ff77e387012d40aa96b9d8250892b84b7cf23104742ac7064b3aef48072e86" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1281:NoteGetEnvInt", + "line": 1281, + "name": "NoteGetEnvInt", + "node_type": "function", + "qualified_name": "NoteGetEnvInt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b1dcff835118c9f02a76bedcf46167fbcd42b4cf17465dd65b3d07d06da180c4" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1302:NoteGetEnv", + "line": 1302, + "name": "NoteGetEnv", + "node_type": "function", + "qualified_name": "NoteGetEnv", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5382b587afa8e999351a68f52627fc245f49b479aae5c4c73aeee45e4bcbd130" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1334:NoteIsConnected", + "line": 1334, + "name": "NoteIsConnected", + "node_type": "function", + "qualified_name": "NoteIsConnected", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4e3cf1b2f39f5cb7473e4be9ab9f188a8b44f89cad4a295d4c2f27615d88ad7" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1346:NoteIsConnectedST", + "line": 1346, + "name": "NoteIsConnectedST", + "node_type": "function", + "qualified_name": "NoteIsConnectedST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "15e3e6b58da4f6f14f50d1f57d4bd2fc6ef512cfb37cda7cd41716ac03f641b3" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1368:NoteGetNetStatus", + "line": 1368, + "name": "NoteGetNetStatus", + "node_type": "function", + "qualified_name": "NoteGetNetStatus", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "46f7c64e07f58c2d93a7ee9bccb9e96e2c10fda5138f3a4b7ec7ccb50c9bcf6b" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1391:NoteGetVersion", + "line": 1391, + "name": "NoteGetVersion", + "node_type": "function", + "qualified_name": "NoteGetVersion", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "30a42478a54155aaff8ae2bfd02c8a4214c01955be10c24fb083496c738f3542" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1417:NoteGetLocation", + "line": 1417, + "name": "NoteGetLocation", + "node_type": "function", + "qualified_name": "NoteGetLocation", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d65edf5c3e782b84af718c1a882b1f9ea522cfaa3dd95a15ab46f7e8632fa302" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1463:NoteSetLocation", + "line": 1463, + "name": "NoteSetLocation", + "node_type": "function", + "qualified_name": "NoteSetLocation", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "264564344ec368deeabc3ce80ef88b1e8ce8ce8db8cad3fdc73861dfe97a12d4" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1482:NoteClearLocation", + "line": 1482, + "name": "NoteClearLocation", + "node_type": "function", + "qualified_name": "NoteClearLocation", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "798a538d2665e5c5beff6cbfea171424f31e9445e3f222fa8a624c28e49d4c20" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1501:NoteGetLocationMode", + "line": 1501, + "name": "NoteGetLocationMode", + "node_type": "function", + "qualified_name": "NoteGetLocationMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "026dea79cbc69c03eb91e2bed83d4db8d316eaecfad4747efb3d41362e68fc6d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1524:NoteSetLocationMode", + "line": 1524, + "name": "NoteSetLocationMode", + "node_type": "function", + "qualified_name": "NoteSetLocationMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7aa79bd8c9bef893bca1bb3e6bb6633b5e2579d77bbe55b6c91e7ad7665ab84a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1557:NoteGetServiceConfig", + "line": 1557, + "name": "NoteGetServiceConfig", + "node_type": "function", + "qualified_name": "NoteGetServiceConfig", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9e472373415d477cc8d0cd26c7db876d58779058ceac71816001632fc7831300" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "line": 1582, + "name": "NoteGetServiceConfigST", + "node_type": "function", + "qualified_name": "NoteGetServiceConfigST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "006e2d0271f6e5dbdf829c4a75dafeac0611c543392d46c19e423b97e7742f9d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1631:NoteGetStatus", + "line": 1631, + "name": "NoteGetStatus", + "node_type": "function", + "qualified_name": "NoteGetStatus", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8fe1a43b1ca4cb4ef41a9c76586b9ca949200d73f81ea5c3a761d3cf5058e0ea" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1649:NoteGetStatusST", + "line": 1649, + "name": "NoteGetStatusST", + "node_type": "function", + "qualified_name": "NoteGetStatusST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e8d7c98911ce4c35d4e06c446ab6c678efa97fc2745fdbffff672c707a5d517b" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "line": 1708, + "name": "NotePayloadSaveAndSleep", + "node_type": "function", + "qualified_name": "NotePayloadSaveAndSleep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2e209b0380af190ac4b4178496e74b4ff168647da167d58f051d828724f63c96" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1754:NoteSleep", + "line": 1754, + "name": "NoteSleep", + "node_type": "function", + "qualified_name": "NoteSleep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2e898079f4120e256bf1696743af2a27e227f7ef84bb14aea82a660b08bdcede" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1805__NoteWake.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1805:NoteWake", + "line": 1805, + "name": "NoteWake", + "node_type": "function", + "qualified_name": "NoteWake", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fb57f7b450c632c4a673c6ae0800d794d4b7eaa5fc54cc2dc881282fb781b827" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "line": 1830, + "name": "NotePayloadRetrieveAfterSleep", + "node_type": "function", + "qualified_name": "NotePayloadRetrieveAfterSleep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c415fdd287b494483b92b6986135b29ba8099070d3883ff6292130ea87cb0fbf" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1902:NoteFactoryReset", + "line": 1902, + "name": "NoteFactoryReset", + "node_type": "function", + "qualified_name": "NoteFactoryReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eb9a3ef3c3a8dc02a1a292b56930e07dc742149d76ac37108694dfc7af027f65" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1939:NoteSetProductID", + "line": 1939, + "name": "NoteSetProductID", + "node_type": "function", + "qualified_name": "NoteSetProductID", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "71aa60c31bbc4f585d03d37a99dbd142236ba40fb53f4e91fcd00b522a5ef264" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1963:NoteSetSerialNumber", + "line": 1963, + "name": "NoteSetSerialNumber", + "node_type": "function", + "qualified_name": "NoteSetSerialNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "246cf5131b2db223dbdd6258a55c73083d0cee578401b6e75e9b41377d07f6be" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1993:NoteSetUploadMode", + "line": 1993, + "name": "NoteSetUploadMode", + "node_type": "function", + "qualified_name": "NoteSetUploadMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c51a6da4c111a0352e554bd8cc79c848623ea072a2cbc6d3333f9af175a88f84" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2028:NoteSetSyncMode", + "line": 2028, + "name": "NoteSetSyncMode", + "node_type": "function", + "qualified_name": "NoteSetSyncMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9e5e70ef17c3e1bcd234e4844b102500f343cd41a428447ab6d79be41ff60eb4" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2060:NoteTemplate", + "line": 2060, + "name": "NoteTemplate", + "node_type": "function", + "qualified_name": "NoteTemplate", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "21db9db4a14198de0de00f16aaa0312c625501b37900dd9e4433a7d673d2e994" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2083:NoteAdd", + "line": 2083, + "name": "NoteAdd", + "node_type": "function", + "qualified_name": "NoteAdd", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "27583a1a87a368b61db68014ffaf06361489aebab70f53c672515a62e8aafd97" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2119:NoteSendToRoute", + "line": 2119, + "name": "NoteSendToRoute", + "node_type": "function", + "qualified_name": "NoteSendToRoute", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "537184f1c9b19cbd3724d4e6325855d4a07ca2483928261b073dd34c4452315e" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2175:NoteGetVoltage", + "line": 2175, + "name": "NoteGetVoltage", + "node_type": "function", + "qualified_name": "NoteGetVoltage", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "971404fef049e86e5b522c97340cfa8108af734c2570d978a66acacc0346454d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2197:NoteGetTemperature", + "line": 2197, + "name": "NoteGetTemperature", + "node_type": "function", + "qualified_name": "NoteGetTemperature", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8f94b3a0609666818584f424aaa32965b86628a5c7904e20961c8fad64061f45" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2226:NoteGetContact", + "line": 2226, + "name": "NoteGetContact", + "node_type": "function", + "qualified_name": "NoteGetContact", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "edcde1083877abaf76411adbe4180c5e1955585e723228b797b194310567c37d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2276__NoteSetContact.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2276:NoteSetContact", + "line": 2276, + "name": "NoteSetContact", + "node_type": "function", + "qualified_name": "NoteSetContact", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "16f79c48d31da85aaca21d57dda2653b0a9f43eb0d7ac85ea5e603f14a282834" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2301:_timerExpiredSecs", + "line": 2301, + "name": "_timerExpiredSecs", + "node_type": "function", + "qualified_name": "_timerExpiredSecs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8fd571f2a527057d100284e777627020b125089efc05ce599a0096ba3c075e11" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "line": 2332, + "name": "NoteDebugSyncStatus", + "node_type": "function", + "qualified_name": "NoteDebugSyncStatus", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1385208ec8aaca48abb53801bff6d893077d5d6b958611c9582379d6c784b48c" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2399:NoteMemAvailable", + "line": 2399, + "name": "NoteMemAvailable", + "node_type": "function", + "qualified_name": "NoteMemAvailable", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a21e271fe09d473e008c0495b3953f296a11ac2addd763dba1d758c3971dd662" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2440:NotePayloadSet", + "line": 2440, + "name": "NotePayloadSet", + "node_type": "function", + "qualified_name": "NotePayloadSet", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "18a8fc7509c28a3d83263dfcc2bd334969143762637f936ec46cde722f0a7151" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2453:NotePayloadFree", + "line": 2453, + "name": "NotePayloadFree", + "node_type": "function", + "qualified_name": "NotePayloadFree", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1d93bb514966d95473050685540b0cfc0b08dd6b83dacc5236ba02c5ffc6c91a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2473:NotePayloadAddSegment", + "line": 2473, + "name": "NotePayloadAddSegment", + "node_type": "function", + "qualified_name": "NotePayloadAddSegment", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d806c53152f31e8e0b9256eb41e7448c99840856d9c53088745b1304b6161a55" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2533:NotePayloadGetSegment", + "line": 2533, + "name": "NotePayloadGetSegment", + "node_type": "function", + "qualified_name": "NotePayloadGetSegment", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ef833299ab79fe97c3711d5d9cb4ff13be2a937543c9eab076d9843d4a642684" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2555:NotePayloadFindSegment", + "line": 2555, + "name": "NotePayloadFindSegment", + "node_type": "function", + "qualified_name": "NotePayloadFindSegment", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7a1c0f5cce93028974b15327cbc72d876f61f9a67c41ac24e94b4f18d69c5def" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2587:NoteTurboIO", + "line": 2587, + "name": "NoteTurboIO", + "node_type": "function", + "qualified_name": "NoteTurboIO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b5e6f07cc912fdadaee88af9a8fed487098266c52fe1242a8a4679b455a62ce9" + }, + { + "artifact": "artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md", + "extraction_method": "regex-c-macro", + "file": "n_hooks.c", + "id": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "line": 33, + "name": "NOTE_C_SHOW_MALLOC", + "node_type": "macro", + "qualified_name": "NOTE_C_SHOW_MALLOC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a9ea73f9301ac46ec1612cf3b89e9a8519eff70cbe42011c69b3b7247a83868a" + }, + { + "artifact": "artifacts/types/n_hooks_c__L190__nNoteResetFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:190:nNoteResetFn", + "line": 190, + "name": "nNoteResetFn", + "node_type": "typedef", + "qualified_name": "nNoteResetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "da5b29ee033e5b779d3fb4d462c88eff084ffc8a2831929731b351ab8253a2b4" + }, + { + "artifact": "artifacts/types/n_hooks_c__L191__nTransactionFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:191:nTransactionFn", + "line": 191, + "name": "nTransactionFn", + "node_type": "typedef", + "qualified_name": "nTransactionFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cc5f6b44d05677a42074db0f7d07cabd42bc68db703f6163bfae05c16b9b7346" + }, + { + "artifact": "artifacts/types/n_hooks_c__L192__nReceiveFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:192:nReceiveFn", + "line": 192, + "name": "nReceiveFn", + "node_type": "typedef", + "qualified_name": "nReceiveFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1cb9a43f9e33ea2079e91b7ee05d19ad83599b0506745fa301861878badea83e" + }, + { + "artifact": "artifacts/types/n_hooks_c__L193__nTransmitFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:193:nTransmitFn", + "line": 193, + "name": "nTransmitFn", + "node_type": "typedef", + "qualified_name": "nTransmitFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "18cfd81334834def1a401861a83e0f4f3dfbce92691116539f98d70b096ba313" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:209:NoteGetActiveInterface", + "line": 209, + "name": "NoteGetActiveInterface", + "node_type": "function", + "qualified_name": "NoteGetActiveInterface", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "278e72a0169a7a5755c4b9dd29a005d33e1ecc6543fea49350d1044878f6a589" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:214:_noteSetActiveInterface", + "line": 214, + "name": "_noteSetActiveInterface", + "node_type": "function", + "qualified_name": "_noteSetActiveInterface", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "36acf75dbd24bb44933737b378ff7f5f25d90cad53dad8b01da2762afb3ade95" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:241:NoteSetActiveInterface", + "line": 241, + "name": "NoteSetActiveInterface", + "node_type": "function", + "qualified_name": "NoteSetActiveInterface", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "baee90a7c94b1aff05eda09600e1c561a54a025bcf3e7b5d0fd901e74533d8e3" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:248:NoteSetFnDefault", + "line": 248, + "name": "NoteSetFnDefault", + "node_type": "function", + "qualified_name": "NoteSetFnDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a70bc495e934aae506096d73bc1d0d2242713607f990b34278856371ea0a22db" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:266:NoteSetFn", + "line": 266, + "name": "NoteSetFn", + "node_type": "function", + "qualified_name": "NoteSetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f93cbafcf2c85f109bd046860327c3d906db613108ab6a15e0d380773cff0fef" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:285:NoteSetFnHeartbeat", + "line": 285, + "name": "NoteSetFnHeartbeat", + "node_type": "function", + "qualified_name": "NoteSetFnHeartbeat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1de2d31a7882facacf043e18fb57789972e1c982eef70e42e6d5d07f446b013b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:294:NoteSetFnDebugOutput", + "line": 294, + "name": "NoteSetFnDebugOutput", + "node_type": "function", + "qualified_name": "NoteSetFnDebugOutput", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bd694744813c88f0d0161808445fc30bb2aea327f42c674df78085926290496d" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "line": 308, + "name": "_noteIsDebugOutputActive", + "node_type": "function", + "qualified_name": "_noteIsDebugOutputActive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e84fedcf5a97a43ee6c8e65ae01a8500d45515e16df83e15140c3c54cbc9b4a8" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:313:NoteSetFnTransaction", + "line": 313, + "name": "NoteSetFnTransaction", + "node_type": "function", + "qualified_name": "NoteSetFnTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6560b78273cba570265b0160ca4be0e3f60ac23c86b98a496366b07e26768e37" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:321:NoteSetFnMutex", + "line": 321, + "name": "NoteSetFnMutex", + "node_type": "function", + "qualified_name": "NoteSetFnMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5e060c55d80e2a3d1486a4e3f48c1a15003779e008b91b9dcc375b3aac3958ac" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:329:NoteSetFnI2CMutex", + "line": 329, + "name": "NoteSetFnI2CMutex", + "node_type": "function", + "qualified_name": "NoteSetFnI2CMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3d9dcd6501e053e99b8e8ed3f674b88ce156540458cbba378470a5ab58721284" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:335:NoteSetFnNoteMutex", + "line": 335, + "name": "NoteSetFnNoteMutex", + "node_type": "function", + "qualified_name": "NoteSetFnNoteMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8ae71319f7d5b8a84e184c36b7a80f5047820f4300c0281c0f6954e3fccc2253" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:341:NoteSetFnSerial", + "line": 341, + "name": "NoteSetFnSerial", + "node_type": "function", + "qualified_name": "NoteSetFnSerial", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c9b4ec658b0791b8441b4052f1a0bc70effcf513b9786fb6db467c4eea59d246" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "line": 356, + "name": "NoteSetFnSerialDefault", + "node_type": "function", + "qualified_name": "NoteSetFnSerialDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dfba6163158f3e32b1219f02ed4de46c824481ecc55afb922a2ae18756e6f91b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:381:NoteSetFnI2C", + "line": 381, + "name": "NoteSetFnI2C", + "node_type": "function", + "qualified_name": "NoteSetFnI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7beda9b3760d08063f63800fd5bf510a244b293547bd9e7eb916c5794476b32f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "line": 399, + "name": "NoteSetFnI2CDefault", + "node_type": "function", + "qualified_name": "NoteSetFnI2CDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "28278f3a46e33f89578a3725efe03c9843a6a063cfbcb0e0d0330cdcf9e8afaf" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:433:NoteSetFnDisabled", + "line": 433, + "name": "NoteSetFnDisabled", + "node_type": "function", + "qualified_name": "NoteSetFnDisabled", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c66a6bd70ddf2fda39df5f7c30a5d417cacacb299716ba30059eddd97d7686a7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L444__NoteSetLogLevel.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:444:NoteSetLogLevel", + "line": 444, + "name": "NoteSetLogLevel", + "node_type": "function", + "qualified_name": "NoteSetLogLevel", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "58061ba1d76911dd0824149046d4ea654a67246f0c8b8785d76b67179d86a879" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:453:NoteDebugIntln", + "line": 453, + "name": "NoteDebugIntln", + "node_type": "function", + "qualified_name": "NoteDebugIntln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "717d5179781ee714852f55e60a4abfec56b4f26bdb9240343872179c9165a496" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L464__NoteDebugln.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:464:NoteDebugln", + "line": 464, + "name": "NoteDebugln", + "node_type": "function", + "qualified_name": "NoteDebugln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5244cb7321c62846c178705b65f49ecb0ccf59da347cd9f4bd10bbc9fa484552" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:474:NoteDebug", + "line": 474, + "name": "NoteDebug", + "node_type": "function", + "qualified_name": "NoteDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b60538a44b6c4dd065468e0e93aadd42279a25a7ad69cc4cd8a1a38fcd574193" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:485:NoteDebugWithLevel", + "line": 485, + "name": "NoteDebugWithLevel", + "node_type": "function", + "qualified_name": "NoteDebugWithLevel", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e7bbdbc4b5e1eb090dc23eefaf6a2aed106d45a17b8899b225ff106c7e480aab" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "line": 499, + "name": "NoteDebugWithLevelLn", + "node_type": "function", + "qualified_name": "NoteDebugWithLevelLn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a35b1bdf36f075329b827c691322532340ca0826cb7b34a068b168274a7168b7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L520__NoteGetMs.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:520:NoteGetMs", + "line": 520, + "name": "NoteGetMs", + "node_type": "function", + "qualified_name": "NoteGetMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dad05a36c9cb00802f859c34b40d99c1c40e9ff568fc14d9e3f7d7e5a575aae7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L528__NoteDelayMs.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:528:NoteDelayMs", + "line": 528, + "name": "NoteDelayMs", + "node_type": "function", + "qualified_name": "NoteDelayMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "469fca484f29fc7b9d54f46fa716b6eaf9b50c2a9d0bcb10a2dcacc81aab6b4a" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L544__n_htoa32.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:544:_n_htoa32", + "line": 544, + "name": "_n_htoa32", + "node_type": "function", + "qualified_name": "_n_htoa32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a2a50e0e50be4458a85f2ee3f33470c94f225a1bf0bf5bf8bffa2d9b796faa9b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L561__n_ptoa32.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:561:_n_ptoa32", + "line": 561, + "name": "_n_ptoa32", + "node_type": "function", + "qualified_name": "_n_ptoa32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3fb30734c29f680ff7c272e837440b7472a82cc82a11c85f05880fde4c283173" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:569:NoteMalloc", + "line": 569, + "name": "NoteMalloc", + "node_type": "function", + "qualified_name": "NoteMalloc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ec1ec05a8ba401477cf1e01d943001fc16603de075c03895ac675e13e403d768" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:595:NoteFree", + "line": 595, + "name": "NoteFree", + "node_type": "function", + "qualified_name": "NoteFree", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "54757ae07c633adc37383d4878d05de45e5a85833fed68e68ee4f42541206b11" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L616__NoteLockI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:616:NoteLockI2C", + "line": 616, + "name": "NoteLockI2C", + "node_type": "function", + "qualified_name": "NoteLockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8f3b5623acdf84b7127a0d00ae4edc4d5a4e8d2535f00e3b526923729cb07551" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:628:NoteUnlockI2C", + "line": 628, + "name": "NoteUnlockI2C", + "node_type": "function", + "qualified_name": "NoteUnlockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "332ac94ab01a177e3e86198b0de45d6c71661451b31fa563870c5a34bb31b8ee" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L643__noteHeartbeat.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:643:_noteHeartbeat", + "line": 643, + "name": "_noteHeartbeat", + "node_type": "function", + "qualified_name": "_noteHeartbeat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8bcc08ec3db207654a28929197e4a830b23248754cc4a971de5beeefa1b44642" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L657__noteLockNote.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:657:_noteLockNote", + "line": 657, + "name": "_noteLockNote", + "node_type": "function", + "qualified_name": "_noteLockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bd6419bbf4169e885b9bee593a1f8fb5f33b7fde74dcf61ea7fe9df34bb3645b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L669__noteUnlockNote.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:669:_noteUnlockNote", + "line": 669, + "name": "_noteUnlockNote", + "node_type": "function", + "qualified_name": "_noteUnlockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b7f648667b1d8899ec0599b9fef73ee910c72bd3284ba9af385633f2df5f52db" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L681__noteTransactionStart.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:681:_noteTransactionStart", + "line": 681, + "name": "_noteTransactionStart", + "node_type": "function", + "qualified_name": "_noteTransactionStart", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4fc2365ad2e2e58ad3a6973119a73ece656463d1f02a620bb0737e7fd9790321" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L694__noteTransactionStop.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:694:_noteTransactionStop", + "line": 694, + "name": "_noteTransactionStop", + "node_type": "function", + "qualified_name": "_noteTransactionStop", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4d79f90763df0c8348532938db45b0e40466eb4d1e7a3d2104eb78083ebd978f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:701:NoteGetFnDebugOutput", + "line": 701, + "name": "NoteGetFnDebugOutput", + "node_type": "function", + "qualified_name": "NoteGetFnDebugOutput", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e1d0d57fb26ba3a1f10d9e5bb3e08877a0baf9b260839c5759b77135fea51e24" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:714:NoteGetFnHeartbeat", + "line": 714, + "name": "NoteGetFnHeartbeat", + "node_type": "function", + "qualified_name": "NoteGetFnHeartbeat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "29305308fb375389e4b2187c70b6a1cd66a816e019052fc371344306217e33a8" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:725:NoteGetFnTransaction", + "line": 725, + "name": "NoteGetFnTransaction", + "node_type": "function", + "qualified_name": "NoteGetFnTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f59bfc1cb5f834afa16faf23c19eca4d41b0e37dd6419ecd6c65d8a039d2cdb7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:737:NoteGetFnMutex", + "line": 737, + "name": "NoteGetFnMutex", + "node_type": "function", + "qualified_name": "NoteGetFnMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c39981258f309c3e076184fd8b2614dd96112cc0c43f0169311a5496991011ae" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L754__NoteGetFnI2CMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:754:NoteGetFnI2CMutex", + "line": 754, + "name": "NoteGetFnI2CMutex", + "node_type": "function", + "qualified_name": "NoteGetFnI2CMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "64681ab2a930aa123f168a90988b8b83d4c8e0f885d9d68e9bfe81d4cba3be8d" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L764__NoteGetFnNoteMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:764:NoteGetFnNoteMutex", + "line": 764, + "name": "NoteGetFnNoteMutex", + "node_type": "function", + "qualified_name": "NoteGetFnNoteMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f82b079b81a4e7549e6156233aae5ce2d5141024da3e94bac1ea0eb84be7a588" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:774:NoteGetFn", + "line": 774, + "name": "NoteGetFn", + "node_type": "function", + "qualified_name": "NoteGetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0d94bc4324a9db44d01983e99ebaf2f43958987d5f71c3af345f7b2d78e4f476" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:793:NoteGetFnSerial", + "line": 793, + "name": "NoteGetFnSerial", + "node_type": "function", + "qualified_name": "NoteGetFnSerial", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a78c8cc840b1e71a7541877135d10686e74e7a93d96c5a65d4d8ba323e435514" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:812:NoteGetFnI2C", + "line": 812, + "name": "NoteGetFnI2C", + "node_type": "function", + "qualified_name": "NoteGetFnI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8adc392989986487e5cb6973d9373f28c132a49344104cead2c09516368f6e69" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L835__NoteGetI2CAddress.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:835:NoteGetI2CAddress", + "line": 835, + "name": "NoteGetI2CAddress", + "node_type": "function", + "qualified_name": "NoteGetI2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dacf14df6ccf05413971b164bc0190027c52158d4135f1a0b6d3862f092a588e" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L842__NoteGetI2CMtu.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:842:NoteGetI2CMtu", + "line": 842, + "name": "NoteGetI2CMtu", + "node_type": "function", + "qualified_name": "NoteGetI2CMtu", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fadb06979fb61e20ba78ba708f53b68fdbd2cddf1bcc6d39abb016ca52213d66" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L855__noteSerialReset.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:855:_noteSerialReset", + "line": 855, + "name": "_noteSerialReset", + "node_type": "function", + "qualified_name": "_noteSerialReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8ed25217eec441650d57be534c8c39784c7d19ef75bcd43f85650db5305f785f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:871:_noteSerialTransmit", + "line": 871, + "name": "_noteSerialTransmit", + "node_type": "function", + "qualified_name": "_noteSerialTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c479425a62ea51f45133d32544b875025cd1df85e1256d22c65aaf4aec810c3f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:887:_noteSerialAvailable", + "line": 887, + "name": "_noteSerialAvailable", + "node_type": "function", + "qualified_name": "_noteSerialAvailable", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ce77122fb3471a16d30cda98c9fc68af1051e2e237ed86d09782401f14a80d49" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L902__noteSerialReceive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:902:_noteSerialReceive", + "line": 902, + "name": "_noteSerialReceive", + "node_type": "function", + "qualified_name": "_noteSerialReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1c70d1e4021e87a3c5074530316ab1ea3e717af3184b021c11eb4dee09b31d4f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L916__noteI2CReset.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:916:_noteI2CReset", + "line": 916, + "name": "_noteI2CReset", + "node_type": "function", + "qualified_name": "_noteI2CReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eaae70cf8c79f2935bd383f1961067b57b54ffad474e883f08f579d21fa5afe3" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:934:_noteI2CTransmit", + "line": 934, + "name": "_noteI2CTransmit", + "node_type": "function", + "qualified_name": "_noteI2CTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bbc3a0235e15240699e8963db7bcf9e2787ebca12f20b8d4f1f4a8e5ecaec691" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L955__noteI2CReceive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:955:_noteI2CReceive", + "line": 955, + "name": "_noteI2CReceive", + "node_type": "function", + "qualified_name": "_noteI2CReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "82fe2c33a4cfe79ccac01dc319b4f6dee3ea1c95a5774249470071825d22f03a" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:969:NoteI2CAddress", + "line": 969, + "name": "NoteI2CAddress", + "node_type": "function", + "qualified_name": "NoteI2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2d6e1e9c28e39bb2499aa2cbbc5a7defddd420153a2300621927f75957984e95" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L977__NoteSetI2CAddress.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:977:NoteSetI2CAddress", + "line": 977, + "name": "NoteSetI2CAddress", + "node_type": "function", + "qualified_name": "NoteSetI2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "357e0b3a366e795b1cf5d468c546d57cefe8cff317ad573a38909bea88b2667d" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L982__NoteSetI2CMtu.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:982:NoteSetI2CMtu", + "line": 982, + "name": "NoteSetI2CMtu", + "node_type": "function", + "qualified_name": "NoteSetI2CMtu", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f850b73a20697686eb370f44f6f9c0c728d396cead683b02099ad8398bf2f762" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L994__NoteI2CMax.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:994:NoteI2CMax", + "line": 994, + "name": "NoteI2CMax", + "node_type": "function", + "qualified_name": "NoteI2CMax", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b6b0486c98fc5903bc9ab9e1e85faa1d641c4d322355cd52acb4bc3a0b0db0f2" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1015__noteHardReset.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1015:_noteHardReset", + "line": 1015, + "name": "_noteHardReset", + "node_type": "function", + "qualified_name": "_noteHardReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "396527a0ca47e79766de884a8994312462b066cd27237e4650dc71287fa3f3ab" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1042:_noteJSONTransaction", + "line": 1042, + "name": "_noteJSONTransaction", + "node_type": "function", + "qualified_name": "_noteJSONTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "756ec9051f615d420a10a683ad9f4600e28efb05e72654e54ef6828b5caf15b9" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1068:_noteChunkedReceive", + "line": 1068, + "name": "_noteChunkedReceive", + "node_type": "function", + "qualified_name": "_noteChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "02c83c65c06ae3d54d2e90e3e352b256d62aeca93b6a09203e9b77578b39f562" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1087:_noteChunkedTransmit", + "line": 1087, + "name": "_noteChunkedTransmit", + "node_type": "function", + "qualified_name": "_noteChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07eb4f86368e882a037ffddf6d79153d215d2a2bcb6699b7b5a5f97631a4233c" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L30__delayIO.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:30:_delayIO", + "line": 30, + "name": "_delayIO", + "node_type": "function", + "qualified_name": "_delayIO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9ddbbaeffeff2e3e64937e20b60433c21f0ed0312579ea4f70e7adc554ba79c4" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:48:_i2cNoteQueryLength", + "line": 48, + "name": "_i2cNoteQueryLength", + "node_type": "function", + "qualified_name": "_i2cNoteQueryLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "da3ff920dd554cfe3bfaf4a4b99503c69ab30d960359522a7e1b523be0c77909" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:87:_i2cNoteTransaction", + "line": 87, + "name": "_i2cNoteTransaction", + "node_type": "function", + "qualified_name": "_i2cNoteTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e1ec6b2a8061d34f25e332c4429aa5b7ca21a2dc171c0f65527a2f7e31147194" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:195:_i2cNoteReset", + "line": 195, + "name": "_i2cNoteReset", + "node_type": "function", + "qualified_name": "_i2cNoteReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dd8e15bc591ba875466f7d30cfa9bc57a62caf1e50c54ce9c2917f026e2a9417" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:338:_i2cNoteChunkedReceive", + "line": 338, + "name": "_i2cNoteChunkedReceive", + "node_type": "function", + "qualified_name": "_i2cNoteChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "82c0d43ba6dbdec828caf6a5fc33aa04f7a273502eb6f08533117895f42f0e6b" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:365:_i2cChunkedReceive", + "line": 365, + "name": "_i2cChunkedReceive", + "node_type": "function", + "qualified_name": "_i2cChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d470112e426f77a14be0204f0d1e8db7b946353c4deb3efc07f2453697b1c1ae" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:456:_i2cNoteChunkedTransmit", + "line": 456, + "name": "_i2cNoteChunkedTransmit", + "node_type": "function", + "qualified_name": "_i2cNoteChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a46b260b8eefc642f2f99cf4cef83d49e52699a76b52f130561a1f238e14e622" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:475:_i2cChunkedTransmit", + "line": 475, + "name": "_i2cChunkedTransmit", + "node_type": "function", + "qualified_name": "_i2cChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "462bfe6d295b432b5082413623acfeb242d1c831e8d892014018547de132d4e0" + }, + { + "artifact": "artifacts/macros/n_lib_h__L35__NOTE_C_STATIC.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:35:NOTE_C_STATIC", + "line": 35, + "name": "NOTE_C_STATIC", + "node_type": "macro", + "qualified_name": "NOTE_C_STATIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f5d2856639e8ec113cad5ec5525db68d73f4e94112a35465454d2c7e0f245183" + }, + { + "artifact": "artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "line": 44, + "name": "CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "node_type": "macro", + "qualified_name": "CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "15f1d9cb7798a8504d2e19c107f5d4eaeeb5b46a92f2add3bfb8ec2a12020a73" + }, + { + "artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "line": 45, + "name": "CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "node_type": "macro", + "qualified_name": "CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0d046b9c2c5774139c74fb43996207ffee832aae1a783efc0cb7b0058cf7fa6f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:56:CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "line": 56, + "name": "CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9f84c738d63473fee2ddb4864df92aa5a64a9fd17c4bcc562a9c64c0165ce982" + }, + { + "artifact": "artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "line": 62, + "name": "CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9dac168bd36348ae8916b11cfb263d0d9c9186001cd4649bf382d1d2798d0f00" + }, + { + "artifact": "artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "line": 68, + "name": "CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "81fb1074454b4cf614a1fc7694d7971517428548022cf2beb01ab4586996ee3e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:74:CARD_REQUEST_I2C_NACK_WAIT_MS", + "line": 74, + "name": "CARD_REQUEST_I2C_NACK_WAIT_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_NACK_WAIT_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d2dae93c7002c040f99aad9b0c060826eead567884f0305caf8502f746a353aa" + }, + { + "artifact": "artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:80:CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "line": 80, + "name": "CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8acadee05f905342307de9f95c7f3605f5a2fbbad1afa5caa3e0ebe961c3db31" + }, + { + "artifact": "artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "line": 86, + "name": "CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "000efdee35a55d25c6aae820ba3da9b4a3fa86f6df20151ece1292c4e0797e41" + }, + { + "artifact": "artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:92:CARD_RESET_DRAIN_MS", + "line": 92, + "name": "CARD_RESET_DRAIN_MS", + "node_type": "macro", + "qualified_name": "CARD_RESET_DRAIN_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f7dcec1371ce1ecd50cd00d395bd8a3088dad29193a708103491e80c40d554b5" + }, + { + "artifact": "artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:98:CARD_REQUEST_RETRIES_ALLOWED", + "line": 98, + "name": "CARD_REQUEST_RETRIES_ALLOWED", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_RETRIES_ALLOWED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f6ca02c0ab13cdd3efe649995e4cc82d92a9c68a60a2c90806bed41aa7b65f9f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES", + "line": 104, + "name": "CARD_RESET_SYNC_RETRIES", + "node_type": "macro", + "qualified_name": "CARD_RESET_SYNC_RETRIES", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "245b0163b50ae79b02047d754f74a8f74466eb05f2d6abd2fb2554b5b20461c2" + }, + { + "artifact": "artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:111:ALLOC_CHUNK", + "line": 111, + "name": "ALLOC_CHUNK", + "node_type": "macro", + "qualified_name": "ALLOC_CHUNK", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "24f834a3cee4357f79cc7ee4fcad18b43487038f806049eb873b4316bace6c53" + }, + { + "artifact": "artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:113:ALLOC_CHUNK", + "line": 113, + "name": "ALLOC_CHUNK", + "node_type": "macro", + "qualified_name": "ALLOC_CHUNK", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "62d18efdbd5d07f48bbe499b172a0348545aacf54a6b837452aba4a53a957c15" + }, + { + "artifact": "artifacts/macros/n_lib_h__L174__c_bad_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:174:c_bad_len", + "line": 174, + "name": "c_bad_len", + "node_type": "macro", + "qualified_name": "c_bad_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "16c80d195e6097e7ab7919e522d75e900a6cce7ba98b5db1d1cef06a3ca8cda4" + }, + { + "artifact": "artifacts/macros/n_lib_h__L177__c_badbinerr_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:177:c_badbinerr_len", + "line": 177, + "name": "c_badbinerr_len", + "node_type": "macro", + "qualified_name": "c_badbinerr_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "800f6abbb370b67c330bdc03c38a2ebbda8cdbb713c3cd6fe99df7ca4a62a9bc" + }, + { + "artifact": "artifacts/macros/n_lib_h__L180__c_cmd_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:180:c_cmd_len", + "line": 180, + "name": "c_cmd_len", + "node_type": "macro", + "qualified_name": "c_cmd_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "506560584ec84eaab3d21f773db8d9fbebf732bf3e8edbc9368add3a0156f1bd" + }, + { + "artifact": "artifacts/macros/n_lib_h__L183__c_err_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:183:c_err_len", + "line": 183, + "name": "c_err_len", + "node_type": "macro", + "qualified_name": "c_err_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "26c6d0445dedf7f486cd0969ca4eb9e9c6a867dac020e502ed4b1faf39c14882" + }, + { + "artifact": "artifacts/macros/n_lib_h__L186__c_false_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:186:c_false_len", + "line": 186, + "name": "c_false_len", + "node_type": "macro", + "qualified_name": "c_false_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2bb370aa6955e98800c532963968955de03d4b62a383ca8aa75642522f328e22" + }, + { + "artifact": "artifacts/macros/n_lib_h__L189__c_heartbeat_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:189:c_heartbeat_len", + "line": 189, + "name": "c_heartbeat_len", + "node_type": "macro", + "qualified_name": "c_heartbeat_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ff014097217ec4149b4fc0790bbdc12ef352227f3ab43d38b74ea769e67197d9" + }, + { + "artifact": "artifacts/macros/n_lib_h__L192__c_iobad_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:192:c_iobad_len", + "line": 192, + "name": "c_iobad_len", + "node_type": "macro", + "qualified_name": "c_iobad_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d27db9346207451810dc47551564dfc4db85b1fc0bb129efa59fc71d35978a84" + }, + { + "artifact": "artifacts/macros/n_lib_h__L195__c_ioerr_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:195:c_ioerr_len", + "line": 195, + "name": "c_ioerr_len", + "node_type": "macro", + "qualified_name": "c_ioerr_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0e5c97c03a023c07d8a4c9d5061e21ac9ead1cb61b4445e56e07a855ff46ec03" + }, + { + "artifact": "artifacts/macros/n_lib_h__L198__c_iotimeout_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:198:c_iotimeout_len", + "line": 198, + "name": "c_iotimeout_len", + "node_type": "macro", + "qualified_name": "c_iotimeout_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c2a9822c2b62f394d85910de30d2041b7c1ac1d482169e47e5e45efd7b08d3ef" + }, + { + "artifact": "artifacts/macros/n_lib_h__L201__c_mem_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:201:c_mem_len", + "line": 201, + "name": "c_mem_len", + "node_type": "macro", + "qualified_name": "c_mem_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ad6f968d08b8171a3a1128dc51bd387a5f1c4d04f8c5c06c82a0f6b6d20a3d13" + }, + { + "artifact": "artifacts/macros/n_lib_h__L204__c_newline_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:204:c_newline_len", + "line": 204, + "name": "c_newline_len", + "node_type": "macro", + "qualified_name": "c_newline_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "96c67ec745acdfd250820de2ca39052287eb042fe79c8f4b963f1259fbe1b3b9" + }, + { + "artifact": "artifacts/macros/n_lib_h__L207__c_null_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:207:c_null_len", + "line": 207, + "name": "c_null_len", + "node_type": "macro", + "qualified_name": "c_null_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c3e67390df214a2b56ba03cd691a04330726cf3527135ac7d77ea8b1fdfe3ced" + }, + { + "artifact": "artifacts/macros/n_lib_h__L210__c_nullstring_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:210:c_nullstring_len", + "line": 210, + "name": "c_nullstring_len", + "node_type": "macro", + "qualified_name": "c_nullstring_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "9f07b8eb9c875a0e13147836bf0f47c2de569f3073aed0619d8cbeb49426147b" + }, + { + "artifact": "artifacts/macros/n_lib_h__L213__c_req_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:213:c_req_len", + "line": 213, + "name": "c_req_len", + "node_type": "macro", + "qualified_name": "c_req_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ae562eb5c586adadb7ba56afca18e4a9ccc0800d9fc231234dcab57a730cd941" + }, + { + "artifact": "artifacts/macros/n_lib_h__L216__c_status_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:216:c_status_len", + "line": 216, + "name": "c_status_len", + "node_type": "macro", + "qualified_name": "c_status_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "696ae69f692da079065e6d23cf9e3ad0b377fc368075ebad1138a98da86ff2e5" + }, + { + "artifact": "artifacts/macros/n_lib_h__L219__c_true_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:219:c_true_len", + "line": 219, + "name": "c_true_len", + "node_type": "macro", + "qualified_name": "c_true_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7690d4edbe2452c77ddc285266c1c674b0367051dea3221811b84bf6296cbd94" + }, + { + "artifact": "artifacts/macros/n_lib_h__L222__c_unsupported_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:222:c_unsupported_len", + "line": 222, + "name": "c_unsupported_len", + "node_type": "macro", + "qualified_name": "c_unsupported_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1f7c4d5864d02ae4b615b6676c772ddb3d688709bad4eb9fa98aaaf9645c6b79" + }, + { + "artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:226:_LockNote", + "line": 226, + "name": "_LockNote", + "node_type": "macro", + "qualified_name": "_LockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1e2a8ebe8c6a15e672fb7bf0222ffe8cdf44f70e2e5c317d4798d85e2509842f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:227:_UnlockNote", + "line": 227, + "name": "_UnlockNote", + "node_type": "macro", + "qualified_name": "_UnlockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "61ee653e6433ee5f32d71206fcdf402b75c6c32353e60c241482e378b85d865f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L228__TransactionStart.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:228:_TransactionStart", + "line": 228, + "name": "_TransactionStart", + "node_type": "macro", + "qualified_name": "_TransactionStart", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c56fc13405d9542a53ac9f146b41874674170990ac390f10b53424c64ea25392" + }, + { + "artifact": "artifacts/macros/n_lib_h__L229__TransactionStop.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:229:_TransactionStop", + "line": 229, + "name": "_TransactionStop", + "node_type": "macro", + "qualified_name": "_TransactionStop", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6a5aa75e8a422cdfdf850054fdbf05e415f58090b1204bf594b294be698ba37f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L230__SerialReset.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:230:_SerialReset", + "line": 230, + "name": "_SerialReset", + "node_type": "macro", + "qualified_name": "_SerialReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b4843590f007fc07b75955efadc2f67a533c1a2b8155271ce7148afae479ed8e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L231__SerialTransmit.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:231:_SerialTransmit", + "line": 231, + "name": "_SerialTransmit", + "node_type": "macro", + "qualified_name": "_SerialTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "da31d9a4f7cb5ea6b823be4729225da84ef2ad4846724aadde6182d3951ed42e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:232:_SerialAvailable", + "line": 232, + "name": "_SerialAvailable", + "node_type": "macro", + "qualified_name": "_SerialAvailable", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0037555fd9aa4a8c4d6fee497177c3eefff34ff2addd065176887a77cea289f7" + }, + { + "artifact": "artifacts/macros/n_lib_h__L233__SerialReceive.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:233:_SerialReceive", + "line": 233, + "name": "_SerialReceive", + "node_type": "macro", + "qualified_name": "_SerialReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bf0f3be316d741f1d2be0282924d6895983752e35535900c20f3a3b7ac7c737d" + }, + { + "artifact": "artifacts/macros/n_lib_h__L234__I2CReset.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:234:_I2CReset", + "line": 234, + "name": "_I2CReset", + "node_type": "macro", + "qualified_name": "_I2CReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "441c257524fcd126aa5dfc1486897bcaaf72871687a6689bffdcb17376cecd3e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L235__I2CTransmit.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:235:_I2CTransmit", + "line": 235, + "name": "_I2CTransmit", + "node_type": "macro", + "qualified_name": "_I2CTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6d097400a5d32482c0ad7d041b4118b05b11875e0ddd79f8c1d99a6395e45330" + }, + { + "artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:236:_I2CReceive", + "line": 236, + "name": "_I2CReceive", + "node_type": "macro", + "qualified_name": "_I2CReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "80706fef948ddca1fc51be6c33759ddcd2a25e836bfbe777a6811b9e48a314da" + }, + { + "artifact": "artifacts/macros/n_lib_h__L237__Reset.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:237:_Reset", + "line": 237, + "name": "_Reset", + "node_type": "macro", + "qualified_name": "_Reset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f479881efb92c08c1ed4ec4a2ff3070cda65105ae48cb165022ec472edd38ba9" + }, + { + "artifact": "artifacts/macros/n_lib_h__L238__Transaction.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:238:_Transaction", + "line": 238, + "name": "_Transaction", + "node_type": "macro", + "qualified_name": "_Transaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "17508fc0911734b4394a65692a199cd6ba30e4379fe67f1b810bd79192e3572a" + }, + { + "artifact": "artifacts/macros/n_lib_h__L239__ChunkedReceive.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:239:_ChunkedReceive", + "line": 239, + "name": "_ChunkedReceive", + "node_type": "macro", + "qualified_name": "_ChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1b33c70533cb501d0a6ba6233b4864b7b439a2f3c60e06f7bd859b495dc26c42" + }, + { + "artifact": "artifacts/macros/n_lib_h__L240__ChunkedTransmit.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:240:_ChunkedTransmit", + "line": 240, + "name": "_ChunkedTransmit", + "node_type": "macro", + "qualified_name": "_ChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "df22748554db7983d22fb4a07c97c113cd8608e564e77d70f3f1eaa6768b4e3f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:241:_Malloc", + "line": 241, + "name": "_Malloc", + "node_type": "macro", + "qualified_name": "_Malloc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "107dffb81511cebd7bf9e79902dad30010c8ad9d90869d4da26cfbc0ede6aa0c" + }, + { + "artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:242:_Free", + "line": 242, + "name": "_Free", + "node_type": "macro", + "qualified_name": "_Free", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "591931f3a085aee2394a44c794d496a55d59747388fc153b559620e3ed7b8585" + }, + { + "artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:243:_GetMs", + "line": 243, + "name": "_GetMs", + "node_type": "macro", + "qualified_name": "_GetMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "62e3f4ccf524f20092c32ce39f1728290d3df529eab03fc741f9cfc8ced1ba90" + }, + { + "artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:244:_DelayMs", + "line": 244, + "name": "_DelayMs", + "node_type": "macro", + "qualified_name": "_DelayMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "61c6730767c5f2fb2b6cbf7727ae56481c72012dbbfa8eeb1c1e407a509c5780" + }, + { + "artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:245:_LockI2C", + "line": 245, + "name": "_LockI2C", + "node_type": "macro", + "qualified_name": "_LockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "43efe6ce862052305997410211ede5570025f1af70c7864f5d3d68d055203d24" + }, + { + "artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:246:_UnlockI2C", + "line": 246, + "name": "_UnlockI2C", + "node_type": "macro", + "qualified_name": "_UnlockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3f1a51206a68792bd4d1397a8b86ef9f076893659049397dc30f5bad2e6aa69f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:247:_I2CAddress", + "line": 247, + "name": "_I2CAddress", + "node_type": "macro", + "qualified_name": "_I2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2d7af9ffdfbf12b7f1790667d425253d5853bd180fb5233d361f3434c76170cc" + }, + { + "artifact": "artifacts/macros/n_lib_h__L248__I2CMax.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:248:_I2CMax", + "line": 248, + "name": "_I2CMax", + "node_type": "macro", + "qualified_name": "_I2CMax", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "98369925253035611bcab30586348919f2db900b5b7895c01d187a955146430b" + }, + { + "artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:256:_Debug", + "line": 256, + "name": "_Debug", + "node_type": "macro", + "qualified_name": "_Debug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4c2ab5348641aba54d1a5106f7e4caf6358da989ae48cc5fb79f9de0111291d" + }, + { + "artifact": "artifacts/macros/n_lib_h__L257__Debugln.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:257:_Debugln", + "line": 257, + "name": "_Debugln", + "node_type": "macro", + "qualified_name": "_Debugln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2b9cf7cf93917535edd6a7078fb004e55c1a87ac7196b6ba761020109da16a1a" + }, + { + "artifact": "artifacts/macros/n_lib_h__L258__DebugIntln.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:258:_DebugIntln", + "line": 258, + "name": "_DebugIntln", + "node_type": "macro", + "qualified_name": "_DebugIntln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e78ec23f7b126a6c848e7ea856e7a7bc0efb5b8855b6619d23699c0e7a48193a" + }, + { + "artifact": "artifacts/macros/n_lib_h__L259__DebugWithLevel.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:259:_DebugWithLevel", + "line": 259, + "name": "_DebugWithLevel", + "node_type": "macro", + "qualified_name": "_DebugWithLevel", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b1ce8220f4310c4dcf3817ab66599f2951e83a227bda495ffc61d58e5e63ba55" + }, + { + "artifact": "artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:260:_DebugWithLevelLn", + "line": 260, + "name": "_DebugWithLevelLn", + "node_type": "macro", + "qualified_name": "_DebugWithLevelLn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0291810f9457787a482319eca368ddd9e3a48b86e4390804750b2e301c5be7c5" + }, + { + "artifact": "artifacts/macros/n_md5_c__L187__F1.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:187:F1", + "line": 187, + "name": "F1", + "node_type": "macro", + "qualified_name": "F1", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8b78b5fed35e43b9169ae5fad71a02de93d029c60a3b9d1616e443662b5e079f" + }, + { + "artifact": "artifacts/macros/n_md5_c__L188__F2.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:188:F2", + "line": 188, + "name": "F2", + "node_type": "macro", + "qualified_name": "F2", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a27990a901a46c8d3351b9fca4779cbcab8bffc25b9b80b7bf6877e4578929b5" + }, + { + "artifact": "artifacts/macros/n_md5_c__L189__F3.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:189:F3", + "line": 189, + "name": "F3", + "node_type": "macro", + "qualified_name": "F3", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "117acc6979ee24a45c90b2afcb921580ff9ee8f9e97a6afd2dc632a2da61c694" + }, + { + "artifact": "artifacts/macros/n_md5_c__L190__F4.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:190:F4", + "line": 190, + "name": "F4", + "node_type": "macro", + "qualified_name": "F4", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b8ecc04b649f27e8ae273fe99341afcb4f8da68f0c6834d776292b5b1aa5baee" + }, + { + "artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:193:MD5STEP", + "line": 193, + "name": "MD5STEP", + "node_type": "macro", + "qualified_name": "MD5STEP", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8255877f38e0cf0caaaeb9da5da3d46272ecf38ad153d8a84f326d6af14be68e" + }, + { + "artifact": "artifacts/functions/n_md5_c__L42__getu32.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:42:getu32", + "line": 42, + "name": "getu32", + "node_type": "function", + "qualified_name": "getu32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4529eb725eb0600fba163c2d9827d0c2b39fbcea38317c3feb9be541385f4662" + }, + { + "artifact": "artifacts/functions/n_md5_c__L48__putu32.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:48:putu32", + "line": 48, + "name": "putu32", + "node_type": "function", + "qualified_name": "putu32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bc9fd3bb71b534dd0dfc0ef2f5cdd8763f1dec05f36c44be63e08048ae751746" + }, + { + "artifact": "artifacts/functions/n_md5_c__L57__n_htoa8.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:57:n_htoa8", + "line": 57, + "name": "n_htoa8", + "node_type": "function", + "qualified_name": "n_htoa8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "5859012875fb1a5915047f2067889ed83d319bcb11048217e061508c1c422bba" + }, + { + "artifact": "artifacts/functions/n_md5_c__L78__NoteMD5Init.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:78:NoteMD5Init", + "line": 78, + "name": "NoteMD5Init", + "node_type": "function", + "qualified_name": "NoteMD5Init", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a4e4a4ee98350de4c965e756036668348c3f5406515d3df6e0c881c322df8cba" + }, + { + "artifact": "artifacts/functions/n_md5_c__L95__NoteMD5Update.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:95:NoteMD5Update", + "line": 95, + "name": "NoteMD5Update", + "node_type": "function", + "qualified_name": "NoteMD5Update", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a77410f020aa100a968053a3dd6080a4b5f56778c25b19b60d4edd37c346892b" + }, + { + "artifact": "artifacts/functions/n_md5_c__L143__NoteMD5Final.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:143:NoteMD5Final", + "line": 143, + "name": "NoteMD5Final", + "node_type": "function", + "qualified_name": "NoteMD5Final", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e96bc83b8392f95256cfa34f475cb7b7d7b321b572ad1ef0fd8dfbf372a4aa56" + }, + { + "artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:201:NoteMD5Transform", + "line": 201, + "name": "NoteMD5Transform", + "node_type": "function", + "qualified_name": "NoteMD5Transform", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "17793efb9f14f8681c4174d208838639512b5867d841d7efeb433b2286bf0ce3" + }, + { + "artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:292:NoteMD5Hash", + "line": 292, + "name": "NoteMD5Hash", + "node_type": "function", + "qualified_name": "NoteMD5Hash", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "500d6567c4ebaa5a0222bc40542f9716104ca11d947edd76a87a19c4865b2096" + }, + { + "artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:301:NoteMD5HashString", + "line": 301, + "name": "NoteMD5HashString", + "node_type": "function", + "qualified_name": "NoteMD5HashString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cebddcabf186225a5ddfdc4b555893c5011a4008a460520cc246b66f282bbd18" + }, + { + "artifact": "artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:314:NoteMD5HashToString", + "line": 314, + "name": "NoteMD5HashToString", + "node_type": "function", + "qualified_name": "NoteMD5HashToString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "792c67c110a5d58419f23d056d8b1c7550b44cbd5625b8e677e936726229336e" + }, + { + "artifact": "artifacts/functions/n_printf_c__L35__NoteDebugf.md", + "extraction_method": "regex-c-function", + "file": "n_printf.c", + "id": "function:n_printf.c:35:NoteDebugf", + "line": 35, + "name": "NoteDebugf", + "node_type": "function", + "qualified_name": "NoteDebugf", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "60619bbfe695329aea69885ec5831b5927e6066f1eaf2c5606a82356ecdf447b" + }, + { + "artifact": "artifacts/functions/n_printf_c__L60__NotePrintf.md", + "extraction_method": "regex-c-function", + "file": "n_printf.c", + "id": "function:n_printf.c:60:NotePrintf", + "line": 60, + "name": "NotePrintf", + "node_type": "function", + "qualified_name": "NotePrintf", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3b763b38acb017648cd4d77b33773445a44650282e736d83aa57748ea46daa34" + }, + { + "artifact": "artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:31:CRC_FIELD_LENGTH", + "line": 31, + "name": "CRC_FIELD_LENGTH", + "node_type": "macro", + "qualified_name": "CRC_FIELD_LENGTH", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "38582a1925b86d2f60838733fcf22188957ba5a6b2ab770a1f53ca22f9b2e71b" + }, + { + "artifact": "artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:32:CRC_FIELD_NAME_OFFSET", + "line": 32, + "name": "CRC_FIELD_NAME_OFFSET", + "node_type": "macro", + "qualified_name": "CRC_FIELD_NAME_OFFSET", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7f51e48da1c1f1d733e2fcf17660f3b9cebb5b2acbc8f19861e2529483000122" + }, + { + "artifact": "artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:33:CRC_FIELD_NAME_TEST", + "line": 33, + "name": "CRC_FIELD_NAME_TEST", + "node_type": "macro", + "qualified_name": "CRC_FIELD_NAME_TEST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3a0b3c63d20d99a17f9a536be5e5114827bc1bfb1f74f37f73257b3a188e2a58" + }, + { + "artifact": "artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:34:ERR_FIELD_NAME_TEST", + "line": 34, + "name": "ERR_FIELD_NAME_TEST", + "node_type": "macro", + "qualified_name": "ERR_FIELD_NAME_TEST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "95eecd8177012d8d496f4053645f08649d0f570fec9f4f1bb2cff15cc9348f98" + }, + { + "artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:55:_errDoc", + "line": 55, + "name": "_errDoc", + "node_type": "function", + "qualified_name": "_errDoc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0042cc386508601d7863d09698cb0f389a9180746e908bef09783c0c7b630891" + }, + { + "artifact": "artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:80:_noteResumeTransactionDebug", + "line": 80, + "name": "_noteResumeTransactionDebug", + "node_type": "function", + "qualified_name": "_noteResumeTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "54e1a1720df92a02b1b3e8c31194e44f3b4605dc65e58c5b3b99b36e8e85686e" + }, + { + "artifact": "artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:88:_noteSuspendTransactionDebug", + "line": 88, + "name": "_noteSuspendTransactionDebug", + "node_type": "function", + "qualified_name": "_noteSuspendTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b7e0f1ff1024a3daec4d935bc83a4d361971f1718dfa737f37ae463ebfd495ce" + }, + { + "artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "line": 117, + "name": "_noteTransaction_calculateTimeoutMs", + "node_type": "function", + "qualified_name": "_noteTransaction_calculateTimeoutMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "26a2b3950b21bc49338ec1084de93de6fa8d38900674bff049e539031027dbd3" + }, + { + "artifact": "artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:153:NoteSuspendTransactionDebug", + "line": 153, + "name": "NoteSuspendTransactionDebug", + "node_type": "function", + "qualified_name": "NoteSuspendTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07b443cdb7fbf76da57a0e965ce4da4718e302d40aeb693ffc5627dd8725a204" + }, + { + "artifact": "artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:161:NoteResumeTransactionDebug", + "line": 161, + "name": "NoteResumeTransactionDebug", + "node_type": "function", + "qualified_name": "NoteResumeTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a341a66e5edd4c07ceb4e3298777d57cb4f268a955a96fd50731a267da80cc1b" + }, + { + "artifact": "artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:166:NoteSetRequestTimeout", + "line": 166, + "name": "NoteSetRequestTimeout", + "node_type": "function", + "qualified_name": "NoteSetRequestTimeout", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5fec03fc2215423f092deb41944a8221fed891b8435b059dec90036e1ca9e66f" + }, + { + "artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:173:NoteNewRequest", + "line": 173, + "name": "NoteNewRequest", + "node_type": "function", + "qualified_name": "NoteNewRequest", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bc6ad71c17139811845fea60659a68a095eff1ca07aaa83be2f8a73adb7ff17f" + }, + { + "artifact": "artifacts/functions/n_request_c__L182__NoteNewCommand.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:182:NoteNewCommand", + "line": 182, + "name": "NoteNewCommand", + "node_type": "function", + "qualified_name": "NoteNewCommand", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6e4015774a569e7f1c266d3e8b5d01d2d4a3e18081aea6b34893e13295b01aa6" + }, + { + "artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:191:NoteRequest", + "line": 191, + "name": "NoteRequest", + "node_type": "function", + "qualified_name": "NoteRequest", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f9f243415625133d9086dda2e2777a26b69de0bcd0564f3ce4ab24cee63943d8" + }, + { + "artifact": "artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:205:NoteRequestWithRetry", + "line": 205, + "name": "NoteRequestWithRetry", + "node_type": "function", + "qualified_name": "NoteRequestWithRetry", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2badb02cad8a235622083ca4846d11c4ef7cb1117b972b5c9cb51feb35000bdc" + }, + { + "artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:220:NoteRequestResponse", + "line": 220, + "name": "NoteRequestResponse", + "node_type": "function", + "qualified_name": "NoteRequestResponse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d6eb6891ce8f7aa5ff2910584650b7f590cdfe720ad0792a2ac3562f369c07e7" + }, + { + "artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:234:NoteRequestResponseWithRetry", + "line": 234, + "name": "NoteRequestResponseWithRetry", + "node_type": "function", + "qualified_name": "NoteRequestResponseWithRetry", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "903ab1cd3b311f1f08fc7675eeed4808efed7e7799d59efe7f58cd873884ec92" + }, + { + "artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:279:NoteRequestResponseJSON", + "line": 279, + "name": "NoteRequestResponseJSON", + "node_type": "function", + "qualified_name": "NoteRequestResponseJSON", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1df0f94a6aa623147b8d7f7ab8a00dd03a9a8ef2b63fc43d980fe9e3da60c72b" + }, + { + "artifact": "artifacts/functions/n_request_c__L411__NoteTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:411:NoteTransaction", + "line": 411, + "name": "NoteTransaction", + "node_type": "function", + "qualified_name": "NoteTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3de4c553a834d782b33d0b8e267ae4741c3b5b05804f82277af882be70c0fa99" + }, + { + "artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:428:_noteTransactionShouldLock", + "line": 428, + "name": "_noteTransactionShouldLock", + "node_type": "function", + "qualified_name": "_noteTransactionShouldLock", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cabd51ddc3fd52bcbbf04a736e264c7469c794d558652e4862bdc4a0dfb45653" + }, + { + "artifact": "artifacts/functions/n_request_c__L756__NoteResetRequired.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:756:NoteResetRequired", + "line": 756, + "name": "NoteResetRequired", + "node_type": "function", + "qualified_name": "NoteResetRequired", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "783c8d64765bf63038070501633d85526562bccb1f8e658d2299c3c034476df7" + }, + { + "artifact": "artifacts/functions/n_request_c__L766__NoteReset.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:766:NoteReset", + "line": 766, + "name": "NoteReset", + "node_type": "function", + "qualified_name": "NoteReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "726b5d1fdd1e60c73165dd474852aec65bad5386baad63771171a9b97e6c6eb0" + }, + { + "artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:786:_notePingDrainInput", + "line": 786, + "name": "_notePingDrainInput", + "node_type": "function", + "qualified_name": "_notePingDrainInput", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1a8a29aec26a51711facb3bc9fd14947b4cf6abbd55892861324ce5f0d1f04c2" + }, + { + "artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:841:NotePing", + "line": 841, + "name": "NotePing", + "node_type": "function", + "qualified_name": "NotePing", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "630893633c7a22267d77d3b47ce76c52080a93e98fd3d6d7ffe0eae7b7fac2df" + }, + { + "artifact": "artifacts/functions/n_request_c__L940__NoteErrorContains.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:940:NoteErrorContains", + "line": 940, + "name": "NoteErrorContains", + "node_type": "function", + "qualified_name": "NoteErrorContains", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2da7b8e6ec085dbee2be2b43c0dc99335cdd3d042281a1fdab5b30d407fe9d2e" + }, + { + "artifact": "artifacts/functions/n_request_c__L945__NoteErrorClean.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:945:NoteErrorClean", + "line": 945, + "name": "NoteErrorClean", + "node_type": "function", + "qualified_name": "NoteErrorClean", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b8f1ed84659b030aaddee0fbc8e44bb74589e61640c6f6ac12571fc5dbeedfde" + }, + { + "artifact": "artifacts/functions/n_request_c__L975__n_atoh.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:975:_n_atoh", + "line": 975, + "name": "_n_atoh", + "node_type": "function", + "qualified_name": "_n_atoh", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "453834980a5112694130913f996ddaeb686d9c816abcf83cd375490c92b0ddf6" + }, + { + "artifact": "artifacts/functions/n_request_c__L1019__crc32.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:1019:_crc32", + "line": 1019, + "name": "_crc32", + "node_type": "function", + "qualified_name": "_crc32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fe32685aa29e9717434e73ccce12291a62f8fde24fc03afbe114091edfaa4d01" + }, + { + "artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:1047:_crcAdd", + "line": 1047, + "name": "_crcAdd", + "node_type": "function", + "qualified_name": "_crcAdd", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9849707a6abdcb74f4e7d1ce9c1f2e1708c25d40c81e62df0cff3deb24fed5ee" + }, + { + "artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:1113:_crcError", + "line": 1113, + "name": "_crcError", + "node_type": "function", + "qualified_name": "_crcError", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "86fb524a8abbd11ab8326b63724ee54dcfc2b325d44ebbe3fb00773721a70328" + }, + { + "artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:35:_serialNoteTransaction", + "line": 35, + "name": "_serialNoteTransaction", + "node_type": "function", + "qualified_name": "_serialNoteTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f8c610f9763fa8930331da265218b7eb4b4686cfbb763024c64ef0ce79edcb11" + }, + { + "artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:153:_serialNoteReset", + "line": 153, + "name": "_serialNoteReset", + "node_type": "function", + "qualified_name": "_serialNoteReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "95a8b43ff996f0a9ddddd9acd076f389685a8a571ffc454f2954c3069a07b64d" + }, + { + "artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:237:_serialChunkedReceive", + "line": 237, + "name": "_serialChunkedReceive", + "node_type": "function", + "qualified_name": "_serialChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4e8f3ec77012d9f61b9baec8c0210394e46492db1a02240deaf19c451afe9855" + }, + { + "artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:303:_serialChunkedTransmit", + "line": 303, + "name": "_serialChunkedTransmit", + "node_type": "function", + "qualified_name": "_serialChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "aedeca638b0f81e8bc229e1c7f972df80b9be5ecb980e391f18cf1e87f3b70e1" + }, + { + "artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "extraction_method": "regex-c-function", + "file": "n_str.c", + "id": "function:n_str.c:31:strlcpy", + "line": 31, + "name": "strlcpy", + "node_type": "function", + "qualified_name": "strlcpy", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "da978765b2a48a4f7f3c988a8745a1fd572413f2d8e7763200e6bcd79cc09588" + }, + { + "artifact": "artifacts/functions/n_str_c__L69__strlcat.md", + "extraction_method": "regex-c-function", + "file": "n_str.c", + "id": "function:n_str.c:69:strlcat", + "line": 69, + "name": "strlcat", + "node_type": "function", + "qualified_name": "strlcat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ec0fde2798f46897cc5d0b61798214f840003d10846883c2b0fa1dd4c836c642" + }, + { + "artifact": "artifacts/macros/n_ua_c__L107__PLUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ua.c", + "id": "macro:n_ua.c:107:PLUS", + "line": 107, + "name": "PLUS", + "node_type": "macro", + "qualified_name": "PLUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6cfcdc0c1bcac6e1458e87dac0b548975b6eb516b7663f51ce9afac9aad1b26b" + }, + { + "artifact": "artifacts/macros/n_ua_c__L109__PLUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ua.c", + "id": "macro:n_ua.c:109:PLUS", + "line": 109, + "name": "PLUS", + "node_type": "macro", + "qualified_name": "PLUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7cb3d3705750ab4f1fb922b83b33ca36cf260e59316edf6b7ffb63b92a30c73d" + }, + { + "artifact": "artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:80:NoteUserAgentUpdate", + "line": 80, + "name": "NoteUserAgentUpdate", + "node_type": "function", + "qualified_name": "NoteUserAgentUpdate", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "64b00a5c986db0c793ae845bc19c3b1fd3b5962869fd8331355e89785b2ce959" + }, + { + "artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:95:NoteUserAgent", + "line": 95, + "name": "NoteUserAgent", + "node_type": "function", + "qualified_name": "NoteUserAgent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c7383321be874869ea7066eaca2832e6521e473dbec514fa0ea05c356d0d99cb" + }, + { + "artifact": "artifacts/functions/n_ua_c__L191__NoteSetUserAgent.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:191:NoteSetUserAgent", + "line": 191, + "name": "NoteSetUserAgent", + "node_type": "function", + "qualified_name": "NoteSetUserAgent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "106fffa12681473ca1f95a4e159465f439d8e62d8c1911587faa992714a10ae4" + }, + { + "artifact": "artifacts/functions/n_ua_c__L201__NoteSetUserAgentOS.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:201:NoteSetUserAgentOS", + "line": 201, + "name": "NoteSetUserAgentOS", + "node_type": "function", + "qualified_name": "NoteSetUserAgentOS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0c6c08539f85423312b93f06c2b8e16a94c5d659777210141282fa994cb93d44" + }, + { + "artifact": "artifacts/functions/n_ua_c__L214__NoteSetUserAgentCPU.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:214:NoteSetUserAgentCPU", + "line": 214, + "name": "NoteSetUserAgentCPU", + "node_type": "function", + "qualified_name": "NoteSetUserAgentCPU", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b3e3ddc7a1e9cb27f8e81493ab34fb865e8275a89c9e4c5f6227de3348d7eb4e" + }, + { + "artifact": "artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:19:NOTE_C_DEPRECATED", + "line": 19, + "name": "NOTE_C_DEPRECATED", + "node_type": "macro", + "qualified_name": "NOTE_C_DEPRECATED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d28016887e84ac341fd006c9b36a83eb098ff2bcaea7d1100ee677507a655071" + }, + { + "artifact": "artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:21:NOTE_C_DEPRECATED", + "line": 21, + "name": "NOTE_C_DEPRECATED", + "node_type": "macro", + "qualified_name": "NOTE_C_DEPRECATED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d94cea32a93f7f8d869042c80ae8086b52b89b24108eff82bf55fa1310836d2b" + }, + { + "artifact": "artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:39:_NOTE_C_STRINGIZE", + "line": 39, + "name": "_NOTE_C_STRINGIZE", + "node_type": "macro", + "qualified_name": "_NOTE_C_STRINGIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cf32bc8c03886a3727d98410e8f9881992319d999a2ae941e50a51496f462009" + }, + { + "artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:40:NOTE_C_STRINGIZE", + "line": 40, + "name": "NOTE_C_STRINGIZE", + "node_type": "macro", + "qualified_name": "NOTE_C_STRINGIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "122112847d607186284335139368d85503b7855c41bb008c9559cfc10cd48621" + }, + { + "artifact": "artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:42:NOTE_C_VERSION_MAJOR", + "line": 42, + "name": "NOTE_C_VERSION_MAJOR", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION_MAJOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f6fbe76ccf4d58463762909600a0b376bb7ad99c2e165252a57b78fc7134c462" + }, + { + "artifact": "artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:43:NOTE_C_VERSION_MINOR", + "line": 43, + "name": "NOTE_C_VERSION_MINOR", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION_MINOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "283508b8b98c7dcd590c544484cc2c9b6ac19a124d6a449e1b01d6a3783e848a" + }, + { + "artifact": "artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:44:NOTE_C_VERSION_PATCH", + "line": 44, + "name": "NOTE_C_VERSION_PATCH", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION_PATCH", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e8a36055f5166c116d1460deb2b1ccd5944d8fcb096f49a2074b1cf82db4c94d" + }, + { + "artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:46:NOTE_C_VERSION", + "line": 46, + "name": "NOTE_C_VERSION", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "720e1d1d592a13bc844b324f1592d684ca18d27e74ac644ca117b33d4ae5ee11" + }, + { + "artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:75:ERRSTR", + "line": 75, + "name": "ERRSTR", + "node_type": "macro", + "qualified_name": "ERRSTR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "30e13034a2a2e3d86d515dae4f0ef9723d0fb592d70d9fae3a7bc867e5975a22" + }, + { + "artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "line": 76, + "name": "NOTE_C_LOG_DEBUG", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_DEBUG", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c87caa19a117ca15c27ac3809cbc66488def26a9371654d059b6ca72bd94672c" + }, + { + "artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:78:ERRSTR", + "line": 78, + "name": "ERRSTR", + "node_type": "macro", + "qualified_name": "ERRSTR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a822c179f7cb21e97e768f003328bc3e882d30667874695d5b9c0738d744c439" + }, + { + "artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:85:JNUMBER", + "line": 85, + "name": "JNUMBER", + "node_type": "typedef", + "qualified_name": "JNUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "20945a575e0dc5a32d8e3607b79e065790f435c59a2f2aba0ff5ee5ae4873c8b" + }, + { + "artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:87:JNUMBER", + "line": 87, + "name": "JNUMBER", + "node_type": "typedef", + "qualified_name": "JNUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a42218f601197e805c4dff89621161754d28c218a27e4028d6b4274daeac092a" + }, + { + "artifact": "artifacts/types/note_h__L93__JINTEGER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:93:JINTEGER", + "line": 93, + "name": "JINTEGER", + "node_type": "typedef", + "qualified_name": "JINTEGER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "15aa8caa61d6f24873d0986abde979a9fd9c82aea2fc0c85f627e5135196cd33" + }, + { + "artifact": "artifacts/macros/note_h__L94__JINTEGER_MIN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:94:JINTEGER_MIN", + "line": 94, + "name": "JINTEGER_MIN", + "node_type": "macro", + "qualified_name": "JINTEGER_MIN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4d0bcc67fccea9b342a64910f79c91a83ca3efd073e0b7de15f51646337cf97c" + }, + { + "artifact": "artifacts/macros/note_h__L95__JINTEGER_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:95:JINTEGER_MAX", + "line": 95, + "name": "JINTEGER_MAX", + "node_type": "macro", + "qualified_name": "JINTEGER_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "55963d27b63e1be0adca32a474406d73a1b095b0f0f9b0b34f4b97ed7fefbd8d" + }, + { + "artifact": "artifacts/types/note_h__L100__JUINTEGER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:100:JUINTEGER", + "line": 100, + "name": "JUINTEGER", + "node_type": "typedef", + "qualified_name": "JUINTEGER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c91ee7fd95b8377d47abe87a811e657450821a7c00b995914c04418fe1c2ef74" + }, + { + "artifact": "artifacts/types/note_h__L105__JTIME.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:105:JTIME", + "line": 105, + "name": "JTIME", + "node_type": "typedef", + "qualified_name": "JTIME", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "121572b75c98c634afd72cd8992cb3214e2074410e242541a6fc6ab2f43a7cf6" + }, + { + "artifact": "artifacts/types/note_h__L124__delayMsFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:124:delayMsFn", + "line": 124, + "name": "delayMsFn", + "node_type": "typedef", + "qualified_name": "delayMsFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3f18b6f3c565e51c2228563dc141238acfabb4957586115e4bb88fa810338afd" + }, + { + "artifact": "artifacts/types/note_h__L133__freeFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:133:freeFn", + "line": 133, + "name": "freeFn", + "node_type": "typedef", + "qualified_name": "freeFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "111dbe2d27db45a7e705dfafed4bec8590e0fea4037f38c15ea491d9e8628940" + }, + { + "artifact": "artifacts/types/note_h__L142__getMsFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:142:getMsFn", + "line": 142, + "name": "getMsFn", + "node_type": "typedef", + "qualified_name": "getMsFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "84bb05f0b6c7e6c7407029f96fba187e16d0b45a8e3f1d0f8ac69cf88c101e86" + }, + { + "artifact": "artifacts/types/note_h__L153__debugOutputFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:153:debugOutputFn", + "line": 153, + "name": "debugOutputFn", + "node_type": "typedef", + "qualified_name": "debugOutputFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "661b43a5d7508a09c1599691e57fee6f2ab576fe3d0c58ba398a5d975b5de63d" + }, + { + "artifact": "artifacts/types/note_h__L166__heartbeatFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:166:heartbeatFn", + "line": 166, + "name": "heartbeatFn", + "node_type": "typedef", + "qualified_name": "heartbeatFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "aac9e624715aa3dc2ba44edff24fd5b2f78bf1773b77a861447021e6300fb63f" + }, + { + "artifact": "artifacts/types/note_h__L183__i2cReceiveFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:183:i2cReceiveFn", + "line": 183, + "name": "i2cReceiveFn", + "node_type": "typedef", + "qualified_name": "i2cReceiveFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c6e2566ec20e6ac99fdf4d2d6b23009594ef0521cd1e97fa738a7bc58ae23434" + }, + { + "artifact": "artifacts/types/note_h__L196__i2cResetFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:196:i2cResetFn", + "line": 196, + "name": "i2cResetFn", + "node_type": "typedef", + "qualified_name": "i2cResetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9190a1e74e00bf33cc3ebfce1bc26a8ef3bfd08e710d648feb1fc814da941fdd" + }, + { + "artifact": "artifacts/types/note_h__L211__i2cTransmitFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:211:i2cTransmitFn", + "line": 211, + "name": "i2cTransmitFn", + "node_type": "typedef", + "qualified_name": "i2cTransmitFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "82d7c7831df76bb19e430553ce4daf5de1bb0dfba65e3de506dd9e98447b90e0" + }, + { + "artifact": "artifacts/types/note_h__L223__mallocFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:223:mallocFn", + "line": 223, + "name": "mallocFn", + "node_type": "typedef", + "qualified_name": "mallocFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b37b8951a68646f0bf9e4732d1df28d074eb0ae8758b9a6de027ed707e37e741" + }, + { + "artifact": "artifacts/types/note_h__L230__mutexFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:230:mutexFn", + "line": 230, + "name": "mutexFn", + "node_type": "typedef", + "qualified_name": "mutexFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4f5c144797b8ed6ade2b8a310fb04deaa372b65291bd530fb3c0f133509abd8" + }, + { + "artifact": "artifacts/types/note_h__L239__serialAvailableFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:239:serialAvailableFn", + "line": 239, + "name": "serialAvailableFn", + "node_type": "typedef", + "qualified_name": "serialAvailableFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5bf2d7df79f469f2df9a44c2f9040116c7e037094e91ca1145c7dbc95b7920dd" + }, + { + "artifact": "artifacts/types/note_h__L248__serialReceiveFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:248:serialReceiveFn", + "line": 248, + "name": "serialReceiveFn", + "node_type": "typedef", + "qualified_name": "serialReceiveFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cacd39075b2fbfdc74c95cfc4d99227b517000a730e5a60201a7a5eb9a99ed4f" + }, + { + "artifact": "artifacts/types/note_h__L260__serialResetFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:260:serialResetFn", + "line": 260, + "name": "serialResetFn", + "node_type": "typedef", + "qualified_name": "serialResetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1814c3dbe9ea959b0dcd3331e03630993c80216d3d2eb80e11d1b0d91581ab7d" + }, + { + "artifact": "artifacts/types/note_h__L271__serialTransmitFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:271:serialTransmitFn", + "line": 271, + "name": "serialTransmitFn", + "node_type": "typedef", + "qualified_name": "serialTransmitFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4f6e0c46e630fbb6c41df584a64ed44f8b62a9089caf205725a5cf93b5241ffe" + }, + { + "artifact": "artifacts/types/note_h__L282__txnStartFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:282:txnStartFn", + "line": 282, + "name": "txnStartFn", + "node_type": "typedef", + "qualified_name": "txnStartFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f2c248f180f8c07675dcea21b0cf701662ae28a6223cbf2750eeacb3e44329cf" + }, + { + "artifact": "artifacts/types/note_h__L289__txnStopFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:289:txnStopFn", + "line": 289, + "name": "txnStopFn", + "node_type": "typedef", + "qualified_name": "txnStopFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "24e0ba1759548f9819b8e18ddf13bc65746f004fceef341196d7a7fa27a22200" + }, + { + "artifact": "artifacts/macros/note_h__L322__NoteNewBody.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:322:NoteNewBody", + "line": 322, + "name": "NoteNewBody", + "node_type": "macro", + "qualified_name": "NoteNewBody", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "386075eb6a73e1a396492af236fbf8ef74aab4c2042503cc3379bb2173a3224e" + }, + { + "artifact": "artifacts/macros/note_h__L323__NoteAddBodyToObject.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:323:NoteAddBodyToObject", + "line": 323, + "name": "NoteAddBodyToObject", + "node_type": "macro", + "qualified_name": "NoteAddBodyToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8d48a7237dc76feafbcc0620971c0da8aa7efdbcc7116b8f192d5cc80b955f68" + }, + { + "artifact": "artifacts/macros/note_h__L324__NoteGetBody.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:324:NoteGetBody", + "line": 324, + "name": "NoteGetBody", + "node_type": "macro", + "qualified_name": "NoteGetBody", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "20ea5014ec43bdbf6a0a951c27a2ceffd7eda20d7d75d60027e13e4af116debb" + }, + { + "artifact": "artifacts/macros/note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:410:SYNCSTATUS_LEVEL_MAJOR", + "line": 410, + "name": "SYNCSTATUS_LEVEL_MAJOR", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_MAJOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1a59a7d3c4fa08e6b1879cc06879b6acc376c9bf2f021908a96bd257b48117d8" + }, + { + "artifact": "artifacts/macros/note_h__L411__SYNCSTATUS_LEVEL_MINOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:411:SYNCSTATUS_LEVEL_MINOR", + "line": 411, + "name": "SYNCSTATUS_LEVEL_MINOR", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_MINOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8cb3ea4853f814e9c658967aaa45554b86c211a652c18bde38b7146119dd7dd4" + }, + { + "artifact": "artifacts/macros/note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:412:SYNCSTATUS_LEVEL_DETAILED", + "line": 412, + "name": "SYNCSTATUS_LEVEL_DETAILED", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_DETAILED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "94e35e0ca2a89d891c1cac2a7feffb061577db649b501eedaac0f5dfb4fbf059" + }, + { + "artifact": "artifacts/macros/note_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:413:SYNCSTATUS_LEVEL_ALGORITHMIC", + "line": 413, + "name": "SYNCSTATUS_LEVEL_ALGORITHMIC", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_ALGORITHMIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b20288a98b03c504a5d0c4eed10b4ecc27d111140b5ab065337ac3c494ac8a40" + }, + { + "artifact": "artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:414:SYNCSTATUS_LEVEL_ALL", + "line": 414, + "name": "SYNCSTATUS_LEVEL_ALL", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_ALL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e9e660be497731f799d0fe0bb533f62896cb01d485144b71dc1109c354ff715e" + }, + { + "artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:479:NoteResponseError", + "line": 479, + "name": "NoteResponseError", + "node_type": "macro", + "qualified_name": "NoteResponseError", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f9ac7ac7b570307cd29ce3784c01317d871261c4364da2b8d916384efeeba4b0" + }, + { + "artifact": "artifacts/macros/note_h__L480__NoteResponseErrorContains.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:480:NoteResponseErrorContains", + "line": 480, + "name": "NoteResponseErrorContains", + "node_type": "macro", + "qualified_name": "NoteResponseErrorContains", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4cb48ecb78bed89e5976c5a24bd319e682ea7c56c51d87a90fd1c388f79dbbc0" + }, + { + "artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:486:NoteDeleteResponse", + "line": 486, + "name": "NoteDeleteResponse", + "node_type": "macro", + "qualified_name": "NoteDeleteResponse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "27398869e5f3f01952c3a2d3e0a3d1b3ed78680213cd0e70c29a3f7d5ee58dfa" + }, + { + "artifact": "artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:829:NOTE_I2C_ADDR_DEFAULT", + "line": 829, + "name": "NOTE_I2C_ADDR_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_ADDR_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a891b337c83360c62f322df252654d59ff11d51772ae5bf9b7168735de2381d1" + }, + { + "artifact": "artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:833:NOTE_I2C_HEADER_SIZE", + "line": 833, + "name": "NOTE_I2C_HEADER_SIZE", + "node_type": "macro", + "qualified_name": "NOTE_I2C_HEADER_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "80ca46dad1501d7bc7bb45d49611d58382880b94e8db4a1fd8c4c1f42234597b" + }, + { + "artifact": "artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:843:NOTE_I2C_MAX_MAX", + "line": 843, + "name": "NOTE_I2C_MAX_MAX", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8daa5b355b198a33f9d92c26cda971e4bc8a297a3b99808b6af79c9a745cee69" + }, + { + "artifact": "artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:845:NOTE_I2C_MAX_MAX", + "line": 845, + "name": "NOTE_I2C_MAX_MAX", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bae6f72b56396880d97eb066dd340772aa61746628b25a146edc5ae1038d8296" + }, + { + "artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "line": 849, + "name": "NOTE_I2C_MTU_MAX", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MTU_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6be3325849b3e125266193fdbb14504c152cae78cadf38eff8dbca669d896af3" + }, + { + "artifact": "artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "line": 866, + "name": "NOTE_I2C_MAX_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "324e4b1a851d794d574fed4a87f8f213ada9d6894d2f9c411308b1ed2c585b69" + }, + { + "artifact": "artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "line": 869, + "name": "NOTE_I2C_MAX_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "97a4cf3fc60875987bcc4d0d5d506271e364f45d59146e341ac9a998b92973e7" + }, + { + "artifact": "artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:876:NOTE_I2C_MAX_DEFAULT", + "line": 876, + "name": "NOTE_I2C_MAX_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0b2be4ced5e9b24fc604efd1e70a9ee088ec5e88ad4b1d2704d479047ccd6dca" + }, + { + "artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "line": 880, + "name": "NOTE_I2C_MTU_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MTU_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "177cbd8ed47ae8a9c796a3984672bb6d5f9bfbf86b38499170e23411c89d5619" + }, + { + "artifact": "artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "line": 953, + "name": "NOTE_C_LOG_LEVEL_ERROR", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_ERROR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4bea6577098d11eff424d1c35e6aae2d60157284d3c667c8a6b2878726953356" + }, + { + "artifact": "artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:954:NOTE_C_LOG_LEVEL_WARN", + "line": 954, + "name": "NOTE_C_LOG_LEVEL_WARN", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_WARN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "339b8569872ab6e0ad9488873894562a1befd816493c2644a6aa75100a766014" + }, + { + "artifact": "artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "line": 955, + "name": "NOTE_C_LOG_LEVEL_INFO", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_INFO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0645a026ec9bfd19afc13bd24ed88ebbf1543174658957351ab7937ee61601cf" + }, + { + "artifact": "artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:956:NOTE_C_LOG_LEVEL_DEBUG", + "line": 956, + "name": "NOTE_C_LOG_LEVEL_DEBUG", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_DEBUG", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e540a6033049eff69e2de68b5e9c0c0827fcafd113ce6fb2f79f5497dd09efdd" + }, + { + "artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "line": 982, + "name": "NOTE_C_LOG_FILE_AND_LINE", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_FILE_AND_LINE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bb1585cd5099e65dd2be35267fa21ed2c177b057baa22388ee285eb72c1a5280" + }, + { + "artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:990:NOTE_C_LOG_ERROR", + "line": 990, + "name": "NOTE_C_LOG_ERROR", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_ERROR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "86b0f1eb34a8aad42ea4dad9d99bf31b3455ca5f09bfdab08a1ee647caf9ca4e" + }, + { + "artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:998:NOTE_C_LOG_WARN", + "line": 998, + "name": "NOTE_C_LOG_WARN", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_WARN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b26eadd1f1a5af6ea19d630d91d7299728249a088bcc359f67f616673dd469bf" + }, + { + "artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1006:NOTE_C_LOG_INFO", + "line": 1006, + "name": "NOTE_C_LOG_INFO", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_INFO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "64df47a7a637b69241438b993c78e0770c8aa0afb0cceb95012e985e9c142543" + }, + { + "artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "line": 1014, + "name": "NOTE_C_LOG_DEBUG", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_DEBUG", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "059db73bdb32b57e19fbff9fe7cda397dbddbde4e635aa168fcc036223cc81ca" + }, + { + "artifact": "artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "line": 1022, + "name": "NOTE_C_LOG_LEVEL_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "888d47ad93af98430de6d94d8ba06549b60bb636def2e77d573e8785760e65bc" + }, + { + "artifact": "artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1028:NOTE_C_LOG_LEVEL", + "line": 1028, + "name": "NOTE_C_LOG_LEVEL", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ff73dd9cd71dd7486a3fb2e685b4104361a9886b8eb04e164ce3b3ed7f991c07" + }, + { + "artifact": "artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1400:JTYPE_NOT_PRESENT", + "line": 1400, + "name": "JTYPE_NOT_PRESENT", + "node_type": "macro", + "qualified_name": "JTYPE_NOT_PRESENT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "31c08dd2021964d8a49dec783ac07b925babdf40f8cd05b0bbcd28cb9ec2d43c" + }, + { + "artifact": "artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1401:JTYPE_BOOL_TRUE", + "line": 1401, + "name": "JTYPE_BOOL_TRUE", + "node_type": "macro", + "qualified_name": "JTYPE_BOOL_TRUE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4b2e25afac0112993b5bce3e974a7960604485bafe0c21ac440f5a695a8ba6b" + }, + { + "artifact": "artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "line": 1402, + "name": "JTYPE_BOOL_FALSE", + "node_type": "macro", + "qualified_name": "JTYPE_BOOL_FALSE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6f6f6f70b980a7bb11af60311b591fcd7b3f97e65dcc8c86b449fe979bd5721c" + }, + { + "artifact": "artifacts/macros/note_h__L1403__JTYPE_BOOL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1403:JTYPE_BOOL", + "line": 1403, + "name": "JTYPE_BOOL", + "node_type": "macro", + "qualified_name": "JTYPE_BOOL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "55d5762b8f5c753e8e38ac4e9a66c0359402ca479dc9934d08d099f1b6fa7e1b" + }, + { + "artifact": "artifacts/macros/note_h__L1404__JTYPE_NULL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1404:JTYPE_NULL", + "line": 1404, + "name": "JTYPE_NULL", + "node_type": "macro", + "qualified_name": "JTYPE_NULL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "220538b64f2ff886bc386fc9e631bb581fe2179f661fbb2e51e4de27e4952897" + }, + { + "artifact": "artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "line": 1405, + "name": "JTYPE_NUMBER_ZERO", + "node_type": "macro", + "qualified_name": "JTYPE_NUMBER_ZERO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a80b41a17a3cc63f5c118b26ca678a22bbf75b4d41240c6d16c55051ea49a3db" + }, + { + "artifact": "artifacts/macros/note_h__L1406__JTYPE_NUMBER.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1406:JTYPE_NUMBER", + "line": 1406, + "name": "JTYPE_NUMBER", + "node_type": "macro", + "qualified_name": "JTYPE_NUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0f0966f0fe4ba11a05b77d0d6bcc815a4062ede4c198a58d106f7e4ae8d681b3" + }, + { + "artifact": "artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1407:JTYPE_STRING_BLANK", + "line": 1407, + "name": "JTYPE_STRING_BLANK", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_BLANK", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0304a2c5a38977aedc434e4dcef2c74a3752b4a0bc3e0577810841febbbbdca4" + }, + { + "artifact": "artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1408:JTYPE_STRING_ZERO", + "line": 1408, + "name": "JTYPE_STRING_ZERO", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_ZERO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d87cd77c94866643d02a13b8a97b577ce9c534175479850d212fb25572718ee7" + }, + { + "artifact": "artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1409:JTYPE_STRING_NUMBER", + "line": 1409, + "name": "JTYPE_STRING_NUMBER", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_NUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cbf4df344baac3b0ea2947cb7603b45ca9dffe0ec43b95dc992ece7963a3d297" + }, + { + "artifact": "artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1410:JTYPE_STRING_BOOL_TRUE", + "line": 1410, + "name": "JTYPE_STRING_BOOL_TRUE", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_BOOL_TRUE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bd3d808fc84ea6239d4c095e58bea662edbeadd6326969239cff35b97dea975e" + }, + { + "artifact": "artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1411:JTYPE_STRING_BOOL_FALSE", + "line": 1411, + "name": "JTYPE_STRING_BOOL_FALSE", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_BOOL_FALSE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "99b314c06a6489e5b9d3f86c204a2c017274e2191f2ee5ffd5f4b52a6464da6c" + }, + { + "artifact": "artifacts/macros/note_h__L1412__JTYPE_STRING.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1412:JTYPE_STRING", + "line": 1412, + "name": "JTYPE_STRING", + "node_type": "macro", + "qualified_name": "JTYPE_STRING", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ca3d07247d5a2ec93088a17ffa3687b2946c30c674276f6bb3e179559d559eb2" + }, + { + "artifact": "artifacts/macros/note_h__L1413__JTYPE_OBJECT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1413:JTYPE_OBJECT", + "line": 1413, + "name": "JTYPE_OBJECT", + "node_type": "macro", + "qualified_name": "JTYPE_OBJECT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fd1ab84275c9d77bc45a266f1ea3fd1e6a19936639415a3cc4cfe58e9b392ebf" + }, + { + "artifact": "artifacts/macros/note_h__L1414__JTYPE_ARRAY.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1414:JTYPE_ARRAY", + "line": 1414, + "name": "JTYPE_ARRAY", + "node_type": "macro", + "qualified_name": "JTYPE_ARRAY", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7b02d7d784aec47ec4ae1e7249e3bcfe1463e1e404d432f60bfa58941cb78d2d" + }, + { + "artifact": "artifacts/macros/note_h__L1440__JGetObjectItemName.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1440:JGetObjectItemName", + "line": 1440, + "name": "JGetObjectItemName", + "node_type": "macro", + "qualified_name": "JGetObjectItemName", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b9a302ddbe82e71c7f80e1daf9e1ccabc5c289ed317f1c17b0c7601d12244e70" + }, + { + "artifact": "artifacts/macros/note_h__L1443__JNTOA_PRECISION.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1443:JNTOA_PRECISION", + "line": 1443, + "name": "JNTOA_PRECISION", + "node_type": "macro", + "qualified_name": "JNTOA_PRECISION", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d46654d4f60c579819836f4921c044bab471173e6f9a314f00d2c1835afc1065" + }, + { + "artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1444:JNTOA_MAX", + "line": 1444, + "name": "JNTOA_MAX", + "node_type": "macro", + "qualified_name": "JNTOA_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a8b5a18e67ca1c2dc9e281f10de498aec0a4607486371ba3c5e8f4d2aca66b07" + }, + { + "artifact": "artifacts/types/note_h__L1523__typedef_1523.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:1523:typedef_1523", + "line": 1523, + "name": "typedef_1523", + "node_type": "typedef", + "qualified_name": "typedef_1523", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3a2c92178b3b6098dd04eef0d25d0433f2b298712f6c26d3def182911abb9dcf" + }, + { + "artifact": "artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "line": 1528, + "name": "NOTE_MD5_HASH_SIZE", + "node_type": "macro", + "qualified_name": "NOTE_MD5_HASH_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f11045b4f99dec35c9d6ab7860877b1f97eede85bd392bebc98345ac1c5c4b74" + }, + { + "artifact": "artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "line": 1529, + "name": "NOTE_MD5_HASH_STRING_SIZE", + "node_type": "macro", + "qualified_name": "NOTE_MD5_HASH_STRING_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b43e9d4cbb7f12dd9b732f40ced9e0b388f7881da6c395bf0651c75fee9e9b8b" + }, + { + "artifact": "artifacts/macros/note_h__L2033__NoteSend.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2033:NoteSend", + "line": 2033, + "name": "NoteSend", + "node_type": "macro", + "qualified_name": "NoteSend", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "78085ce00537ced1172131f8ab5d2ee1133a8ae417601c20b8dfe0ff4d58408b" + }, + { + "artifact": "artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2102:NP_SEGTYPE_LEN", + "line": 2102, + "name": "NP_SEGTYPE_LEN", + "node_type": "macro", + "qualified_name": "NP_SEGTYPE_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "86e66abaed79df521c8a81b61e5d6d3c11828f06d78fdd11fe63084bfe52886a" + }, + { + "artifact": "artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2103:NP_SEGLEN_LEN", + "line": 2103, + "name": "NP_SEGLEN_LEN", + "node_type": "macro", + "qualified_name": "NP_SEGLEN_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "56609fce32401b28b9016dd6c8d26cdccb363f64824cd92957831bb9a9564e5e" + }, + { + "artifact": "artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2104:NP_SEGHDR_LEN", + "line": 2104, + "name": "NP_SEGHDR_LEN", + "node_type": "macro", + "qualified_name": "NP_SEGHDR_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4df6d27c619b03c191edf2dbf9fd361b926ebdb0067757b9d8937ac6d1ca13db" + }, + { + "artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:2109:typedef_2109", + "line": 2109, + "name": "typedef_2109", + "node_type": "typedef", + "qualified_name": "typedef_2109", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "83b33e603339c9cd3ae9eaa2cde94b9967e2e56a45cb22c06b763c5d2dea834f" + }, + { + "artifact": "artifacts/macros/note_h__L2182__TBOOL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2182:TBOOL", + "line": 2182, + "name": "TBOOL", + "node_type": "macro", + "qualified_name": "TBOOL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b00b654963bda1d7f313e887bdd24bb8cd47800e27fde7fce5a49ebe45a410b4" + }, + { + "artifact": "artifacts/macros/note_h__L2183__TINT8.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2183:TINT8", + "line": 2183, + "name": "TINT8", + "node_type": "macro", + "qualified_name": "TINT8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e45cd0c0b8e3c7e2eca383e890177658252e58dfa25cdee20ce91ec491b4bd23" + }, + { + "artifact": "artifacts/macros/note_h__L2184__TINT16.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2184:TINT16", + "line": 2184, + "name": "TINT16", + "node_type": "macro", + "qualified_name": "TINT16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e2cd2513a30c214802a830556fe4a4182cb088996aec7bb02d98b963f0356da3" + }, + { + "artifact": "artifacts/macros/note_h__L2185__TINT24.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2185:TINT24", + "line": 2185, + "name": "TINT24", + "node_type": "macro", + "qualified_name": "TINT24", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "22f41dcb7169384912d311681d43150d8aa1bb96c273791ddc9c86fb4c971d9f" + }, + { + "artifact": "artifacts/macros/note_h__L2186__TINT32.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2186:TINT32", + "line": 2186, + "name": "TINT32", + "node_type": "macro", + "qualified_name": "TINT32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4daec8756de66e335f06616ea6a7788bc56c1efc2a230766ec120cfcd39f863c" + }, + { + "artifact": "artifacts/macros/note_h__L2187__TINT64.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2187:TINT64", + "line": 2187, + "name": "TINT64", + "node_type": "macro", + "qualified_name": "TINT64", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c5bed6a672d3b7b65ae96bebaf69c2baef3573a5966fa0ecf9ca31690be18a73" + }, + { + "artifact": "artifacts/macros/note_h__L2188__TUINT8.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2188:TUINT8", + "line": 2188, + "name": "TUINT8", + "node_type": "macro", + "qualified_name": "TUINT8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "36f979390c31236d5fee52a4982ffb755c05ac67532dbb368cb3e2b255f4c04c" + }, + { + "artifact": "artifacts/macros/note_h__L2189__TUINT16.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2189:TUINT16", + "line": 2189, + "name": "TUINT16", + "node_type": "macro", + "qualified_name": "TUINT16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f8f2728d026e3a743c41f45f6ca05ff9617b76b92ed868150737edd796188e64" + }, + { + "artifact": "artifacts/macros/note_h__L2190__TUINT24.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2190:TUINT24", + "line": 2190, + "name": "TUINT24", + "node_type": "macro", + "qualified_name": "TUINT24", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7f4f952f86df9ed8c4486bd680abf0725c16c7c768183f6afb538b00b6338955" + }, + { + "artifact": "artifacts/macros/note_h__L2191__TUINT32.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2191:TUINT32", + "line": 2191, + "name": "TUINT32", + "node_type": "macro", + "qualified_name": "TUINT32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "08d0a83f3bdec6a1925c70cde73899ab15ab880242ffba33743f0a31e51b86a4" + }, + { + "artifact": "artifacts/macros/note_h__L2192__TFLOAT16.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2192:TFLOAT16", + "line": 2192, + "name": "TFLOAT16", + "node_type": "macro", + "qualified_name": "TFLOAT16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "43bddafa3d97e8bb8ce011cae3a11daac1b1343fdec52b64b26070c78ff2352c" + }, + { + "artifact": "artifacts/macros/note_h__L2193__TFLOAT32.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2193:TFLOAT32", + "line": 2193, + "name": "TFLOAT32", + "node_type": "macro", + "qualified_name": "TFLOAT32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cfdd76c9ff69296f5c635823b27a18593b74cb5930280d04a79f2212a6e1964d" + }, + { + "artifact": "artifacts/macros/note_h__L2194__TFLOAT64.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2194:TFLOAT64", + "line": 2194, + "name": "TFLOAT64", + "node_type": "macro", + "qualified_name": "TFLOAT64", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a8b7cdb4f443ccaf9d8c755fb3d2628747f15a513c3f75426f396a3679fc3b6e" + }, + { + "artifact": "artifacts/macros/note_h__L2195__TSTRING.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2195:TSTRING", + "line": 2195, + "name": "TSTRING", + "node_type": "macro", + "qualified_name": "TSTRING", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "48e415b96bca9a0e59c07c5ec7a11c9346684174aa34d17ce9e477b5c0533c06" + }, + { + "artifact": "artifacts/macros/note_h__L2196__TSTRINGV.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2196:TSTRINGV", + "line": 2196, + "name": "TSTRINGV", + "node_type": "macro", + "qualified_name": "TSTRINGV", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "6d14a282ab08e62c0ea3032d2b89ae8ccbf49fe6ab9918cc411dd5735af6eb25" + } + ], + "schema_version": 1, + "summary": { + "edge_count": 1342, + "edges": 1342, + "nodes": 585 + } +} diff --git a/source-research/inventory/evidence-validation.json b/source-research/inventory/evidence-validation.json new file mode 100644 index 00000000..b6fd63dd --- /dev/null +++ b/source-research/inventory/evidence-validation.json @@ -0,0 +1,10 @@ +{ + "generated_at_utc": "2026-07-02T23:46:54+00:00", + "schema_version": 1, + "summary": { + "violations": 0, + "warnings": 0 + }, + "violations": [], + "warnings": [] +} diff --git a/source-research/inventory/graph-substrate.json b/source-research/inventory/graph-substrate.json new file mode 100644 index 00000000..fb250015 --- /dev/null +++ b/source-research/inventory/graph-substrate.json @@ -0,0 +1,279 @@ +{ + "cmake_validation": { + "artifact_compile_databases": { + "default": "inventory/compile_commands.default.json", + "lowmem_single": "inventory/compile_commands.lowmem-single.json" + }, + "ast_validation": { + "ambiguous_edge_candidates_after_revalidation": 0, + "ast_call_edges_added_to_graph": 38, + "ast_function_definitions": 335, + "ast_project_call_edges": 768, + "edge_candidates_after_revalidation": 0, + "graph_defs_not_seen_by_default_cmake_ast": [ + { + "file": "n_hooks.c", + "name": "NoteGetFnHeartbeat" + }, + { + "file": "n_hooks.c", + "name": "NoteSetFnHeartbeat" + }, + { + "file": "n_hooks.c", + "name": "_n_ptoa32" + }, + { + "file": "n_hooks.c", + "name": "_noteHeartbeat" + } + ], + "graph_function_definitions_in_compiled_c_files": 339, + "lowmem_single_revalidation": { + "ambiguous_edge_candidates_after_revalidation": 0, + "ast_function_definitions": 325, + "ast_project_call_edges": 750, + "edge_candidates_after_revalidation": 0, + "graph_defs_not_seen_by_ast": [ + { + "file": "n_hooks.c", + "name": "NoteGetFnHeartbeat" + }, + { + "file": "n_hooks.c", + "name": "NoteSetFnHeartbeat" + }, + { + "file": "n_hooks.c", + "name": "_n_htoa32" + }, + { + "file": "n_hooks.c", + "name": "_n_ptoa32" + }, + { + "file": "n_hooks.c", + "name": "_noteHeartbeat" + }, + { + "file": "n_request.c", + "name": "_crc32" + }, + { + "file": "n_request.c", + "name": "_crcAdd" + }, + { + "file": "n_request.c", + "name": "_crcError" + }, + { + "file": "n_request.c", + "name": "_n_atoh" + } + ], + "graph_function_definitions_in_compiled_c_files": 334, + "missing_ast_definitions_in_graph": 0, + "raw_ast_call_edges_covered_by_existing_macro_alias_edges": 206, + "raw_ast_call_edges_missing_from_graph_by_name": 206, + "translation_units": 14, + "unresolved_missing_call_edges": 0, + "warnings": 2 + }, + "missing_ast_definitions_in_graph": 0, + "raw_ast_call_edges_covered_by_existing_macro_alias_edges": 207, + "raw_ast_call_edges_missing_from_graph_by_name": 207, + "report": "inventory/cmake-ast-validation.json", + "revalidated_at_utc": "2026-07-02T23:45:52+00:00", + "translation_units": 15, + "unresolved_missing_call_edges": 0 + }, + "build_directories": { + "default": "/private/tmp/note-c-cmake-default", + "lowmem_single": "/private/tmp/note-c-cmake-lowmem" + }, + "build_results": { + "default": "passed_with_warnings", + "lowmem_single": "passed_with_warnings", + "warnings_summary": [ + "n_cjson.c warns at lines 307, 329, and 2338 about INT64_MAX conversion to JNUMBER.", + "n_ftoa.c warns at line 473 about UINTMAX_MAX conversion to JNUMBER.", + "Warnings match the earlier manual clang syntax-check substrate report." + ] + }, + "cmake_version": "cmake version 4.3.4", + "default_variant": { + "commands": 15, + "defines": [ + "HAVE_STRLCAT", + "HAVE_STRLCPY" + ], + "files": [ + "n_atof.c", + "n_b64.c", + "n_cjson.c", + "n_cjson_helpers.c", + "n_cobs.c", + "n_const.c", + "n_ftoa.c", + "n_helpers.c", + "n_hooks.c", + "n_i2c.c", + "n_md5.c", + "n_printf.c", + "n_request.c", + "n_serial.c", + "n_ua.c" + ], + "include_paths": [ + "/Users/zak/Development/GitHub/blues/note-c" + ], + "source_files": 15 + }, + "generated_at_utc": "2026-07-02T23:45:52+00:00", + "lowmem_single_variant": { + "commands": 14, + "defines": [ + "HAVE_STRLCAT", + "HAVE_STRLCPY", + "NOTE_C_LOW_MEM", + "NOTE_C_SINGLE_PRECISION" + ], + "files": [ + "n_atof.c", + "n_b64.c", + "n_cjson.c", + "n_cjson_helpers.c", + "n_cobs.c", + "n_const.c", + "n_ftoa.c", + "n_helpers.c", + "n_hooks.c", + "n_i2c.c", + "n_md5.c", + "n_printf.c", + "n_request.c", + "n_serial.c" + ], + "include_paths": [ + "/Users/zak/Development/GitHub/blues/note-c" + ], + "source_files": 14 + } + }, + "extracted_facts": { + "ast_function_definitions": 335, + "ast_nodes": 0, + "ast_project_call_edges": 768, + "clang_ast_edge_candidates_after_revalidation": 0, + "clang_ast_edges_added_to_graph": 38, + "compile_database": 2, + "graph_edges_after_cmake_validation": 1342, + "include_edges": 0, + "lexical_graph_edges": 896, + "lexical_graph_nodes": 585, + "macro_expansions": 0, + "references": 0 + }, + "generated_at_utc": "2026-07-02T23:45:52+00:00", + "limits": [ + "Function-pointer hook dispatch and macro alias behavior must be verified during source slices.", + "Clang AST validation covers direct AST-visible calls in configured CMake variants; function-pointer dispatch, macro alias semantics, and feature-disabled code still require source inspection or separate variant checks.", + "CMake validation was performed for default production and NOTE_C_LOW_MEM/NOTE_C_SINGLE_PRECISION production variants with tests disabled; test harness compile commands were not used as production graph evidence." + ], + "schema_version": 1, + "source_root": "/Users/zak/Development/GitHub/blues/note-c", + "substrate_summary": { + "best_available_substrate": "cmake-compile-database-plus-clang-ast-validation", + "compiler_database": "available", + "confidence": "high for CMake source/define sets and AST-visible direct calls; medium for macro/dynamic/function-pointer behavior requiring source inspection", + "dependency_graph_source": "source_inventory lexical graph, source-inspected repairs, and CMake/Clang AST validation edges", + "notes": [ + "CMake 4.3.4 was installed via Homebrew and used to generate compile_commands.json out of tree.", + "Default macOS CMake configuration exactly confirmed the previously inferred source set: 15 production C translation units, HAVE_STRLCPY, HAVE_STRLCAT, n_str.c excluded, n_ua.c included.", + "Low-memory/single-precision CMake configuration exactly confirmed the previously inferred source set: 14 production C translation units, HAVE_STRLCPY, HAVE_STRLCAT, NOTE_C_LOW_MEM, NOTE_C_SINGLE_PRECISION, n_str.c and n_ua.c excluded.", + "CMake builds succeeded for both variants with the same numeric conversion warnings previously recorded from manual clang syntax checks.", + "Clang AST found no compiled C function definitions missing from the graph. Four graph functions are absent from the default variant because they are gated by NOTE_C_HEARTBEAT_CALLBACK or NOTE_C_SHOW_MALLOC.", + "CMake/Clang AST comparison added 38 high-confidence unverified calls_static edges and found 207 raw AST call differences already represented by existing macro-alias paths.", + "2026-07-02 revalidation against current HEAD found 0 AST definitions missing from the graph and 0 unresolved direct-call edge candidates for both default and low-memory/single-precision CMake variants; no dependency graph edges were added." + ] + }, + "tools": [ + { + "available": true, + "command": "cmake --version", + "name": "cmake", + "version": "cmake version 4.3.4" + }, + { + "available": true, + "command": "clang --version", + "name": "clang", + "version": "Apple clang version 21.0.0 (clang-2100.1.1.101); Target: arm64-apple-darwin25.5.0" + }, + { + "available": true, + "command": "clangd --version", + "name": "clangd", + "version": "Apple clangd version 21.0.0 (clang-2100.1.1.101); Features: mac+xpc; Platform: arm64-apple-darwin25.5.0" + }, + { + "available": "limited", + "command": "ctags --version", + "name": "ctags", + "result": "/Library/Developer/CommandLineTools/usr/bin/ctags supports BSD ctags flags only; no --version support." + } + ], + "variants": [ + { + "command": "clang -fsyntax-only -I. n_atof.c n_b64.c n_cjson.c n_cjson_helpers.c n_cobs.c n_const.c n_ftoa.c n_helpers.c n_hooks.c n_i2c.c n_md5.c n_printf.c n_request.c n_serial.c n_str.c n_ua.c", + "diagnostics_summary": [ + "Fails in note.h and n_str.c because macOS secure string headers define fortified strlcpy/strlcat macros.", + "CMakeLists.txt checks HAVE_STRLCPY/HAVE_STRLCAT and omits n_str.c on platforms that provide strlcpy/strlcat." + ], + "id": "raw-macos-without-cmake-defines", + "purpose": "Confirm platform-specific CMake defines are required.", + "source_files": 16, + "status": "failed" + }, + { + "command": "clang -fsyntax-only -I. -DHAVE_STRLCPY -DHAVE_STRLCAT n_atof.c n_b64.c n_cjson.c n_cjson_helpers.c n_cobs.c n_const.c n_ftoa.c n_helpers.c n_hooks.c n_i2c.c n_md5.c n_printf.c n_request.c n_serial.c n_ua.c", + "defines": [ + "HAVE_STRLCPY", + "HAVE_STRLCAT" + ], + "diagnostics_summary": [ + "n_cjson.c warns about implicit conversion from INT64_MAX to JNUMBER at lines 307, 329, and 2338.", + "n_ftoa.c warns about implicit conversion from UINTMAX_MAX to JNUMBER at line 473." + ], + "excluded_sources": [ + "n_str.c" + ], + "id": "default-macos-cmake-equivalent", + "purpose": "Syntax-check default macOS source set inferred from CMakeLists.txt.", + "source_files": 15, + "status": "passed_with_warnings" + }, + { + "command": "clang -fsyntax-only -I. -DHAVE_STRLCPY -DHAVE_STRLCAT -DNOTE_C_LOW_MEM -DNOTE_C_SINGLE_PRECISION n_atof.c n_b64.c n_cjson.c n_cjson_helpers.c n_cobs.c n_const.c n_ftoa.c n_helpers.c n_hooks.c n_i2c.c n_md5.c n_printf.c n_request.c n_serial.c", + "defines": [ + "HAVE_STRLCPY", + "HAVE_STRLCAT", + "NOTE_C_LOW_MEM", + "NOTE_C_SINGLE_PRECISION" + ], + "diagnostics_summary": [ + "n_cjson.c warns about implicit conversion from INT64_MAX to JNUMBER at lines 307, 329, and 2338.", + "n_ftoa.c warns about implicit conversion from UINTMAX_MAX to JNUMBER at line 473." + ], + "excluded_sources": [ + "n_str.c", + "n_ua.c" + ], + "id": "low-mem-macos-cmake-equivalent", + "purpose": "Syntax-check low-memory source set inferred from CMakeLists.txt and note.h precision behavior.", + "source_files": 14, + "status": "passed_with_warnings" + } + ] +} diff --git a/source-research/inventory/impact-report.json b/source-research/inventory/impact-report.json new file mode 100644 index 00000000..e25c66df --- /dev/null +++ b/source-research/inventory/impact-report.json @@ -0,0 +1,16 @@ +{ + "added_node_ids": [], + "generated_at_utc": "2026-07-02T23:46:50+00:00", + "impacted_artifacts": [], + "impacted_claim_ids": [], + "impacted_node_ids": [], + "schema_version": 1, + "seed_node_ids": [], + "summary": { + "added_nodes": 0, + "impacted_artifacts": 0, + "impacted_claims": 0, + "impacted_nodes": 0, + "seed_nodes": 0 + } +} diff --git a/source-research/inventory/progress-summary.json b/source-research/inventory/progress-summary.json new file mode 100644 index 00000000..4db67f27 --- /dev/null +++ b/source-research/inventory/progress-summary.json @@ -0,0 +1,49 @@ +{ + "artifacts": { + "lifecycle_status_counts": { + "finalized": 585 + }, + "missing_artifacts": 0, + "orphan_artifacts": 640, + "tracked_artifacts": 585 + }, + "claims": { + "status": { + "finalized": 29 + }, + "total": 29 + }, + "generated_at_utc": "2026-07-02T23:46:50+00:00", + "manifest_research_state": "complete", + "nodes": { + "behavior_status": { + "finalized": 585 + }, + "by_kind": { + "function": 341, + "macro": 205, + "struct": 5, + "typedef": 34 + }, + "callee_status": { + "verified": 585 + }, + "caller_status": { + "none-found": 180, + "verified": 405 + }, + "confidence": { + "high": 585 + }, + "identity_status": { + "verified": 585 + }, + "test_evidence_status": { + "focused": 431, + "none": 154 + }, + "total": 585 + }, + "recommended_research_state": "complete", + "schema_version": 1 +} diff --git a/source-research/inventory/repair-plan.json b/source-research/inventory/repair-plan.json new file mode 100644 index 00000000..3053c14b --- /dev/null +++ b/source-research/inventory/repair-plan.json @@ -0,0 +1,3212 @@ +{ + "actions": [ + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_after_upload_py__L14__wait_for_test_port.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_after_upload_py__L30__start_tests.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_after_upload_py__L36__after_upload.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_cpp__L13__BinaryGenerator.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L106__readDataUntilTimeout.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L11__set_aux_serial_baudrate.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L52__initialize_notecard_interface.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L79__uninitialize_notecard_interface.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_src_main_cpp__L14__loop.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_src_main_cpp__L4__setup.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_src_main_cpp__L9__showHelp.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L13__testsuite_binary_generators_setUp.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L17__testsuite_binary_generators_tearDown.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L23__check_binary.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L41__check_content_fixed_value.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L53__TEST.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L64__TEST.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L84__testsuite_binary_generators.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_binary_generators_cpp__L8__testsuite_binary_generators_filter.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L121__binaryTransferTest.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L308__get_expected_max_binary_length.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L30__testsuite_card_binary_filter.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L338__test_get_max_binary_length.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L35__testsuite_card_binary_setUp.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L370__base_test_max_length.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L388__TEST.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L393__TEST.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L398__TEST.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L40__testsuite_card_binary_tearDown.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L429__waitForNotecardConnected.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L439__testsuite_card_binary.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L44__assert_initialize_notecard.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_card_binary_cpp__L53__AssertNoteBinaryReset.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L20__waitForStartCommand.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L41__setup.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L60__loop.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_main_cpp__L8__runUnityTests.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L15__setUp.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L22__tearDown.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L29__filterTest.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_card_binary_test_test_unity_util_cpp__L8__test_suite_hooks.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L120__WebRequestHandler_log_request_headers.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L126__WebRequestHandler_do.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L13__log.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L140__WebRequestHandler_validate_token.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L148__WebRequestHandler_get_md5.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L163__WebRequestHandler_chunk_content.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L166__WebRequestHandler_md5_for_directory.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L189__WebRequestHandler_delete_files.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L196__WebRequestHandler_write_file_or_note.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L202__WebRequestHandler_write_note.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L20__log_sensitive.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L227__WebRequestHandler_write_file.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L235__WebRequestHandler__read_file.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L243__WebRequestHandler__chunk_file.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L251__WebRequestHandler__write_file.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L27__HTTPException___init.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L286__WebRequestHandler_validate_url_path.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L290__WebRequestHandler_validate_path.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L297__WebRequestHandler_dump_request.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L306__main.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L315__main_build_request_handler.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L49__WebRequestHandler___init.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L57__WebRequestHandler_url.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L61__WebRequestHandler_query_data.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L65__WebRequestHandler_post_data.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L80__WebRequestHandler_form_data.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L83__WebRequestHandler_do_GET.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L86__WebRequestHandler_do_DELETE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L89__WebRequestHandler_do_POST.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L92__WebRequestHandler_do_PUT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_hitl_scripts_md5srv_py__L95__WebRequestHandler_send_status.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1013__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1096__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1182__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L122__reset.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1271__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1363__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1458__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1556__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1638__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L166__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1690__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1745__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1803__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1864__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1928__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L1995__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2065__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L207__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2138__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2214__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2293__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2375__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2460__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L251__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2548__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2639__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2733__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2830__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L2930__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L298__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3033__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3139__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3248__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3338__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3391__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3447__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L348__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3506__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3568__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3633__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3701__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3772__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3846__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L3923__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4003__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L401__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4086__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4172__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4261__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4353__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4448__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4546__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L457__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4647__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4751__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4841__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4905__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L4972__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5042__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5115__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L516__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5191__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5270__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5352__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5437__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5525__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5616__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5710__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L578__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5807__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L5907__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L6010__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L6116__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L6225__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L6337__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L643__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L6452__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L711__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L782__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L856__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_fff_h__L933__FUNCNAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_include_time_mocks_h__L16__NoteGetMsIncrement.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_integration_link_test_c__L9__main.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_src_NoteResponseError_test_cpp__L26__SCENARIO.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/functions/test_src_NoteUserAgent_test_cpp__L29__NoteUserAgentUpdate.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L15__TINY_SIZE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L16__TINY_SIZE_NAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L17__SMALL_SIZE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L18__SMALL_SIZE_NAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L19__MEDIUM_SIZE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L20__MEDIUM_SIZE_NAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L21__LARGE_SIZE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L22__LARGE_SIZE_NAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L23__XLARGE_SIZE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L24__XLARGE_SIZE_NAME.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L320__PRODUCT_UID.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L325__PRODUCT_UID.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L785__NOT_CONNECTED_TIMEOUT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L789__MIME_APPLICATION_OCTETSTREAM.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_cpp__L8__FEATHER_AUX_EN_PIN.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L13__NOTECARD_IF_SERIAL_PORT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L17__NOTECARD_IF_SERIAL_BAUDRATE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L21__NOTECARD_IF_AUX_SERIAL_PORT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L25__NOTECARD_IF_AUX_SERIAL_BAUDRATE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L29__NOTECARD_IF_I2C_ADDRESS.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L34__dbgSerial.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L36__dbgSerial.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L15__NOTEHUB_PROXY_ROUTE_ALIAS.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L216__RUN_SIZE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L227__RUN_ALL_SIZES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L236__RUN_ALL_SIZES_ALL_IFACES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L242__RUN_AUX_SERIAL_BAUDRATE_CHUNK.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L250__RUN_AUX_SERIAL_BAUDRATE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L258__RUN_AUX_SERIAL_ALL_CHUNK_SIZES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L265__RUN_AUX_SERIAL_SELECT_CHUNK_SIZES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L271__RUN_AUX_SERIAL_ALL_BAUDRATES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L279__RUN_AUX_SERIAL_SELECT_BAUDRATES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L27__TEST_CARD_BINARY_FILTER.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L285__TEST_AUX_SERIAL_EXHAUSTIVELY.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L289__RUN_AUX_SERIAL_BAUDRATES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L291__RUN_AUX_SERIAL_BAUDRATES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L298__RUN_AUX_SERIAL_ALL_SIZES_ALL_BAUDRATES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L404__RUN_AUX_SERIAL_ALL_SIZES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L416__RUN_SMOKE_TESTS.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_card_binary_cpp__L8__TEST_CARD_BINARY_EXHAUSTIVELY.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L11__TEST.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L19__TEST_SUITE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_hitl_card_binary_test_test_unity_util_h__L29__RUN_FILTER.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1011__DEFINE_FAKE_VOID_FUNC14.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L101__RETURN_FAKE_RESULT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1063__FAKE_VOID_FUNC14.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1068__DECLARE_FAKE_VOID_FUNC15.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1094__DEFINE_FAKE_VOID_FUNC15.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1148__FAKE_VOID_FUNC15.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L114__FFF_EXTERN_C.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1153__DECLARE_FAKE_VOID_FUNC16.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L115__FFF_END_EXTERN_C.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L117__FFF_EXTERN_C.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1180__DEFINE_FAKE_VOID_FUNC16.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L118__FFF_END_EXTERN_C.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L121__DEFINE_RESET_FUNCTION.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1236__FAKE_VOID_FUNC16.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1241__DECLARE_FAKE_VOID_FUNC17.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1269__DEFINE_FAKE_VOID_FUNC17.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1327__FAKE_VOID_FUNC17.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1332__DECLARE_FAKE_VOID_FUNC18.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1361__DEFINE_FAKE_VOID_FUNC18.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L140__DEFINE_FFF_GLOBALS.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1421__FAKE_VOID_FUNC18.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1426__DECLARE_FAKE_VOID_FUNC19.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1456__DEFINE_FAKE_VOID_FUNC19.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L145__FFF_RESET_HISTORY.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L149__REGISTER_CALL.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1518__FAKE_VOID_FUNC19.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1523__DECLARE_FAKE_VOID_FUNC20.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L153__DECLARE_FAKE_VOID_FUNC0.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1554__DEFINE_FAKE_VOID_FUNC20.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1618__FAKE_VOID_FUNC20.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1623__DECLARE_FAKE_VALUE_FUNC0.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1636__DEFINE_FAKE_VALUE_FUNC0.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L164__DEFINE_FAKE_VOID_FUNC0.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1669__FAKE_VALUE_FUNC0.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1674__DECLARE_FAKE_VALUE_FUNC1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1688__DEFINE_FAKE_VALUE_FUNC1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1723__FAKE_VALUE_FUNC1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1728__DECLARE_FAKE_VALUE_FUNC2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1743__DEFINE_FAKE_VALUE_FUNC2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1780__FAKE_VALUE_FUNC2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1785__DECLARE_FAKE_VALUE_FUNC3.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1801__DEFINE_FAKE_VALUE_FUNC3.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1840__FAKE_VALUE_FUNC3.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1845__DECLARE_FAKE_VALUE_FUNC4.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1862__DEFINE_FAKE_VALUE_FUNC4.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L188__FAKE_VOID_FUNC0.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1903__FAKE_VALUE_FUNC4.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1908__DECLARE_FAKE_VALUE_FUNC5.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1926__DEFINE_FAKE_VALUE_FUNC5.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L193__DECLARE_FAKE_VOID_FUNC1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1969__FAKE_VALUE_FUNC5.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1974__DECLARE_FAKE_VALUE_FUNC6.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L1993__DEFINE_FAKE_VALUE_FUNC6.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2038__FAKE_VALUE_FUNC6.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2043__DECLARE_FAKE_VALUE_FUNC7.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L205__DEFINE_FAKE_VOID_FUNC1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2063__DEFINE_FAKE_VALUE_FUNC7.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2110__FAKE_VALUE_FUNC7.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2115__DECLARE_FAKE_VALUE_FUNC8.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2136__DEFINE_FAKE_VALUE_FUNC8.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2185__FAKE_VALUE_FUNC8.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2190__DECLARE_FAKE_VALUE_FUNC9.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2212__DEFINE_FAKE_VALUE_FUNC9.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2263__FAKE_VALUE_FUNC9.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2268__DECLARE_FAKE_VALUE_FUNC10.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2291__DEFINE_FAKE_VALUE_FUNC10.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L231__FAKE_VOID_FUNC1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2344__FAKE_VALUE_FUNC10.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2349__DECLARE_FAKE_VALUE_FUNC11.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L236__DECLARE_FAKE_VOID_FUNC2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2373__DEFINE_FAKE_VALUE_FUNC11.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2428__FAKE_VALUE_FUNC11.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2433__DECLARE_FAKE_VALUE_FUNC12.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2458__DEFINE_FAKE_VALUE_FUNC12.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L249__DEFINE_FAKE_VOID_FUNC2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2515__FAKE_VALUE_FUNC12.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2520__DECLARE_FAKE_VALUE_FUNC13.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2546__DEFINE_FAKE_VALUE_FUNC13.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2605__FAKE_VALUE_FUNC13.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2610__DECLARE_FAKE_VALUE_FUNC14.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2637__DEFINE_FAKE_VALUE_FUNC14.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2698__FAKE_VALUE_FUNC14.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2703__DECLARE_FAKE_VALUE_FUNC15.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2731__DEFINE_FAKE_VALUE_FUNC15.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L277__FAKE_VOID_FUNC2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2794__FAKE_VALUE_FUNC15.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2799__DECLARE_FAKE_VALUE_FUNC16.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2828__DEFINE_FAKE_VALUE_FUNC16.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L282__DECLARE_FAKE_VOID_FUNC3.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2893__FAKE_VALUE_FUNC16.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2898__DECLARE_FAKE_VALUE_FUNC17.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2928__DEFINE_FAKE_VALUE_FUNC17.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L296__DEFINE_FAKE_VOID_FUNC3.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L2995__FAKE_VALUE_FUNC17.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3000__DECLARE_FAKE_VALUE_FUNC18.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3031__DEFINE_FAKE_VALUE_FUNC18.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3100__FAKE_VALUE_FUNC18.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3105__DECLARE_FAKE_VALUE_FUNC19.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3137__DEFINE_FAKE_VALUE_FUNC19.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3208__FAKE_VALUE_FUNC19.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3213__DECLARE_FAKE_VALUE_FUNC20.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3246__DEFINE_FAKE_VALUE_FUNC20.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L326__FAKE_VOID_FUNC3.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L32__FFF_MAX_ARGS.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3319__FAKE_VALUE_FUNC20.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L331__DECLARE_FAKE_VOID_FUNC4.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3324__DECLARE_FAKE_VOID_FUNC2_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3336__DEFINE_FAKE_VOID_FUNC2_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3371__FAKE_VOID_FUNC2_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3376__DECLARE_FAKE_VOID_FUNC3_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3389__DEFINE_FAKE_VOID_FUNC3_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3426__FAKE_VOID_FUNC3_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3431__DECLARE_FAKE_VOID_FUNC4_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3445__DEFINE_FAKE_VOID_FUNC4_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L346__DEFINE_FAKE_VOID_FUNC4.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3484__FAKE_VOID_FUNC4_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3489__DECLARE_FAKE_VOID_FUNC5_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L34__FFF_ARG_HISTORY_LEN.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3504__DEFINE_FAKE_VOID_FUNC5_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3545__FAKE_VOID_FUNC5_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3550__DECLARE_FAKE_VOID_FUNC6_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3566__DEFINE_FAKE_VOID_FUNC6_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3609__FAKE_VOID_FUNC6_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3614__DECLARE_FAKE_VOID_FUNC7_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3631__DEFINE_FAKE_VOID_FUNC7_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3676__FAKE_VOID_FUNC7_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3681__DECLARE_FAKE_VOID_FUNC8_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3699__DEFINE_FAKE_VOID_FUNC8_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3746__FAKE_VOID_FUNC8_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3751__DECLARE_FAKE_VOID_FUNC9_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3770__DEFINE_FAKE_VOID_FUNC9_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L378__FAKE_VOID_FUNC4.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L37__FFF_CALL_HISTORY_LEN.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3819__FAKE_VOID_FUNC9_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3824__DECLARE_FAKE_VOID_FUNC10_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L383__DECLARE_FAKE_VOID_FUNC5.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3844__DEFINE_FAKE_VOID_FUNC10_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3895__FAKE_VOID_FUNC10_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3900__DECLARE_FAKE_VOID_FUNC11_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3921__DEFINE_FAKE_VOID_FUNC11_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3974__FAKE_VOID_FUNC11_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L3979__DECLARE_FAKE_VOID_FUNC12_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L399__DEFINE_FAKE_VOID_FUNC5.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4001__DEFINE_FAKE_VOID_FUNC12_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4056__FAKE_VOID_FUNC12_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4061__DECLARE_FAKE_VOID_FUNC13_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4084__DEFINE_FAKE_VOID_FUNC13_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4141__FAKE_VOID_FUNC13_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4146__DECLARE_FAKE_VOID_FUNC14_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4170__DEFINE_FAKE_VOID_FUNC14_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4229__FAKE_VOID_FUNC14_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4234__DECLARE_FAKE_VOID_FUNC15_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4259__DEFINE_FAKE_VOID_FUNC15_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4320__FAKE_VOID_FUNC15_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4325__DECLARE_FAKE_VOID_FUNC16_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L433__FAKE_VOID_FUNC5.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4351__DEFINE_FAKE_VOID_FUNC16_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L438__DECLARE_FAKE_VOID_FUNC6.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L43__CUSTOM_FFF_FUNCTION_TEMPLATE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4414__FAKE_VOID_FUNC16_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4419__DECLARE_FAKE_VOID_FUNC17_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4446__DEFINE_FAKE_VOID_FUNC17_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4511__FAKE_VOID_FUNC17_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4516__DECLARE_FAKE_VOID_FUNC18_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4544__DEFINE_FAKE_VOID_FUNC18_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L455__DEFINE_FAKE_VOID_FUNC6.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4611__FAKE_VOID_FUNC18_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4616__DECLARE_FAKE_VOID_FUNC19_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4645__DEFINE_FAKE_VOID_FUNC19_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4714__FAKE_VOID_FUNC19_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4719__DECLARE_FAKE_VOID_FUNC20_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4749__DEFINE_FAKE_VOID_FUNC20_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L47__SET_RETURN_SEQ.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4820__FAKE_VOID_FUNC20_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4825__DECLARE_FAKE_VALUE_FUNC2_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4839__DEFINE_FAKE_VALUE_FUNC2_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4883__FAKE_VALUE_FUNC2_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4888__DECLARE_FAKE_VALUE_FUNC3_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4903__DEFINE_FAKE_VALUE_FUNC3_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L491__FAKE_VOID_FUNC6.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4949__FAKE_VALUE_FUNC3_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4954__DECLARE_FAKE_VALUE_FUNC4_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L496__DECLARE_FAKE_VOID_FUNC7.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L4970__DEFINE_FAKE_VALUE_FUNC4_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5018__FAKE_VALUE_FUNC4_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5023__DECLARE_FAKE_VALUE_FUNC5_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5040__DEFINE_FAKE_VALUE_FUNC5_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5090__FAKE_VALUE_FUNC5_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5095__DECLARE_FAKE_VALUE_FUNC6_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L50__SET_CUSTOM_FAKE_SEQ.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5113__DEFINE_FAKE_VALUE_FUNC6_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L514__DEFINE_FAKE_VOID_FUNC7.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5165__FAKE_VALUE_FUNC6_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5170__DECLARE_FAKE_VALUE_FUNC7_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5189__DEFINE_FAKE_VALUE_FUNC7_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5243__FAKE_VALUE_FUNC7_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5248__DECLARE_FAKE_VALUE_FUNC8_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5268__DEFINE_FAKE_VALUE_FUNC8_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5324__FAKE_VALUE_FUNC8_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5329__DECLARE_FAKE_VALUE_FUNC9_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5350__DEFINE_FAKE_VALUE_FUNC9_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5408__FAKE_VALUE_FUNC9_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5413__DECLARE_FAKE_VALUE_FUNC10_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5435__DEFINE_FAKE_VALUE_FUNC10_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5495__FAKE_VALUE_FUNC10_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5500__DECLARE_FAKE_VALUE_FUNC11_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5523__DEFINE_FAKE_VALUE_FUNC11_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L552__FAKE_VOID_FUNC7.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L557__DECLARE_FAKE_VOID_FUNC8.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5585__FAKE_VALUE_FUNC11_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5590__DECLARE_FAKE_VALUE_FUNC12_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L55__RESET_FAKE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5614__DEFINE_FAKE_VALUE_FUNC12_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5678__FAKE_VALUE_FUNC12_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5683__DECLARE_FAKE_VALUE_FUNC13_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5708__DEFINE_FAKE_VALUE_FUNC13_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L576__DEFINE_FAKE_VOID_FUNC8.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5774__FAKE_VALUE_FUNC13_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5779__DECLARE_FAKE_VALUE_FUNC14_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5805__DEFINE_FAKE_VALUE_FUNC14_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5873__FAKE_VALUE_FUNC14_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5878__DECLARE_FAKE_VALUE_FUNC15_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5905__DEFINE_FAKE_VALUE_FUNC15_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5975__FAKE_VALUE_FUNC15_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L5980__DECLARE_FAKE_VALUE_FUNC16_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6008__DEFINE_FAKE_VALUE_FUNC16_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6080__FAKE_VALUE_FUNC16_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6085__DECLARE_FAKE_VALUE_FUNC17_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L60__DECLARE_ARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6114__DEFINE_FAKE_VALUE_FUNC17_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L616__FAKE_VOID_FUNC8.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6188__FAKE_VALUE_FUNC17_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6193__DECLARE_FAKE_VALUE_FUNC18_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L621__DECLARE_FAKE_VOID_FUNC9.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6223__DEFINE_FAKE_VALUE_FUNC18_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6299__FAKE_VALUE_FUNC18_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6304__DECLARE_FAKE_VALUE_FUNC19_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6335__DEFINE_FAKE_VALUE_FUNC19_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6413__FAKE_VALUE_FUNC19_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6418__DECLARE_FAKE_VALUE_FUNC20_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L641__DEFINE_FAKE_VOID_FUNC9.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6450__DEFINE_FAKE_VALUE_FUNC20_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L64__DECLARE_ALL_FUNC_COMMON.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6530__FAKE_VALUE_FUNC20_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6535__EXPAND.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6537__PP_NARG_MINUS2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6539__PP_NARG_MINUS2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6541__PP_ARG_MINUS2_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6543__PP_RSEQ_N_MINUS2.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6545__PP_NARG_MINUS1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6547__PP_NARG_MINUS1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6549__PP_ARG_MINUS1_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6551__PP_RSEQ_N_MINUS1.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6557__FAKE_VALUE_FUNC.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6559__FUNC_VALUE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6561__FUNC_VALUE_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6564__FAKE_VOID_FUNC.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6566__FUNC_VOID.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6568__FUNC_VOID_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6571__FAKE_VALUE_FUNC_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6573__FUNC_VALUE_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6575__FUNC_VALUE_VARARG_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6578__FAKE_VOID_FUNC_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6580__FUNC_VOID_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6582__FUNC_VOID_VARARG_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6588__DECLARE_FAKE_VALUE_FUNC.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6590__DECLARE_FUNC_VALUE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6592__DECLARE_FUNC_VALUE_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6595__DECLARE_FAKE_VOID_FUNC.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6597__DECLARE_FUNC_VOID.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6599__DECLARE_FUNC_VOID_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6602__DECLARE_FAKE_VALUE_FUNC_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6604__DECLARE_FUNC_VALUE_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6606__DECLARE_FUNC_VALUE_VARARG_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6609__DECLARE_FAKE_VOID_FUNC_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6611__DECLARE_FUNC_VOID_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6613__DECLARE_FUNC_VOID_VARARG_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6619__DEFINE_FAKE_VALUE_FUNC.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6621__DEFINE_FUNC_VALUE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6623__DEFINE_FUNC_VALUE_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6626__DEFINE_FAKE_VOID_FUNC.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6628__DEFINE_FUNC_VOID.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6630__DEFINE_FUNC_VOID_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6633__DEFINE_FAKE_VALUE_FUNC_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6635__DEFINE_FUNC_VALUE_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6637__DEFINE_FUNC_VALUE_VARARG_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6640__DEFINE_FAKE_VOID_FUNC_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6642__DEFINE_FUNC_VOID_VARARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L6644__DEFINE_FUNC_VOID_VARARG_N.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L683__FAKE_VOID_FUNC9.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L688__DECLARE_FAKE_VOID_FUNC10.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L69__DECLARE_RETURN_VALUE_HISTORY.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L709__DEFINE_FAKE_VOID_FUNC10.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L72__SAVE_ARG.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L753__FAKE_VOID_FUNC10.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L758__DECLARE_FAKE_VOID_FUNC11.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L75__ROOM_FOR_MORE_HISTORY.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L780__DEFINE_FAKE_VOID_FUNC11.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L78__SAVE_RET_HISTORY.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L826__FAKE_VOID_FUNC11.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L82__SAVE_ARG_HISTORY.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L831__DECLARE_FAKE_VOID_FUNC12.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L854__DEFINE_FAKE_VOID_FUNC12.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L85__HISTORY_DROPPED.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L88__DECLARE_VALUE_FUNCTION_VARIABLES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L902__FAKE_VOID_FUNC12.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L907__DECLARE_FAKE_VOID_FUNC13.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L931__DEFINE_FAKE_VOID_FUNC13.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L94__DECLARE_CUSTOM_FAKE_SEQ_VARIABLES.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L981__FAKE_VOID_FUNC13.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L986__DECLARE_FAKE_VOID_FUNC14.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_include_fff_h__L98__INCREMENT_CALL_COUNT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L26__FIELD.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L28__JINTEGER_MAX_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L33__JINTEGER_MAX_TO_FLOAT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L34__JINTEGER_MAX_TO_FLOAT_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L38__JINTEGER_MAX_PLUS_4096.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L39__JINTEGER_MAX_PLUS_4096_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L41__JINTEGER_MAX_PLUS_4096_TO_FLOAT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L42__JINTEGER_MAX_PLUS_4096_TO_FLOAT_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L44__JINTEGER_MIN_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L47__JINTEGER_MIN_TO_FLOAT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L48__JINTEGER_MIN_TO_FLOAT_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L50__JINTEGER_MIN_MINUS_4096.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L51__JINTEGER_MIN_MINUS_4096_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L53__JINTEGER_MIN_MINUS_4096_TO_FLOAT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L54__JINTEGER_MIN_MINUS_4096_TO_FLOAT_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L56__SMALL_FLOAT.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L57__SMALL_FLOAT_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L59__UNIX_TIMESTAMP.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src_JSON_number_handling_test_cpp__L60__UNIX_TIMESTAMP_STR.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/macros/test_src__serialNoteTransaction_test_cpp__L80__SERIAL_CHUNKED_RECEIVE_MULTIPLE_SIZE.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L27__BinaryImage.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L342__TransferDetails.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L356__TransferHandlerContext.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L372__BinaryTransfer.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardBinary_h__L37__BinaryGenerator.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_lib_notecard_binary_NotecardComms_h__L6__NotecardInterface.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_binary_generators_cpp__L21__content_check_fn.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L12__BuildAllSameValue.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L29__AllZeros.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L33__AllSevens.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L37__BuildFromBinaryImage.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L49__SmallBinaryImage.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_binary_generators_h__L53__BuildRandom.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L63__BinaryTestArgs.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_card_binary_cpp__L77__Handler.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L13__test_suite_hook_fn.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_card_binary_test_test_unity_util_h__L14__test_suite_filter_fn.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_scripts_md5srv_py__L25__HTTPException.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_hitl_scripts_md5srv_py__L33__WebRequestHandler.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1069__typedef_1069.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1154__typedef_1154.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1242__typedef_1242.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L130__fff_function_t.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L131__typedef_131.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1333__typedef_1333.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1427__typedef_1427.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1524__typedef_1524.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L154__typedef_154.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1624__typedef_1624.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1675__typedef_1675.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1729__typedef_1729.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1786__typedef_1786.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1846__typedef_1846.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1909__typedef_1909.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L194__typedef_194.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L1975__typedef_1975.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2044__typedef_2044.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2116__typedef_2116.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2191__typedef_2191.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2269__typedef_2269.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2350__typedef_2350.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L237__typedef_237.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2434__typedef_2434.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2521__typedef_2521.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2611__typedef_2611.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2704__typedef_2704.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2800__typedef_2800.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L283__typedef_283.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L2899__typedef_2899.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3001__typedef_3001.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3106__typedef_3106.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3214__typedef_3214.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3325__typedef_3325.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L332__typedef_332.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3377__typedef_3377.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3432__typedef_3432.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3490__typedef_3490.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3551__typedef_3551.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3615__typedef_3615.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3682__typedef_3682.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3752__typedef_3752.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3825__typedef_3825.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L384__typedef_384.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3901__typedef_3901.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L3980__typedef_3980.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4062__typedef_4062.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4147__typedef_4147.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4235__typedef_4235.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4326__typedef_4326.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L439__typedef_439.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4420__typedef_4420.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4517__typedef_4517.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4617__typedef_4617.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4720__typedef_4720.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4826__typedef_4826.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4889__typedef_4889.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L4955__typedef_4955.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L497__typedef_497.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5024__typedef_5024.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5096__typedef_5096.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5171__typedef_5171.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5249__typedef_5249.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5330__typedef_5330.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5414__typedef_5414.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5501__typedef_5501.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L558__typedef_558.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5591__typedef_5591.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5684__typedef_5684.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5780__typedef_5780.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5879__typedef_5879.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L5981__typedef_5981.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L6086__typedef_6086.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L6194__typedef_6194.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L622__typedef_622.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L6305__typedef_6305.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L6419__typedef_6419.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L689__typedef_689.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L759__typedef_759.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L832__typedef_832.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L908__typedef_908.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_include_fff_h__L987__typedef_987.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_src_JGetType_test_cpp__L63__AddStringFn.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_src_NoteDebug_test_cpp__L21__typedef_21.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_src_NotePing_test_cpp__L40__class.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_src__noteChunkedReceive_test_cpp__L18__nReceiveFn.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_src__noteChunkedTransmit_test_cpp__L18__nTransmitFn.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_src__noteHardReset_test_cpp__L18__nNoteResetFn.md", + "severity": "medium" + }, + { + "action": "review_orphan_artifact", + "path": "artifacts/types/test_src__noteJSONTransaction_test_cpp__L18__nTransactionFn.md", + "severity": "medium" + } + ], + "generated_at_utc": "2026-07-02T23:46:50+00:00", + "schema_version": 1, + "summary": { + "actions": 640, + "critical": 0, + "high": 0, + "medium": 640 + } +} diff --git a/source-research/inventory/source-drift.json b/source-research/inventory/source-drift.json new file mode 100644 index 00000000..1c1263e6 --- /dev/null +++ b/source-research/inventory/source-drift.json @@ -0,0 +1,64 @@ +{ + "current_inventory_compared": false, + "edges": { + "added": [], + "removed": [], + "unchanged": [] + }, + "files": { + "added": [], + "modified": [], + "removed": [], + "unchanged": [ + ".devcontainer/ci/Dockerfile", + "CMakeLists.txt", + "n_atof.c", + "n_b64.c", + "n_cjson.c", + "n_cjson.h", + "n_cjson_helpers.c", + "n_cobs.c", + "n_const.c", + "n_ftoa.c", + "n_helpers.c", + "n_hooks.c", + "n_i2c.c", + "n_lib.h", + "n_md5.c", + "n_printf.c", + "n_request.c", + "n_serial.c", + "n_str.c", + "n_ua.c", + "note.h", + "scripts/build_docs.sh", + "scripts/check_libc_dependencies.sh", + "scripts/run_astyle.sh", + "scripts/run_cppcheck.sh", + "scripts/run_md5srv.sh", + "scripts/run_ngrok.sh", + "scripts/run_unit_tests.sh" + ], + "unknown": [] + }, + "generated_at_utc": "2026-07-02T23:46:50+00:00", + "schema_version": 1, + "summary": { + "edges_added": 0, + "edges_removed": 0, + "files_added": 0, + "files_modified": 0, + "files_removed": 0, + "files_unknown": 0, + "symbols_added": 0, + "symbols_modified": 0, + "symbols_removed": 0 + }, + "symbols": { + "added": [], + "modified": [], + "removed": [], + "unchanged": [], + "unknown": [] + } +} diff --git a/source-research/inventory/source-inventory.json b/source-research/inventory/source-inventory.json new file mode 100644 index 00000000..653f6b2d --- /dev/null +++ b/source-research/inventory/source-inventory.json @@ -0,0 +1,291 @@ +{ + "files": [ + { + "bytes": 2734, + "classification": "build/interface", + "is_documentation": false, + "is_test": false, + "language_hint": "Dockerfile", + "lines": 103, + "path": ".devcontainer/ci/Dockerfile", + "sha256": "195b7293603315f3d294f4e8366d69e02b6c93e8b8c7b03facaef09e26f8ee30" + }, + { + "bytes": 8490, + "classification": "build/interface", + "is_documentation": false, + "is_test": false, + "language_hint": "txt", + "lines": 218, + "path": "CMakeLists.txt", + "sha256": "7fbb2619f6910deadafc0f7f14e9f78e861e177c8fb4359756fa51131192416a" + }, + { + "bytes": 8103, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 293, + "path": "n_atof.c", + "sha256": "d7522a1b49b1938968078ba5fbeab19cda920c079d84965a4d0af8cc8a5e5992" + }, + { + "bytes": 7951, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 200, + "path": "n_b64.c", + "sha256": "605c93f094a44765a0fbd7a99a835978893907229ae3aa164d186ac553ec4c63" + }, + { + "bytes": 79151, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 2851, + "path": "n_cjson.c", + "sha256": "543b4555ff6716c4a76807cf1d0d71a0e8a94da276e39fa7bdd89b5e5f74c92b" + }, + { + "bytes": 15633, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "h", + "lines": 332, + "path": "n_cjson.h", + "sha256": "1fdd7e8eda80ad5f6aa3958fabce76006f5b52169c53df4827d37faf86b12f33" + }, + { + "bytes": 10613, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 467, + "path": "n_cjson_helpers.c", + "sha256": "f32dc124f9fe6cca0b89a3d10af967e763a0a347561b514859bd2777be07fbf0" + }, + { + "bytes": 12033, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 312, + "path": "n_cobs.c", + "sha256": "e5d5d9a026096eba207ecf1ecd957482aecd4cca7976b165ebe821ecd70b820a" + }, + { + "bytes": 901, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 32, + "path": "n_const.c", + "sha256": "099f0639d6429d161aa7bbb09d1078286232c044f6b3e7c5868d6281fa33bb0a" + }, + { + "bytes": 15720, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 510, + "path": "n_ftoa.c", + "sha256": "f7b9a0db6d77ccde9e31ca0c77b8f30e50c0d1c1ecd1d9624d38f2d1575abaf3" + }, + { + "bytes": 90276, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 2592, + "path": "n_helpers.c", + "sha256": "0b744e62eb77c82e4d0016296b3a250b36fc3bf155c018f18272622e5edc933e" + }, + { + "bytes": 33567, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 1093, + "path": "n_hooks.c", + "sha256": "438d73aa7a13508b0fa86529ab3fa9fb1cee6f3fe8a9bd26957618e81c88c355" + }, + { + "bytes": 20084, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 513, + "path": "n_i2c.c", + "sha256": "fa0e09390f62db7d708dd506e38cb24d2a9c98e37c45a06317b403f822266895" + }, + { + "bytes": 9295, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "h", + "lines": 266, + "path": "n_lib.h", + "sha256": "f5e7ddd0c5ebc7381baec815caa41306372fa44d9773c91e6b71f7ce1fce2593" + }, + { + "bytes": 10743, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 321, + "path": "n_md5.c", + "sha256": "5d5771b4a59d971480ab6b334792c0406bad67b83cbfab0f99c72122d067c59e" + }, + { + "bytes": 2018, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 69, + "path": "n_printf.c", + "sha256": "a0dc94541320844ab377fe7ff2882aec8a4436ba8321361a4c53ef2ddc93f013" + }, + { + "bytes": 39080, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 1168, + "path": "n_request.c", + "sha256": "25941aff06aeca53c9e042816bd07948891a2c1ea0430c38c9da22b3ed4843de" + }, + { + "bytes": 13096, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 335, + "path": "n_serial.c", + "sha256": "52ded5a631993c92917b663f9cfefe9e3574f62f5c417f200c2a84c31fca06c7" + }, + { + "bytes": 2873, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 99, + "path": "n_str.c", + "sha256": "3a68b8c153d016b372f3ef384fe7281e22f074b706e7ada77670428915e72e46" + }, + { + "bytes": 6880, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "c", + "lines": 223, + "path": "n_ua.c", + "sha256": "f89ebeec5169f1931139b9af77ecba0eebc374a5759b8a6a09dba17f1073e6e4" + }, + { + "bytes": 74502, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "h", + "lines": 2214, + "path": "note.h", + "sha256": "a4d3708fcf7d45443259a3763d99ad76194381475aa4ed4854c53a996259c43d" + }, + { + "bytes": 979, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "sh", + "lines": 34, + "path": "scripts/build_docs.sh", + "sha256": "6715fc7a7f84f45fb07e66bcd91e1618a982d73f8b1ebd6b1ef4ccb3ee562980" + }, + { + "bytes": 3218, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "sh", + "lines": 107, + "path": "scripts/check_libc_dependencies.sh", + "sha256": "d7d9e2e53e942184b1d8402a0e8377087b526927805a9078248f60711ecb06dc" + }, + { + "bytes": 1304, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "sh", + "lines": 43, + "path": "scripts/run_astyle.sh", + "sha256": "535a0fcf7e07aa429b74864fa54d27a1933609f785630c8dee16e6e29ca46cc7" + }, + { + "bytes": 2945, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "sh", + "lines": 94, + "path": "scripts/run_cppcheck.sh", + "sha256": "b936924bd736856fed95e7862aa95a64da65d9f324302ce75e1b8077e5b363d2" + }, + { + "bytes": 143, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "sh", + "lines": 3, + "path": "scripts/run_md5srv.sh", + "sha256": "dd6bfe8102ad6d0ba2a5bf316831cdc1cede3b18b4e4bbd9f7bfd2de641a05be" + }, + { + "bytes": 1361, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "sh", + "lines": 55, + "path": "scripts/run_ngrok.sh", + "sha256": "fb935b65c8fcc998c2c09f4a6d1ef238961e3077eb48eefc1e357e90c6032ed8" + }, + { + "bytes": 2966, + "classification": "source", + "is_documentation": false, + "is_test": false, + "language_hint": "sh", + "lines": 101, + "path": "scripts/run_unit_tests.sh", + "sha256": "3a24d02c974450c4d93330191030c3f006fe4d29860ef6ac3fb971a12db1d48a" + } + ], + "schema_version": 1, + "summary": { + "excluded_documentation_files": 1236, + "excluded_other_files": 224, + "excluded_test_files": 0, + "included_files": 28 + } +} diff --git a/source-research/inventory/source-node.schema.json b/source-research/inventory/source-node.schema.json new file mode 100644 index 00000000..f6862e58 --- /dev/null +++ b/source-research/inventory/source-node.schema.json @@ -0,0 +1,920 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "source-research/inventory/source-node.schema.json", + "title": "Source Research Node Record", + "description": "Canonical schema for one source-research graph node enriched with the Markdown artifact facts. Graph files may embed these records under nodes or store them as sidecar node records keyed by id.", + "type": "object", + "additionalProperties": false, + "required": [ + "schema_version", + "id", + "node_type", + "kind", + "name", + "qualified_name", + "artifact", + "research_status", + "source", + "api_surface", + "aliases", + "dependencies", + "call_sites", + "graph_links", + "evidence" + ], + "properties": { + "schema_version": { + "type": "integer", + "const": 1 + }, + "id": { + "type": "string", + "description": "Stable graph node id, e.g. function:n_request.c:191:NoteRequest." + }, + "inventory_id": { + "type": "string", + "description": "Original source inventory id when distinct from graph id." + }, + "node_type": { + "type": "string", + "enum": [ + "function", + "method", + "class", + "struct", + "enum", + "typedef", + "macro", + "declaration", + "module", + "subsystem", + "external" + ] + }, + "kind": { + "type": "string", + "description": "Language/research-specific kind, e.g. function, test-function, struct, public-api-declaration." + }, + "name": { + "type": "string" + }, + "qualified_name": { + "type": "string" + }, + "language": { + "type": "string", + "enum": [ + "c", + "cpp", + "header", + "mixed", + "unknown" + ], + "default": "unknown" + }, + "artifact": { + "$ref": "#/$defs/artifactRef" + }, + "research_status": { + "$ref": "#/$defs/researchStatus" + }, + "source": { + "$ref": "#/$defs/sourceFacts" + }, + "api_surface": { + "$ref": "#/$defs/apiSurface" + }, + "aliases": { + "type": "array", + "description": "Macro aliases, wrappers, declaration exports, compatibility names, or type aliases related to this node. Empty when no aliases or public-surface names are known.", + "items": { + "$ref": "#/$defs/aliasRecord" + } + }, + "dependencies": { + "$ref": "#/$defs/dependencyFacts" + }, + "behavior": { + "$ref": "#/$defs/behaviorFacts" + }, + "boundaries": { + "$ref": "#/$defs/boundaryFacts" + }, + "call_sites": { + "$ref": "#/$defs/callSiteFacts" + }, + "tests": { + "$ref": "#/$defs/testFacts" + }, + "graph_links": { + "$ref": "#/$defs/graphLinks" + }, + "evidence": { + "$ref": "#/$defs/evidenceFacts" + }, + "metadata": { + "type": "object", + "description": "Tool-specific extension data. Keep stable fields outside metadata.", + "additionalProperties": true + } + }, + "$defs": { + "artifactRef": { + "type": "object", + "additionalProperties": false, + "required": [ + "path", + "format", + "status" + ], + "properties": { + "path": { + "type": "string" + }, + "format": { + "type": "string", + "enum": [ + "markdown" + ] + }, + "status": { + "type": "string", + "enum": [ + "exists", + "missing", + "stale" + ] + }, + "sections": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "researchStatus": { + "type": "object", + "additionalProperties": false, + "required": [ + "coverage", + "behavior", + "call_sites", + "tests" + ], + "properties": { + "coverage": { + "type": "string", + "enum": [ + "inventory-complete", + "partial", + "unknown" + ] + }, + "behavior": { + "type": "string", + "enum": [ + "finalized", + "preliminary", + "automated-preliminary", + "unknown" + ] + }, + "call_sites": { + "type": "string", + "enum": [ + "verified", + "candidate-only", + "batched", + "none-found", + "uninspected", + "unknown" + ] + }, + "tests": { + "type": "string", + "enum": [ + "verified", + "candidate-only", + "none-found", + "uninspected", + "unknown" + ] + }, + "status_text": { + "type": "string", + "description": "Verbatim or normalized Status section summary." + } + } + }, + "sourceFacts": { + "type": "object", + "additionalProperties": false, + "required": [ + "definition", + "declarations", + "signature" + ], + "properties": { + "definition": { + "anyOf": [ + { + "$ref": "#/$defs/sourceLocation" + }, + { + "type": "null" + } + ] + }, + "declarations": { + "type": "array", + "items": { + "$ref": "#/$defs/sourceLocation" + } + }, + "signature": { + "type": [ + "string", + "null" + ] + }, + "scope": { + "type": [ + "string", + "null" + ] + }, + "source_comment": { + "type": [ + "string", + "null" + ] + }, + "source_comment_location": { + "anyOf": [ + { + "$ref": "#/$defs/sourceLocation" + }, + { + "type": "null" + } + ] + } + } + }, + "apiSurface": { + "type": "object", + "additionalProperties": false, + "required": [ + "visibility", + "public_entrypoint", + "headers", + "exported_names" + ], + "properties": { + "visibility": { + "type": "string", + "enum": [ + "file-local", + "translation-unit-local", + "project-internal", + "public-sdk", + "public-cjson", + "test-only", + "external", + "unknown" + ] + }, + "public_entrypoint": { + "type": "boolean" + }, + "headers": { + "type": "array", + "description": "Headers or interface files that expose, declare, or alias this node.", + "items": { + "$ref": "#/$defs/sourceLocation" + } + }, + "exported_names": { + "type": "array", + "description": "Names available to callers through public or internal interfaces, including macro aliases.", + "items": { + "type": "string" + } + }, + "exposure_notes": { + "type": "string" + } + } + }, + "aliasRecord": { + "type": "object", + "additionalProperties": false, + "required": [ + "alias_name", + "alias_kind", + "relationship", + "source", + "target" + ], + "properties": { + "alias_name": { + "type": "string" + }, + "alias_kind": { + "type": "string", + "enum": [ + "object_macro", + "function_macro", + "wrapper_function", + "public_declaration", + "compatibility_name", + "typedef", + "using_alias", + "field_alias", + "virtual_override", + "test_fake", + "unknown" + ] + }, + "relationship": { + "type": "string", + "enum": [ + "declares", + "exports", + "expands_to", + "wraps", + "forwards_to", + "delegates_to", + "renames", + "type_aliases", + "overrides", + "fakes", + "references" + ] + }, + "source": { + "$ref": "#/$defs/sourceLocation" + }, + "target": { + "$ref": "#/$defs/symbolRef" + }, + "expansion": { + "type": [ + "string", + "null" + ], + "description": "Macro expansion or wrapper expression when source-visible." + }, + "signature": { + "type": [ + "string", + "null" + ] + }, + "public_surface": { + "type": "boolean", + "default": false + }, + "call_semantics": { + "type": "string", + "enum": [ + "transparent", + "adds_fixed_arguments", + "drops_arguments", + "converts_types", + "changes_ownership", + "changes_error_handling", + "changes_visibility_only", + "unknown" + ], + "default": "unknown" + }, + "fixed_arguments": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "position_or_name", + "value" + ], + "properties": { + "position_or_name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "meaning": { + "type": "string" + } + } + } + }, + "evidence": { + "$ref": "#/$defs/evidencePointer" + } + } + }, + "dependencyFacts": { + "type": "object", + "additionalProperties": false, + "required": [ + "project_local", + "external", + "data_type_global", + "artifact_coverage" + ], + "properties": { + "project_local": { + "type": "array", + "items": { + "$ref": "#/$defs/symbolRef" + } + }, + "external": { + "type": "array", + "items": { + "$ref": "#/$defs/symbolRef" + } + }, + "data_type_global": { + "type": "array", + "items": { + "$ref": "#/$defs/symbolRef" + } + }, + "artifact_coverage": { + "type": "string" + } + } + }, + "behaviorFacts": { + "type": "object", + "additionalProperties": false, + "properties": { + "summary": { + "type": "string" + }, + "ordered_steps": { + "type": "array", + "items": { + "type": "string" + } + }, + "automated_facts": { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "integer", + "boolean", + "null" + ] + } + }, + "return_values": { + "type": "array", + "items": { + "type": "string" + } + }, + "side_effects": { + "type": "array", + "items": { + "type": "string" + } + }, + "mutation": { + "type": "array", + "items": { + "type": "string" + } + }, + "allocation": { + "type": "array", + "items": { + "type": "string" + } + }, + "ownership_lifetime": { + "type": "string" + }, + "error_behavior": { + "type": "string" + } + } + }, + "boundaryFacts": { + "type": "object", + "additionalProperties": false, + "properties": { + "preconditions": { + "type": "string" + }, + "error_null_empty_behavior": { + "type": "string" + }, + "ownership_lifetime": { + "type": "string" + }, + "concurrency_global_state": { + "type": "string" + }, + "portability_platform": { + "type": "string" + }, + "performance_shape": { + "type": "string" + }, + "security_or_parsing": { + "type": "string" + } + } + }, + "callSiteFacts": { + "type": "object", + "additionalProperties": false, + "required": [ + "groups", + "negative_searches" + ], + "properties": { + "groups": { + "type": "array", + "items": { + "$ref": "#/$defs/callSiteGroup" + } + }, + "role_in_callers": { + "type": "array", + "items": { + "type": "string" + } + }, + "negative_searches": { + "type": "array", + "items": { + "$ref": "#/$defs/searchEvidence" + } + } + } + }, + "testFacts": { + "type": "object", + "additionalProperties": false, + "properties": { + "direct": { + "type": "array", + "items": { + "$ref": "#/$defs/testObservation" + } + }, + "indirect": { + "type": "array", + "items": { + "$ref": "#/$defs/testObservation" + } + }, + "not_observed": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "graphLinks": { + "type": "object", + "additionalProperties": false, + "required": [ + "callee_artifacts", + "caller_artifact_candidates", + "upstream_public_behavior_candidates", + "fanout_batches_remaining" + ], + "properties": { + "callee_artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifactPointer" + } + }, + "caller_artifact_candidates": { + "type": "array", + "items": { + "$ref": "#/$defs/artifactPointer" + } + }, + "upstream_public_behavior_candidates": { + "type": "array", + "items": { + "$ref": "#/$defs/symbolRef" + } + }, + "fanout_batches_remaining": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "evidenceFacts": { + "type": "object", + "additionalProperties": false, + "required": [ + "source_mode", + "gaps" + ], + "properties": { + "source_mode": { + "type": "string", + "enum": [ + "source-only", + "source-plus-doc-comparison", + "unknown" + ] + }, + "generated_by": { + "type": "array", + "items": { + "type": "string" + } + }, + "searches": { + "type": "array", + "items": { + "$ref": "#/$defs/searchEvidence" + } + }, + "gaps": { + "type": "array", + "items": { + "$ref": "#/$defs/evidenceGap" + } + }, + "mismatches": { + "type": "array", + "items": { + "$ref": "#/$defs/evidenceGap" + } + } + } + }, + "sourceLocation": { + "type": "object", + "additionalProperties": false, + "required": [ + "file", + "line" + ], + "properties": { + "file": { + "type": "string" + }, + "line": { + "type": "integer", + "minimum": 1 + }, + "end_line": { + "type": [ + "integer", + "null" + ], + "minimum": 1 + }, + "column": { + "type": [ + "integer", + "null" + ], + "minimum": 1 + }, + "context": { + "type": "string" + } + } + }, + "symbolRef": { + "type": "object", + "additionalProperties": false, + "required": [ + "symbol" + ], + "properties": { + "symbol": { + "type": "string" + }, + "node_id": { + "type": [ + "string", + "null" + ] + }, + "artifact": { + "type": [ + "string", + "null" + ] + }, + "location": { + "anyOf": [ + { + "$ref": "#/$defs/sourceLocation" + }, + { + "type": "null" + } + ] + }, + "relationship_notes": { + "type": "string" + } + } + }, + "artifactPointer": { + "type": "object", + "additionalProperties": false, + "required": [ + "path" + ], + "properties": { + "path": { + "type": "string" + }, + "node_id": { + "type": [ + "string", + "null" + ] + }, + "symbol": { + "type": [ + "string", + "null" + ] + } + } + }, + "callSiteGroup": { + "type": "object", + "additionalProperties": false, + "required": [ + "category", + "sites" + ], + "properties": { + "category": { + "type": "string", + "enum": [ + "production", + "internal", + "test", + "hitl", + "example", + "adapter", + "generated", + "macro-alias", + "public-api", + "unknown" + ] + }, + "sites": { + "type": "array", + "items": { + "$ref": "#/$defs/callSite" + } + } + } + }, + "callSite": { + "type": "object", + "additionalProperties": false, + "required": [ + "caller" + ], + "properties": { + "caller": { + "$ref": "#/$defs/symbolRef" + }, + "location": { + "anyOf": [ + { + "$ref": "#/$defs/sourceLocation" + }, + { + "type": "null" + } + ] + }, + "purpose": { + "type": "string" + }, + "ownership_effect": { + "type": "string" + }, + "error_effect": { + "type": "string" + }, + "verified": { + "type": "boolean" + } + } + }, + "testObservation": { + "type": "object", + "additionalProperties": false, + "required": [ + "location", + "coverage" + ], + "properties": { + "location": { + "$ref": "#/$defs/sourceLocation" + }, + "coverage": { + "type": "string" + }, + "limitations": { + "type": "string" + } + } + }, + "searchEvidence": { + "type": "object", + "additionalProperties": false, + "required": [ + "query", + "scope", + "result" + ], + "properties": { + "query": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "result": { + "type": "string", + "enum": [ + "found", + "not-found", + "partial", + "not-run", + "unknown" + ] + }, + "notes": { + "type": "string" + } + } + }, + "evidenceGap": { + "type": "object", + "additionalProperties": false, + "required": [ + "description", + "severity" + ], + "properties": { + "description": { + "type": "string" + }, + "severity": { + "type": "string", + "enum": [ + "low", + "medium", + "high", + "unknown" + ] + }, + "next_step": { + "type": "string" + } + } + }, + "evidencePointer": { + "type": "object", + "additionalProperties": false, + "properties": { + "source_text": { + "type": "string" + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/$defs/sourceLocation" + } + }, + "notes": { + "type": "string" + } + } + } + } +} diff --git a/source-research/inventory/symbol-index.json b/source-research/inventory/symbol-index.json new file mode 100644 index 00000000..28bb51b3 --- /dev/null +++ b/source-research/inventory/symbol-index.json @@ -0,0 +1,11711 @@ +{ + "schema_version": 1, + "summary": { + "classes_and_types": 39, + "functions_and_methods": 341, + "macros": 205, + "total_symbols": 585 + }, + "symbols": [ + { + "artifact": "artifacts/macros/n_atof_c__L29__const.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:29:const", + "kind": "macro", + "line": 29, + "name": "const", + "node_type": "macro", + "qualified_name": "const", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e544ef4cb639f553a4369690b4dc0cf9e58ca3d6c718e52271555361981af106" + }, + { + "artifact": "artifacts/macros/n_atof_c__L36__TRUE.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:36:TRUE", + "kind": "macro", + "line": 36, + "name": "TRUE", + "node_type": "macro", + "qualified_name": "TRUE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "889197f5b5563fde2cb8ccd0da14173313b4ed059913e6a1fccaf71e6796dbb2" + }, + { + "artifact": "artifacts/macros/n_atof_c__L37__FALSE.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:37:FALSE", + "kind": "macro", + "line": 37, + "name": "FALSE", + "node_type": "macro", + "qualified_name": "FALSE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1597637690d4c40861a3fba83a3e03e8229cfca8f2d599bd509f87222a11e726" + }, + { + "artifact": "artifacts/macros/n_atof_c__L40__NULL.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:40:NULL", + "kind": "macro", + "line": 40, + "name": "NULL", + "node_type": "macro", + "qualified_name": "NULL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3b2249c02f3991ef013b2ec79447f43b3240e4b8ba05d80d209b09cfdbf2089b" + }, + { + "artifact": "artifacts/macros/n_atof_c__L43__MAX_EXPONENT.md", + "extraction_method": "regex-c-macro", + "file": "n_atof.c", + "id": "macro:n_atof.c:43:MAX_EXPONENT", + "kind": "macro", + "line": 43, + "name": "MAX_EXPONENT", + "node_type": "macro", + "qualified_name": "MAX_EXPONENT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8ad69aac4902b3879294fe0947c14509c11ecc594c8035ed0a562693e9f538ea" + }, + { + "artifact": "artifacts/functions/n_atof_c__L71__JAtoN.md", + "extraction_method": "regex-c-function", + "file": "n_atof.c", + "id": "function:n_atof.c:71:JAtoN", + "kind": "function", + "line": 71, + "name": "JAtoN", + "node_type": "function", + "qualified_name": "JAtoN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "03ce1eca4ed9344cad7d0115858b1a28cd63747769ed089791de541e6a9e67aa" + }, + { + "artifact": "artifacts/functions/n_b64_c__L106__JB64DecodeLen.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:106:JB64DecodeLen", + "kind": "function", + "line": 106, + "name": "JB64DecodeLen", + "node_type": "function", + "qualified_name": "JB64DecodeLen", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7fdba6771dfdc5c0b05908d68afc2465dfe6a169593778782c862d06a69b763e" + }, + { + "artifact": "artifacts/functions/n_b64_c__L121__JB64Decode.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:121:JB64Decode", + "kind": "function", + "line": 121, + "name": "JB64Decode", + "node_type": "function", + "qualified_name": "JB64Decode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3767591bfb8dce588f2d094b76bb5e3a1016155aeab2808ffe70be44891d520f" + }, + { + "artifact": "artifacts/functions/n_b64_c__L169__JB64EncodeLen.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:169:JB64EncodeLen", + "kind": "function", + "line": 169, + "name": "JB64EncodeLen", + "node_type": "function", + "qualified_name": "JB64EncodeLen", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "035566ae5d9cd337941835ae64275b34b30847502a07b249fb1e113aa065cb6b" + }, + { + "artifact": "artifacts/functions/n_b64_c__L174__JB64Encode.md", + "extraction_method": "regex-c-function", + "file": "n_b64.c", + "id": "function:n_b64.c:174:JB64Encode", + "kind": "function", + "line": 174, + "name": "JB64Encode", + "node_type": "function", + "qualified_name": "JB64Encode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bdd365bd77956ce4e0f1069260795d294996907a0ca9ff45d6ed16888257b980" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L80__PRINT_TAB_CHARS.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:80:PRINT_TAB_CHARS", + "kind": "macro", + "line": 80, + "name": "PRINT_TAB_CHARS", + "node_type": "macro", + "qualified_name": "PRINT_TAB_CHARS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2985ed752483c373892bc009fdb4fbc6f9b8666b7badd340ee4af8de8dcea53f" + }, + { + "artifact": "artifacts/types/n_cjson_c__L82__typedef_82.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.c", + "id": "typedef:n_cjson.c:82:typedef_82", + "kind": "typedef", + "line": 82, + "name": "typedef_82", + "node_type": "typedef", + "qualified_name": "typedef_82", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cd9abd2323330478d366d716036ba604ead2ddb3cd7b8f5a89bb2d1e83b1d233" + }, + { + "artifact": "artifacts/types/n_cjson_c__L232__lconv.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.c", + "id": "struct:n_cjson.c:232:lconv", + "kind": "struct", + "line": 232, + "name": "lconv", + "node_type": "struct", + "qualified_name": "lconv", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "fe61e01a589160a8711a5927cb359098e4fb593a45148b22d2c59723a279d166" + }, + { + "artifact": "artifacts/types/n_cjson_c__L239__typedef_239.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.c", + "id": "typedef:n_cjson.c:239:typedef_239", + "kind": "typedef", + "line": 239, + "name": "typedef_239", + "node_type": "typedef", + "qualified_name": "typedef_239", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07e06ca1798334b30f3fe74d3ecf10bde991b0ffbc6d252a1cc02d49787360f5" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L247__can_read.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:247:can_read", + "kind": "macro", + "line": 247, + "name": "can_read", + "node_type": "macro", + "qualified_name": "can_read", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "00c643262d6de036889bdc348b89518d4d578651e534868768a88df1bf647983" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L249__can_access_at_index.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:249:can_access_at_index", + "kind": "macro", + "line": 249, + "name": "can_access_at_index", + "node_type": "macro", + "qualified_name": "can_access_at_index", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "13a77f229d23f5c47e03d590240b5f421e5f100daf906b58409a1e7fdd1d697d" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L250__cannot_access_at_index.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:250:cannot_access_at_index", + "kind": "macro", + "line": 250, + "name": "cannot_access_at_index", + "node_type": "macro", + "qualified_name": "cannot_access_at_index", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e04d71325a9581728899ae4092d7a071fb2bc590b35ad916c64a4d0c63649bbc" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L252__buffer_at_offset.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:252:buffer_at_offset", + "kind": "macro", + "line": 252, + "name": "buffer_at_offset", + "node_type": "macro", + "qualified_name": "buffer_at_offset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "24c17b209290c170f5770101491bfec848c6b2f7325e6a8d5bbabeb9ab83ceb5" + }, + { + "artifact": "artifacts/types/n_cjson_c__L340__typedef_340.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.c", + "id": "typedef:n_cjson.c:340:typedef_340", + "kind": "typedef", + "line": 340, + "name": "typedef_340", + "node_type": "typedef", + "qualified_name": "typedef_340", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c7adad48df42e820b70d72e028581b5158f615293328008616a9b2e5f06a7e53" + }, + { + "artifact": "artifacts/macros/n_cjson_c__L981__cjson_min.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.c", + "id": "macro:n_cjson.c:981:cjson_min", + "kind": "macro", + "line": 981, + "name": "cjson_min", + "node_type": "macro", + "qualified_name": "cjson_min", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "45add06d8821c5f77a7235d2169d8460858adc7390923184b7b13aab364a8bc8" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L91__JGetErrorPtr.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:91:JGetErrorPtr", + "kind": "function", + "line": 91, + "name": "JGetErrorPtr", + "node_type": "function", + "qualified_name": "JGetErrorPtr", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "08a2dfb05ec49084c9be8f27f667e0cf54174743dab948a5567c24dc47a2831a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L96__JGetStringValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:96:JGetStringValue", + "kind": "function", + "line": 96, + "name": "JGetStringValue", + "node_type": "function", + "qualified_name": "JGetStringValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a7be09df75a497d246c3464fc6122f690f917bd23c12918007bf3c9ce3207e6f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L110__JVersion.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:110:JVersion", + "kind": "function", + "line": 110, + "name": "JVersion", + "node_type": "function", + "qualified_name": "JVersion", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e5b1e384883ce793cdacc5cfb3038efbfe1948f27207cd3bf7981966d97c2c08" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L115__j_tolower.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:115:_j_tolower", + "kind": "function", + "line": 115, + "name": "_j_tolower", + "node_type": "function", + "qualified_name": "_j_tolower", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d598f4e9e9cd75248c5cf51026ace724cb56f309dd2d143338cc264728e7cb41" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L127__case_insensitive_strcmp.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:127:_case_insensitive_strcmp", + "kind": "function", + "line": 127, + "name": "_case_insensitive_strcmp", + "node_type": "function", + "qualified_name": "_case_insensitive_strcmp", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cf2e1975d613001c53b5b10836117b1feed3adc50d3121ec1e24e2ad10c946e3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L146__j_strdup.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:146:_j_strdup", + "kind": "function", + "line": 146, + "name": "_j_strdup", + "node_type": "function", + "qualified_name": "_j_strdup", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c6daa48efbd0fe2755ccd3deb8ba11c14af08e4fd53cbc88378b795299db3044" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L175__JMalloc.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:175:JMalloc", + "kind": "function", + "line": 175, + "name": "JMalloc", + "node_type": "function", + "qualified_name": "JMalloc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c60f68415e7406e312f08858aa76ad346969220b0d6042850d6cf972d8369307" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L188__JFree.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:188:JFree", + "kind": "function", + "line": 188, + "name": "JFree", + "node_type": "function", + "qualified_name": "JFree", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8bf513a840a46ad27701f0a22d5eae26fe2f15a13c0aeb4ec5f879452cf9d65b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L194__jNew_Item.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:194:_jNew_Item", + "kind": "function", + "line": 194, + "name": "_jNew_Item", + "node_type": "function", + "qualified_name": "_jNew_Item", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "341a5b47e7a26ce45a595fba33756c356b973e5471fa0d4c18b95bc88b7a1edc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L209__JDelete.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:209:JDelete", + "kind": "function", + "line": 209, + "name": "JDelete", + "node_type": "function", + "qualified_name": "JDelete", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "401fdfa8ac22f56a9a4910a3f44e517ec511ac323e901823d00510a81e9116a0" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L229__get_decimal_point.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:229:_get_decimal_point", + "kind": "function", + "line": 229, + "name": "_get_decimal_point", + "node_type": "function", + "qualified_name": "_get_decimal_point", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f8da2117d2d3f9c669fc690bf8c0c81b95cd3b2963a721c432d22421c0ed0f1f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L255__parse_number.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:255:_parse_number", + "kind": "function", + "line": 255, + "name": "_parse_number", + "node_type": "function", + "qualified_name": "_parse_number", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1cfebabf7702212f120c103171f454dded1d19c560e771d2a5b44122b95140f8" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L322__JSetNumberHelper.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:322:JSetNumberHelper", + "kind": "function", + "line": 322, + "name": "JSetNumberHelper", + "node_type": "function", + "qualified_name": "JSetNumberHelper", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1cc7969d2f972942011c81a4376eaa7a3a7254d2506fd7bc550c4f3a0b7d77f1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L351__ensure.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:351:_ensure", + "kind": "function", + "line": 351, + "name": "_ensure", + "node_type": "function", + "qualified_name": "_ensure", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3ed9bdd492482d6a6852441b23b1e438f533a9a809536f2e6a77f4dc97d134a3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L400__update_offset.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:400:_update_offset", + "kind": "function", + "line": 400, + "name": "_update_offset", + "node_type": "function", + "qualified_name": "_update_offset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e697e38f3b0aabd8414bd3adc6a32a0f0431677e955484e6a1af6247132510c3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L412__print_number.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:412:_print_number", + "kind": "function", + "line": 412, + "name": "_print_number", + "node_type": "function", + "qualified_name": "_print_number", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "74a6c322b7d8666baedd6eb3ef0d116ffb6b824b3b5bcd3be52580d660cbd54b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L476__parse_hex4.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:476:_parse_hex4", + "kind": "function", + "line": 476, + "name": "_parse_hex4", + "node_type": "function", + "qualified_name": "_parse_hex4", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0c9645070460c6bd7f6ff28a2e258742d61debce713935c7f7b97da1b87b9f67" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L504__utf16_literal_to_utf8.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:504:_utf16_literal_to_utf8", + "kind": "function", + "line": 504, + "name": "_utf16_literal_to_utf8", + "node_type": "function", + "qualified_name": "_utf16_literal_to_utf8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5bdffe40a666e263802befbe7b2ec35e82e575cb4f748c55b7312080034614f7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L604__parse_string.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:604:_parse_string", + "kind": "function", + "line": 604, + "name": "_parse_string", + "node_type": "function", + "qualified_name": "_parse_string", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3e269a057e4a86a98fc57978e6036237da9c4ec927e6ad134262e8083b46541d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L728__n_htoa16.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:728:_n_htoa16", + "kind": "function", + "line": 728, + "name": "_n_htoa16", + "node_type": "function", + "qualified_name": "_n_htoa16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6463436fddf6f9f48bfb76600c5baf24ec6438b84afed3fe9dae7bb9830537c1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L744__print_string_ptr.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:744:_print_string_ptr", + "kind": "function", + "line": 744, + "name": "_print_string_ptr", + "node_type": "function", + "qualified_name": "_print_string_ptr", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c215b2566ff983fcc77540dfae7f0f34cab2011e0aae52e95bf2526a379e729a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L856__print_string.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:856:_print_string", + "kind": "function", + "line": 856, + "name": "_print_string", + "node_type": "function", + "qualified_name": "_print_string", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c4d11d3461b53c9ac892b7edb66e0e39743fa196ffb69bac9c786e8e519bf911" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L870__buffer_skip_whitespace.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:870:_buffer_skip_whitespace", + "kind": "function", + "line": 870, + "name": "_buffer_skip_whitespace", + "node_type": "function", + "qualified_name": "_buffer_skip_whitespace", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7539fd00b6516832394e54a78ab9d8914258960f0ef0025ad98082e0dd1b5d1b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L888__skip_utf8_bom.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:888:_skip_utf8_bom", + "kind": "function", + "line": 888, + "name": "_skip_utf8_bom", + "node_type": "function", + "qualified_name": "_skip_utf8_bom", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0957fde115493e2763fa37616df04f44fc5707e250878cd2f05dff8e948b81d7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L902__JParseWithOpts.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:902:JParseWithOpts", + "kind": "function", + "line": 902, + "name": "JParseWithOpts", + "node_type": "function", + "qualified_name": "JParseWithOpts", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "476fe43a623fbbc063662b3affdfde059a51e08d3dc498dc96424cac32da7657" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L976__JParse.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:976:JParse", + "kind": "function", + "line": 976, + "name": "JParse", + "node_type": "function", + "qualified_name": "JParse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c7bcade68275f7148656570a06d375bd90ccfb6caaf94afe16720d8b8879b0f1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L983__print.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:983:_print", + "kind": "function", + "line": 983, + "name": "_print", + "node_type": "function", + "qualified_name": "_print", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07686327a28512d77ee55d22c375b7edcde1e4c64232097b65f74335c9fb5b64" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1032__JPrint.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1032:JPrint", + "kind": "function", + "line": 1032, + "name": "JPrint", + "node_type": "function", + "qualified_name": "JPrint", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "152774fb9b4dd0402584512665d9dcdfb4b8ee88d07ec17b9877acf10171975c" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1051__JPrintUnformatted.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1051:JPrintUnformatted", + "kind": "function", + "line": 1051, + "name": "JPrintUnformatted", + "node_type": "function", + "qualified_name": "JPrintUnformatted", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "54a31f57760aa3566041b98bf1c5bae0fd2b625bd51b80acfc7a15d04ea599e4" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1059__JPrintUnformattedOmitEmpty.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1059:JPrintUnformattedOmitEmpty", + "kind": "function", + "line": 1059, + "name": "JPrintUnformattedOmitEmpty", + "node_type": "function", + "qualified_name": "JPrintUnformattedOmitEmpty", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "fcf8e45c42cb97d24da3f862af50d6711ce26b0da4246e2bff3e442ca4022ddc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1067__JPrintBuffered.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1067:JPrintBuffered", + "kind": "function", + "line": 1067, + "name": "JPrintBuffered", + "node_type": "function", + "qualified_name": "JPrintBuffered", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "fe0944121128e3e2cbe28491f1b9a652f8890835ca6136ff9fcc28033bdfa2fd" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1097__printPreallocated.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1097:_printPreallocated", + "kind": "function", + "line": 1097, + "name": "_printPreallocated", + "node_type": "function", + "qualified_name": "_printPreallocated", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "36b4e26152ad41424c9cf086c094c503d9980eeaba82c73cea409badf76a0c9f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1118__JPrintPreallocatedOmitEmpty.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1118:JPrintPreallocatedOmitEmpty", + "kind": "function", + "line": 1118, + "name": "JPrintPreallocatedOmitEmpty", + "node_type": "function", + "qualified_name": "JPrintPreallocatedOmitEmpty", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8aa3291f403a406c22eb4f25ba074dcd30b0c94f9a9f38976e278a0f69b36594" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1123__JPrintPreallocated.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1123:JPrintPreallocated", + "kind": "function", + "line": 1123, + "name": "JPrintPreallocated", + "node_type": "function", + "qualified_name": "JPrintPreallocated", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "68932d1006fc0eb6c2e9f47b73920d83636a4551f157cd0aac3dfc0ff1a0be2c" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1129__parse_value.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1129:_parse_value", + "kind": "function", + "line": 1129, + "name": "_parse_value", + "node_type": "function", + "qualified_name": "_parse_value", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d30804d640770515afa925dacf2ccae9559410af5782c1a03127037c49b7710f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1179__print_value.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1179:_print_value", + "kind": "function", + "line": 1179, + "name": "_print_value", + "node_type": "function", + "qualified_name": "_print_value", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a020a588396dfb9b90be1e68e3114c8dfd574cc1a612499ce556db69e115088e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1245__parse_array.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1245:_parse_array", + "kind": "function", + "line": 1245, + "name": "_parse_array", + "node_type": "function", + "qualified_name": "_parse_array", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5a6032b0aba44772152dfe96d89b9f3028b8acfbaeeaa1f0f31913cfc7388e57" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1341__print_array.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1341:_print_array", + "kind": "function", + "line": 1341, + "name": "_print_array", + "node_type": "function", + "qualified_name": "_print_array", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ed710d2e689c2108f302f2dc467323d89ef8d332a0892be4d741a4b136e64948" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1395__parse_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1395:_parse_object", + "kind": "function", + "line": 1395, + "name": "_parse_object", + "node_type": "function", + "qualified_name": "_parse_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2c16f1e358e3064db6ee80eadd63e729f8a0e20105c7556bf1820a063866fafa" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1507__last_non_omitted_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1507:_last_non_omitted_object", + "kind": "function", + "line": 1507, + "name": "_last_non_omitted_object", + "node_type": "function", + "qualified_name": "_last_non_omitted_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c8f2272e50f72c6da1314603b643011ed54378396b27a98b6a2596f112a8ccca" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1523__print_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1523:_print_object", + "kind": "function", + "line": 1523, + "name": "_print_object", + "node_type": "function", + "qualified_name": "_print_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8aab7093bc075c459aae6a48c97a72b2a9261e2b04a42ad824c52f63a281cafd" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1660__JGetArraySize.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1660:JGetArraySize", + "kind": "function", + "line": 1660, + "name": "JGetArraySize", + "node_type": "function", + "qualified_name": "JGetArraySize", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3d92edbc821841a2ce155c465dca8ecde4053b2be1a41c3c7a9d45f17b081087" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1681__get_array_item.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1681:_get_array_item", + "kind": "function", + "line": 1681, + "name": "_get_array_item", + "node_type": "function", + "qualified_name": "_get_array_item", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "03030d8ad12272e84fba7b456b53e869f08da33f5e0a577f53185e2962b62dda" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1698__JGetArrayItem.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1698:JGetArrayItem", + "kind": "function", + "line": 1698, + "name": "JGetArrayItem", + "node_type": "function", + "qualified_name": "JGetArrayItem", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "12ed23327cd89b3f75c235c3001cdcdd34bf7a62fd58cf314a91201d40103a7f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1710__get_object_item.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1710:_get_object_item", + "kind": "function", + "line": 1710, + "name": "_get_object_item", + "node_type": "function", + "qualified_name": "_get_object_item", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "36ca2cf5199e1827d44be4784f08fc8bd1b28340b08882450b8a63df8087721b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1732__JGetObjectItem.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1732:JGetObjectItem", + "kind": "function", + "line": 1732, + "name": "JGetObjectItem", + "node_type": "function", + "qualified_name": "JGetObjectItem", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "60932b014bb81c4ff0bac53fc921dfb35673565b769b080cbc2c9f29fa7c3732" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1740__JGetObjectItemCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1740:JGetObjectItemCaseSensitive", + "kind": "function", + "line": 1740, + "name": "JGetObjectItemCaseSensitive", + "node_type": "function", + "qualified_name": "JGetObjectItemCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "573cb77d20e3f746607e5bbb0efb39d9423dd02489e233c5f202ae8f627a23c0" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1748__JHasObjectItem.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1748:JHasObjectItem", + "kind": "function", + "line": 1748, + "name": "JHasObjectItem", + "node_type": "function", + "qualified_name": "JHasObjectItem", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "77da1db9d6cfab65b89c2a5eddf168fff7d7a21e09dea33248ed00c32ac732f7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1757__suffix_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1757:_suffix_object", + "kind": "function", + "line": 1757, + "name": "_suffix_object", + "node_type": "function", + "qualified_name": "_suffix_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b28fd32990e05daa5b2a943d9cba55968a104110b97c24772fa84c6ae2332a71" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1764__create_reference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1764:_create_reference", + "kind": "function", + "line": 1764, + "name": "_create_reference", + "node_type": "function", + "qualified_name": "_create_reference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "894ee9cc8b947406c5642d87c46a861efc67d53af40c931c2158537d783f3c57" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1783__add_item_to_array.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1783:_add_item_to_array", + "kind": "function", + "line": 1783, + "name": "_add_item_to_array", + "node_type": "function", + "qualified_name": "_add_item_to_array", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1c1c9daff7087b0dea59461a9b64b9158cc0d2c175fdc10c1fd8e550d654afc2" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1808__JAddItemToArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1808:JAddItemToArray", + "kind": "function", + "line": 1808, + "name": "JAddItemToArray", + "node_type": "function", + "qualified_name": "JAddItemToArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "dc89ddaee7dde4598d9f58732fa454f778198986335629b9a474ef5a5377399e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1826__cast_away_const.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1826:_cast_away_const", + "kind": "function", + "line": 1826, + "name": "_cast_away_const", + "node_type": "function", + "qualified_name": "_cast_away_const", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bdc36d034b571af60644cb26f897307a5ff5c073a35e11709f719b0571adb5c3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1835__add_item_to_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1835:_add_item_to_object", + "kind": "function", + "line": 1835, + "name": "_add_item_to_object", + "node_type": "function", + "qualified_name": "_add_item_to_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f9e3e65a6b5e8f0b655014a637650fb33b9dd955c29cebd3dc0ed1547732a18a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1866__JAddItemToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1866:JAddItemToObject", + "kind": "function", + "line": 1866, + "name": "JAddItemToObject", + "node_type": "function", + "qualified_name": "JAddItemToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6b607d304d9079d34e9bfdb47e24b3962ecb4ec968ac961b1908748c762a3030" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1878__JAddItemToObjectCS.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1878:JAddItemToObjectCS", + "kind": "function", + "line": 1878, + "name": "JAddItemToObjectCS", + "node_type": "function", + "qualified_name": "JAddItemToObjectCS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7eeb558cf1286453ace929e91879a4ee1ac619199f8ea67a70df7e8d9808feda" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1889__JAddItemReferenceToArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1889:JAddItemReferenceToArray", + "kind": "function", + "line": 1889, + "name": "JAddItemReferenceToArray", + "node_type": "function", + "qualified_name": "JAddItemReferenceToArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bc9d6d85475c084d2972d2e6d05a86d6b71a09530051752a533816adb2b78c9b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1900__JAddItemReferenceToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1900:JAddItemReferenceToObject", + "kind": "function", + "line": 1900, + "name": "JAddItemReferenceToObject", + "node_type": "function", + "qualified_name": "JAddItemReferenceToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "07a4a83a732f664b2e79eba8146dda9ac8f970960d0db96a6ccd93101ee466c3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1911__JAddTrueToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1911:JAddTrueToObject", + "kind": "function", + "line": 1911, + "name": "JAddTrueToObject", + "node_type": "function", + "qualified_name": "JAddTrueToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f157698f2b24cfb108b3bda54d0cb86ea3f1ec66c88bb49b540414bdafe032b0" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1926__JAddFalseToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1926:JAddFalseToObject", + "kind": "function", + "line": 1926, + "name": "JAddFalseToObject", + "node_type": "function", + "qualified_name": "JAddFalseToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7e1e2e34b976ee6a2cec7b13bcf2c8a924e5a76e7bcc3b29b881fd9fa41c3484" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1950__JAddBoolToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1950:JAddBoolToObject", + "kind": "function", + "line": 1950, + "name": "JAddBoolToObject", + "node_type": "function", + "qualified_name": "JAddBoolToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "808d99ddbe4bc0ef0f509f38876b25530805402d316ccd68493fc278d515e890" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1974__JAddNumberToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1974:JAddNumberToObject", + "kind": "function", + "line": 1974, + "name": "JAddNumberToObject", + "node_type": "function", + "qualified_name": "JAddNumberToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "33b615cb4cd4f168f1a80506004d42d9f7b539c64c94d10a1b63674404469bcf" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L1989__JAddIntToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:1989:JAddIntToObject", + "kind": "function", + "line": 1989, + "name": "JAddIntToObject", + "node_type": "function", + "qualified_name": "JAddIntToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ba7ab93b4d301e101d2c5006584c194ac192bceb234cbcc12e2221e543e55dbc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2013__JAddStringToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2013:JAddStringToObject", + "kind": "function", + "line": 2013, + "name": "JAddStringToObject", + "node_type": "function", + "qualified_name": "JAddStringToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4658acef88d1ccca31474ef59692722f79cfa341c5c01fd6b6c9a5f393808590" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2028__JAddRawToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2028:JAddRawToObject", + "kind": "function", + "line": 2028, + "name": "JAddRawToObject", + "node_type": "function", + "qualified_name": "JAddRawToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "21186decd8bdd32c3a5e9cfc8adf20a8426e79cc3aee0ab2a6c701c677fb5e32" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2051__JAddObjectToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2051:JAddObjectToObject", + "kind": "function", + "line": 2051, + "name": "JAddObjectToObject", + "node_type": "function", + "qualified_name": "JAddObjectToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "21781a11766bd4baac6d5ac61f93ab3a4038f9a93d0160152d6e0b8e1ef45c64" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2074__JAddArrayToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2074:JAddArrayToObject", + "kind": "function", + "line": 2074, + "name": "JAddArrayToObject", + "node_type": "function", + "qualified_name": "JAddArrayToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eb3d0326d6b4322deec61eafd41389c6566edcfc79e270d5c04f50c0e419793a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2089__JDetachItemViaPointer.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2089:JDetachItemViaPointer", + "kind": "function", + "line": 2089, + "name": "JDetachItemViaPointer", + "node_type": "function", + "qualified_name": "JDetachItemViaPointer", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d6b571fbe8a296132440f13deee18f59d0a8a79a7044b260f9d40e2c37ebaae3" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2115__JDetachItemFromArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2115:JDetachItemFromArray", + "kind": "function", + "line": 2115, + "name": "JDetachItemFromArray", + "node_type": "function", + "qualified_name": "JDetachItemFromArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "354d985935a9cfd68f1b2e97d511fadb9782c7e37913ac958e9c7481cf7f2c2f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2127__JDeleteItemFromArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2127:JDeleteItemFromArray", + "kind": "function", + "line": 2127, + "name": "JDeleteItemFromArray", + "node_type": "function", + "qualified_name": "JDeleteItemFromArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7158ef101721c9b8a7d528ca5dd840093f959678f32277988fa95836820e248a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2135__JDetachItemFromObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2135:JDetachItemFromObject", + "kind": "function", + "line": 2135, + "name": "JDetachItemFromObject", + "node_type": "function", + "qualified_name": "JDetachItemFromObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "30f0b7f03f03fb05e5eaf5a1ca2ca413bcd531452c726081a23549c0aaa38c4e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2146__JDetachItemFromObjectCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2146:JDetachItemFromObjectCaseSensitive", + "kind": "function", + "line": 2146, + "name": "JDetachItemFromObjectCaseSensitive", + "node_type": "function", + "qualified_name": "JDetachItemFromObjectCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7b04c47015127eeb2c3fbdf99ec42ad1c1500cacb23a195b98ccfb43d98505e7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2157__JDeleteItemFromObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2157:JDeleteItemFromObject", + "kind": "function", + "line": 2157, + "name": "JDeleteItemFromObject", + "node_type": "function", + "qualified_name": "JDeleteItemFromObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "adcfa57eb83bc0372d0697d4f79fcd96de62bb38eb915c5328026b5c0eb4134e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2165__JDeleteItemFromObjectCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2165:JDeleteItemFromObjectCaseSensitive", + "kind": "function", + "line": 2165, + "name": "JDeleteItemFromObjectCaseSensitive", + "node_type": "function", + "qualified_name": "JDeleteItemFromObjectCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8cd6f6d4fa6b02ff6c3417e07ac9c75e35656f42642b5cda89a0b4381a6488b8" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2174__JInsertItemInArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2174:JInsertItemInArray", + "kind": "function", + "line": 2174, + "name": "JInsertItemInArray", + "node_type": "function", + "qualified_name": "JInsertItemInArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "9a1b8db0e52166633686aae4a26c5fcecba21d5572d3d0655b4065b423df17f1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2206__JReplaceItemViaPointer.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2206:JReplaceItemViaPointer", + "kind": "function", + "line": 2206, + "name": "JReplaceItemViaPointer", + "node_type": "function", + "qualified_name": "JReplaceItemViaPointer", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "188da51e2d32e0e6f60615f49873799947590b999613982d424e66663390032d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2236__JReplaceItemInArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2236:JReplaceItemInArray", + "kind": "function", + "line": 2236, + "name": "JReplaceItemInArray", + "node_type": "function", + "qualified_name": "JReplaceItemInArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4a67427ffffdd61d33e8f0cdab508ab2b1e6d62300541fa67cede1171e4d3ce1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2253__replace_item_in_object.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2253:_replace_item_in_object", + "kind": "function", + "line": 2253, + "name": "_replace_item_in_object", + "node_type": "function", + "qualified_name": "_replace_item_in_object", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "25b9639ac836674bb311621c2cd1ffa2d7661f0a0e54bd2ed6e10cc4f1b58f1a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2281__JReplaceItemInObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2281:JReplaceItemInObject", + "kind": "function", + "line": 2281, + "name": "JReplaceItemInObject", + "node_type": "function", + "qualified_name": "JReplaceItemInObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0f17a8691b24ba3edcf24c8745ce5c472d3e9a176646e6c4e841a4f32f15cd35" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2292__JReplaceItemInObjectCaseSensitive.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2292:JReplaceItemInObjectCaseSensitive", + "kind": "function", + "line": 2292, + "name": "JReplaceItemInObjectCaseSensitive", + "node_type": "function", + "qualified_name": "JReplaceItemInObjectCaseSensitive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0036b3f3a955da673535af1c22f11f3ec38b3a51db5ad07f457150831a218fd1" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2303__JCreateTrue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2303:JCreateTrue", + "kind": "function", + "line": 2303, + "name": "JCreateTrue", + "node_type": "function", + "qualified_name": "JCreateTrue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d488b36296a4c0f49d1cbe2f78606044318fefb80dd7c1082a361d107dc67a9c" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2312__JCreateFalse.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2312:JCreateFalse", + "kind": "function", + "line": 2312, + "name": "JCreateFalse", + "node_type": "function", + "qualified_name": "JCreateFalse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "6fd24df975e58026342e9543a18a0fc8818a1a8d046957581f5018f838cd5a78" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2321__JCreateBool.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2321:JCreateBool", + "kind": "function", + "line": 2321, + "name": "JCreateBool", + "node_type": "function", + "qualified_name": "JCreateBool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1c6e676d2a679f9638e3a162e5a3f6f85a6a3e266fab147cc638b65fe80a1dfd" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2330__JCreateNumber.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2330:JCreateNumber", + "kind": "function", + "line": 2330, + "name": "JCreateNumber", + "node_type": "function", + "qualified_name": "JCreateNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a2f13fc6dd50458cc26086a4f374f61cee4941c60f392920cd76834e306a3e5b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2349__JCreateInteger.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2349:JCreateInteger", + "kind": "function", + "line": 2349, + "name": "JCreateInteger", + "node_type": "function", + "qualified_name": "JCreateInteger", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "2cb103e6090e01ee672d2bd2ae15325b130dfba8ff90b9d4b4d87a936f9f5609" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2360__JCreateString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2360:JCreateString", + "kind": "function", + "line": 2360, + "name": "JCreateString", + "node_type": "function", + "qualified_name": "JCreateString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e60432ab91a80dead87745720b29e3bc30016f7a6250f3bd61464e4d7dbb61ad" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2374__JCreateStringValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2374:JCreateStringValue", + "kind": "function", + "line": 2374, + "name": "JCreateStringValue", + "node_type": "function", + "qualified_name": "JCreateStringValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6c8da1276cc7308d587da320eb9f9186e1e30f51ba2af73adb236e761ac2d041" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2384__JCreateStringReference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2384:JCreateStringReference", + "kind": "function", + "line": 2384, + "name": "JCreateStringReference", + "node_type": "function", + "qualified_name": "JCreateStringReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3387d9348f6a16634abe273825391cc82d9afd91e8e8851789fa2d63296c093f" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2394__JCreateObjectReference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2394:JCreateObjectReference", + "kind": "function", + "line": 2394, + "name": "JCreateObjectReference", + "node_type": "function", + "qualified_name": "JCreateObjectReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f52af079e5b2599c572d315646c26a56b9550cb2f852b91e258230d5e2eec7b4" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2407__JCreateArrayReference.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2407:JCreateArrayReference", + "kind": "function", + "line": 2407, + "name": "JCreateArrayReference", + "node_type": "function", + "qualified_name": "JCreateArrayReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ace6c893b19181fd9e097b320e45fac8071139d59277328272b00a5c1bfa4cbc" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2420__JCreateRaw.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2420:JCreateRaw", + "kind": "function", + "line": 2420, + "name": "JCreateRaw", + "node_type": "function", + "qualified_name": "JCreateRaw", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1ed67d5c12a0f900df3da9d956d28eb7eb2bf181a1852a4509948009f8183f3a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2434__JCreateArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2434:JCreateArray", + "kind": "function", + "line": 2434, + "name": "JCreateArray", + "node_type": "function", + "qualified_name": "JCreateArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f0eedccc22f7c9e0655dc9beb7e6a8bfae443fdcd048514e5e338d08b1b8c6f9" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2450__JCreateObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2450:JCreateObject", + "kind": "function", + "line": 2450, + "name": "JCreateObject", + "node_type": "function", + "qualified_name": "JCreateObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4c015312d8742bffda85122a82a443fca658c8f40d88f38b82cf0003fba02916" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2460__JCreateIntArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2460:JCreateIntArray", + "kind": "function", + "line": 2460, + "name": "JCreateIntArray", + "node_type": "function", + "qualified_name": "JCreateIntArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "471f308422e673bc931d6a7af4f76eee04cd4674d283a1463841de7f77d96c8d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2489__JCreateNumberArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2489:JCreateNumberArray", + "kind": "function", + "line": 2489, + "name": "JCreateNumberArray", + "node_type": "function", + "qualified_name": "JCreateNumberArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4927466f91606037cf6566050fb952eb5d6640e7f917dad170c488c7ae8c7c30" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2519__JCreateStringArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2519:JCreateStringArray", + "kind": "function", + "line": 2519, + "name": "JCreateStringArray", + "node_type": "function", + "qualified_name": "JCreateStringArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1c9716995d973658ad9871fdb004db61a4eaaaf7fc1b99dde3467dda2bf9dc00" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2550__JDuplicate.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2550:JDuplicate", + "kind": "function", + "line": 2550, + "name": "JDuplicate", + "node_type": "function", + "qualified_name": "JDuplicate", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "5cf428e724440d75b11ac447b27327022ef951fa5c26dba89a135427144f685e" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2616__JMinify.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2616:JMinify", + "kind": "function", + "line": 2616, + "name": "JMinify", + "node_type": "function", + "qualified_name": "JMinify", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "5bfe5985b5bfeacac34f00b0619dca463491d19df10e55abf797f0868304e24d" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2665__JIsInvalid.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2665:JIsInvalid", + "kind": "function", + "line": 2665, + "name": "JIsInvalid", + "node_type": "function", + "qualified_name": "JIsInvalid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ca7726195b25e0a449cf1a60149218dfecbc2718ca522903efdb3515adb921f9" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2673__JIsFalse.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2673:JIsFalse", + "kind": "function", + "line": 2673, + "name": "JIsFalse", + "node_type": "function", + "qualified_name": "JIsFalse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "92bd6b8a6a22d896050ae50a0baf7849dcca96253cfc873246dc324ef4c3d753" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2681__JIsTrue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2681:JIsTrue", + "kind": "function", + "line": 2681, + "name": "JIsTrue", + "node_type": "function", + "qualified_name": "JIsTrue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "18013140d8ac5599c12b16b28e8ae321a3616dc6b559ddf8886721d0c44e06d9" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2690__JIsBool.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2690:JIsBool", + "kind": "function", + "line": 2690, + "name": "JIsBool", + "node_type": "function", + "qualified_name": "JIsBool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "36cd63b4a7eabd79fd97d4f7f3d79ea8366f8e0e21f0721cd2f765917568423b" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2697__JIsNull.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2697:JIsNull", + "kind": "function", + "line": 2697, + "name": "JIsNull", + "node_type": "function", + "qualified_name": "JIsNull", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "de8d4381c1c78eee9fc464356edfd66c5f37a0bfc2e85e0a409216eec9d6f7a7" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2705__JIsNumber.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2705:JIsNumber", + "kind": "function", + "line": 2705, + "name": "JIsNumber", + "node_type": "function", + "qualified_name": "JIsNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "73ebfbf0f2cf7bee97c6ef39332f6bfaf12ea9b880fb4801472e78049bc318ef" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2713__JIsString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2713:JIsString", + "kind": "function", + "line": 2713, + "name": "JIsString", + "node_type": "function", + "qualified_name": "JIsString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4963181a2f03e68aba0e80ea8297921ba485c7b5ca3a1a2a91aed287468cfb60" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2721__JIsArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2721:JIsArray", + "kind": "function", + "line": 2721, + "name": "JIsArray", + "node_type": "function", + "qualified_name": "JIsArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "94d967f1dc2d3be8d622324836f607fa3b72111d8c254d2120d2311c48d43fb2" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2729__JIsObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2729:JIsObject", + "kind": "function", + "line": 2729, + "name": "JIsObject", + "node_type": "function", + "qualified_name": "JIsObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "11ddedc6009566d07e90aaca9616e4b3b7a931d768bc0747328c08f2ca6caf0a" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2737__JIsRaw.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2737:JIsRaw", + "kind": "function", + "line": 2737, + "name": "JIsRaw", + "node_type": "function", + "qualified_name": "JIsRaw", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "6bc3d571f1e831953c5f2323455beb66e28374d22480942db5d1f79b28602c76" + }, + { + "artifact": "artifacts/functions/n_cjson_c__L2745__JCompare.md", + "extraction_method": "regex-c-function", + "file": "n_cjson.c", + "id": "function:n_cjson.c:2745:JCompare", + "kind": "function", + "line": 2745, + "name": "JCompare", + "node_type": "function", + "qualified_name": "JCompare", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "423d43cfde9c0681ae58c0c149501256c26fb8099f37c73255f5c61063083567" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L52__N_CJSON_VERSION_MAJOR.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:52:N_CJSON_VERSION_MAJOR", + "kind": "macro", + "line": 52, + "name": "N_CJSON_VERSION_MAJOR", + "node_type": "macro", + "qualified_name": "N_CJSON_VERSION_MAJOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3c912ad22c7a590fc64bd4e6b07a1df4742627aed2f0a28d0963b7b2575da1f8" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L53__N_CJSON_VERSION_MINOR.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:53:N_CJSON_VERSION_MINOR", + "kind": "macro", + "line": 53, + "name": "N_CJSON_VERSION_MINOR", + "node_type": "macro", + "qualified_name": "N_CJSON_VERSION_MINOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "183e7a406657171a3e248deac1766e55b7db2649dc550c94bb9f920c1715d9f2" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L54__N_CJSON_VERSION_PATCH.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:54:N_CJSON_VERSION_PATCH", + "kind": "macro", + "line": 54, + "name": "N_CJSON_VERSION_PATCH", + "node_type": "macro", + "qualified_name": "N_CJSON_VERSION_PATCH", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "81175ed107ce7768e5cc8b94163c1c1fe67b11592e0e9be620cf835f1a34a72a" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L59__JInvalid.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:59:JInvalid", + "kind": "macro", + "line": 59, + "name": "JInvalid", + "node_type": "macro", + "qualified_name": "JInvalid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9eaf5557af37e439288fc6bb7c0a26cddf083194a798c13a2e77680986852f1a" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L60__JFalse.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:60:JFalse", + "kind": "macro", + "line": 60, + "name": "JFalse", + "node_type": "macro", + "qualified_name": "JFalse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "811379bebdbbd90e07133b8b1c63057a9ae25b94dee4510682e3663703e8fa64" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L61__JTrue.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:61:JTrue", + "kind": "macro", + "line": 61, + "name": "JTrue", + "node_type": "macro", + "qualified_name": "JTrue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "83b01405013ba36a5d68e9dfac1a377fc356a497834723a485d8731acbbd22ac" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L62__JNULL.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:62:JNULL", + "kind": "macro", + "line": 62, + "name": "JNULL", + "node_type": "macro", + "qualified_name": "JNULL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1ae289ffc2bf8474af6c00908d811fb21c0d068e6019c7019cee5eacd49d0788" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L63__JNumber.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:63:JNumber", + "kind": "macro", + "line": 63, + "name": "JNumber", + "node_type": "macro", + "qualified_name": "JNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f36114aa94003881f7bac0695054beb7e677d51aeeb36c859b4365d823003efb" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L64__JString.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:64:JString", + "kind": "macro", + "line": 64, + "name": "JString", + "node_type": "macro", + "qualified_name": "JString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "38a8b99548b7d7066b39d50ec928d7dfdd95579547141fb6cfb9b8c6e1e9adab" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L65__JArray.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:65:JArray", + "kind": "macro", + "line": 65, + "name": "JArray", + "node_type": "macro", + "qualified_name": "JArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "22d91ae7077506512e4f523dc152311854843bc4c89e94ccf829e0cdde2ca5a6" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L66__JObject.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:66:JObject", + "kind": "macro", + "line": 66, + "name": "JObject", + "node_type": "macro", + "qualified_name": "JObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "933bbccfb1068e4dbef0642a5d4a1ff63fc4c49be7ebf59f329551dbb3d12f54" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L67__JRaw.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:67:JRaw", + "kind": "macro", + "line": 67, + "name": "JRaw", + "node_type": "macro", + "qualified_name": "JRaw", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "11b24d5b3547ad08fa7e4c9033275f4cf0191f4b2b14f6bb1e98773c436a5b7b" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L69__JIsReference.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:69:JIsReference", + "kind": "macro", + "line": 69, + "name": "JIsReference", + "node_type": "macro", + "qualified_name": "JIsReference", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1d9067ff141aa894dfabb49c16cc6743bca63bec3f8e5276df42b5df15686405" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L70__JStringIsConst.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:70:JStringIsConst", + "kind": "macro", + "line": 70, + "name": "JStringIsConst", + "node_type": "macro", + "qualified_name": "JStringIsConst", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cf5598cf5115673288abf0d78ecb0219c92054759ad3ac75b85c0d75394e1568" + }, + { + "artifact": "artifacts/types/n_cjson_h__L78__typedef_78.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.h", + "id": "typedef:n_cjson.h:78:typedef_78", + "kind": "typedef", + "line": 78, + "name": "typedef_78", + "node_type": "typedef", + "qualified_name": "typedef_78", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a937609d858e1291847e961279ae8294352961a79e106b54986868e7a6f98209" + }, + { + "artifact": "artifacts/types/n_cjson_h__L80__J.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.h", + "id": "struct:n_cjson.h:80:J", + "kind": "struct", + "line": 80, + "name": "J", + "node_type": "struct", + "qualified_name": "J", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8c312153d1800b6e80c2a4b9d03e1a5f3861c43992f0783b62f3da7bb860c10e" + }, + { + "artifact": "artifacts/types/n_cjson_h__L81__J.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.h", + "id": "struct:n_cjson.h:81:J", + "kind": "struct", + "line": 81, + "name": "J", + "node_type": "struct", + "qualified_name": "J", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eaf12bccfcb4ab30d6e472f223d55372f64536ed9c0fe133e82427b79864d7a7" + }, + { + "artifact": "artifacts/types/n_cjson_h__L83__J.md", + "extraction_method": "regex-c-type", + "file": "n_cjson.h", + "id": "struct:n_cjson.h:83:J", + "kind": "struct", + "line": 83, + "name": "J", + "node_type": "struct", + "qualified_name": "J", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7ed29ceb499ec9e3c58c10bcad26007a875da3b3275a601edda626dc36de7321" + }, + { + "artifact": "artifacts/types/n_cjson_h__L98__typedef_98.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.h", + "id": "typedef:n_cjson.h:98:typedef_98", + "kind": "typedef", + "line": 98, + "name": "typedef_98", + "node_type": "typedef", + "qualified_name": "typedef_98", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e62f5aafefb1eb8b8b6cb8517328336dbdc38266cc557a4e30ad9f54481aef74" + }, + { + "artifact": "artifacts/types/n_cjson_h__L103__Jbool.md", + "extraction_method": "regex-c-typedef", + "file": "n_cjson.h", + "id": "typedef:n_cjson.h:103:Jbool", + "kind": "typedef", + "line": 103, + "name": "Jbool", + "node_type": "typedef", + "qualified_name": "Jbool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1e51d0e577531e7f66c17b52a7669e104a968b066ef7ee0a5c80b52a035a9cb8" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L134__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:134:N_CJSON_PUBLIC", + "kind": "macro", + "line": 134, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "374aaa136c941d337a7435fa2b2e563875394ad38b79bd9a5de07016ac9f3726" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L136__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:136:N_CJSON_PUBLIC", + "kind": "macro", + "line": 136, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "25f7a847bdd649b44db407479f83c67753d2a623f82e112839565116f675e7fb" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L138__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:138:N_CJSON_PUBLIC", + "kind": "macro", + "line": 138, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d9a037449f6f13944e916ce453f95887f59d8a0ada0f8a6edbd3b1c8a1fa5b94" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L142__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:142:N_CJSON_PUBLIC", + "kind": "macro", + "line": 142, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0c6c851100316aeb9a054ba70dfd9287d4cdc27eee82544ab025f15c4b4dd0aa" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L144__N_CJSON_PUBLIC.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:144:N_CJSON_PUBLIC", + "kind": "macro", + "line": 144, + "name": "N_CJSON_PUBLIC", + "node_type": "macro", + "qualified_name": "N_CJSON_PUBLIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "03b60f5ff9d7922d3099bfde24ed85b11607fd2ba61cc0a816a7f6fcb7698b37" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L176__N_CJSON_NESTING_LIMIT.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:176:N_CJSON_NESTING_LIMIT", + "kind": "macro", + "line": 176, + "name": "N_CJSON_NESTING_LIMIT", + "node_type": "macro", + "qualified_name": "N_CJSON_NESTING_LIMIT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2b1ec6360a66aa9bd9b58ce56d02b85588a88801f3496f2e15e80eb9497fd52e" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L209__JGetObjectItems.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:209:JGetObjectItems", + "kind": "macro", + "line": 209, + "name": "JGetObjectItems", + "node_type": "macro", + "qualified_name": "JGetObjectItems", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "889e29ded1d15284d37d6532f0001612d7377ed53696ec47df3e8dc203697d26" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L310__JConvertToJSONString.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:310:JConvertToJSONString", + "kind": "macro", + "line": 310, + "name": "JConvertToJSONString", + "node_type": "macro", + "qualified_name": "JConvertToJSONString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1a9c522c166acb47749d98aca3f9f754b87983a302b48b397577d659f0eeb146" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L311__JConvertFromJSONString.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:311:JConvertFromJSONString", + "kind": "macro", + "line": 311, + "name": "JConvertFromJSONString", + "node_type": "macro", + "qualified_name": "JConvertFromJSONString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8102d442610d092aa97b3dbb28b217b67477b61da780cc2decb4e308adb44c7c" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L314__JSetIntValue.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:314:JSetIntValue", + "kind": "macro", + "line": 314, + "name": "JSetIntValue", + "node_type": "macro", + "qualified_name": "JSetIntValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f337bb7e291d55367a86c9b4031698158b38c07577b18383258aae89562ad7bc" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L317__JSetNumberValue.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:317:JSetNumberValue", + "kind": "macro", + "line": 317, + "name": "JSetNumberValue", + "node_type": "macro", + "qualified_name": "JSetNumberValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2718e14cd8ebb88d8c1534b57f0bcfa83471841e0c1ea2696eb83c80da71694d" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L320__JArrayForEach.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:320:JArrayForEach", + "kind": "macro", + "line": 320, + "name": "JArrayForEach", + "node_type": "macro", + "qualified_name": "JArrayForEach", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "41b651b74e2e40c3eda2d525c345cae7fa2e0eabf9e2d541bde72804578a8c09" + }, + { + "artifact": "artifacts/macros/n_cjson_h__L322__JObjectForEach.md", + "extraction_method": "regex-c-macro", + "file": "n_cjson.h", + "id": "macro:n_cjson.h:322:JObjectForEach", + "kind": "macro", + "line": 322, + "name": "JObjectForEach", + "node_type": "macro", + "qualified_name": "JObjectForEach", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "89fbdd04287665cc779cac3afff185d81062565c853c3ac1f151642586ba9677" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L19__JIsPresent.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:19:JIsPresent", + "kind": "function", + "line": 19, + "name": "JIsPresent", + "node_type": "function", + "qualified_name": "JIsPresent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f85ed9a0618a76dc4ddab9d4d68f1d961f0a51d2c1eff76d2479abc5db9d8a13" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L27__JGetString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:27:JGetString", + "kind": "function", + "line": 27, + "name": "JGetString", + "node_type": "function", + "qualified_name": "JGetString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f63a4b6de6fc5b7c7e267d97b8450f86ef928043e6be7d92cab00e998c40eda6" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L45__JGetArray.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:45:JGetArray", + "kind": "function", + "line": 45, + "name": "JGetArray", + "node_type": "function", + "qualified_name": "JGetArray", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "63e3c7bb18bd763238e6b1ac1a5af39f6e5d02cb8a5c6901430e3cf158e4c066" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L60__JGetObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:60:JGetObject", + "kind": "function", + "line": 60, + "name": "JGetObject", + "node_type": "function", + "qualified_name": "JGetObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7016b0f51753ab8ecf1ae2c8b7009bd8b2965fa7f9fdca56131570c77ef126a4" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L75__JBoolValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:75:JBoolValue", + "kind": "function", + "line": 75, + "name": "JBoolValue", + "node_type": "function", + "qualified_name": "JBoolValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9be934a6c3caf6fed18e05aa6f66f1b6782ffa5558ab029ebf8b99d4c9c95ae5" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L83__JStringValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:83:JStringValue", + "kind": "function", + "line": 83, + "name": "JStringValue", + "node_type": "function", + "qualified_name": "JStringValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7a9bd53f131d2b0cd19f5bcbefe7784e299c98d02cfff186989b5958070966ce" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L91__JNumberValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:91:JNumberValue", + "kind": "function", + "line": 91, + "name": "JNumberValue", + "node_type": "function", + "qualified_name": "JNumberValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6c89aefe50dbd1a5af0e4049cdf5341278c15bd829d463a33e984658df4e73c8" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L99__JGetNumber.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:99:JGetNumber", + "kind": "function", + "line": 99, + "name": "JGetNumber", + "node_type": "function", + "qualified_name": "JGetNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a576e3e4cc56264981951a033bcc7dd801d560aadc9e048fe52cb00a25115e5a" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L114__JIntValue.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:114:JIntValue", + "kind": "function", + "line": 114, + "name": "JIntValue", + "node_type": "function", + "qualified_name": "JIntValue", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "197d9ace57d5be5fdfa3379da4354dca1facce628b221a371c0242900fea585a" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L122__JGetInt.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:122:JGetInt", + "kind": "function", + "line": 122, + "name": "JGetInt", + "node_type": "function", + "qualified_name": "JGetInt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0bde242f6e146c6536fe97ed8b764391b3f03bf62257dc8c91fed45b551d8cbc" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L137__JGetBool.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:137:JGetBool", + "kind": "function", + "line": 137, + "name": "JGetBool", + "node_type": "function", + "qualified_name": "JGetBool", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "331c2c8919e5f00b6f24c76c9fd6eafe51bb0e989f0e66451afd335ea1cc39b5" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L152__JIsNullString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:152:JIsNullString", + "kind": "function", + "line": 152, + "name": "JIsNullString", + "node_type": "function", + "qualified_name": "JIsNullString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a6b58fbefff9d973ca17845aac53079a1d444d9d5771664862cad6cb19652600" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L173__JIsExactString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:173:JIsExactString", + "kind": "function", + "line": 173, + "name": "JIsExactString", + "node_type": "function", + "qualified_name": "JIsExactString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ec1b95c36d6a16261eef833651cf77dbb070f9ddd4f93df2ef5f0c7a02026c0b" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L194__JContainsString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:194:JContainsString", + "kind": "function", + "line": 194, + "name": "JContainsString", + "node_type": "function", + "qualified_name": "JContainsString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4a1c4157e6d4eccbd650ea40596dc58fc97af922b35a3dacef7d4545acc41192" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L215__JAddBinaryToObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:215:JAddBinaryToObject", + "kind": "function", + "line": 215, + "name": "JAddBinaryToObject", + "node_type": "function", + "qualified_name": "JAddBinaryToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "50eee5412dec90fe5b73c149d9c5ef5181244af5c3e56fa957eacf7c84959426" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L235__JGetBinaryFromObject.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:235:JGetBinaryFromObject", + "kind": "function", + "line": 235, + "name": "JGetBinaryFromObject", + "node_type": "function", + "qualified_name": "JGetBinaryFromObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6d646f9004197c615bd64a12d61351814c5f295a8add2a913501e85f178f8800" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L276__JGetItemName.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:276:JGetItemName", + "kind": "function", + "line": 276, + "name": "JGetItemName", + "node_type": "function", + "qualified_name": "JGetItemName", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cf6c10957a9a53254272488568b7722daf3441943db753b017a8c45fd226b072" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L284__JItoA.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:284:JItoA", + "kind": "function", + "line": 284, + "name": "JItoA", + "node_type": "function", + "qualified_name": "JItoA", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ac2d5cc382f43e392f5f73d34197fef5588f8afe5581cc97c3de90cfccc67ac7" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L312__JAtoI.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:312:JAtoI", + "kind": "function", + "line": 312, + "name": "JAtoI", + "node_type": "function", + "qualified_name": "JAtoI", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "46b52b2863430862d1b8fedab535ad5e2f2d0e3fc2e39a502dc07876d2a9b0f5" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L342__JAllocString.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:342:JAllocString", + "kind": "function", + "line": 342, + "name": "JAllocString", + "node_type": "function", + "qualified_name": "JAllocString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0f94c77fa27e9f2c0c1307692a5b36ce4c1c25691b63a0961f7c25191db674a3" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L355__JType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:355:JType", + "kind": "function", + "line": 355, + "name": "JType", + "node_type": "function", + "qualified_name": "JType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d55df257147d74a9fe845ed452f144d12f272ed488ca9f05cc84cb2e303f8841" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L379__JGetType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:379:JGetType", + "kind": "function", + "line": 379, + "name": "JGetType", + "node_type": "function", + "qualified_name": "JGetType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3d73fa55c9b1c3fc386714a920504dec643eb90a6df0210fd693a9c1026768b7" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L387__JGetItemType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:387:JGetItemType", + "kind": "function", + "line": 387, + "name": "JGetItemType", + "node_type": "function", + "qualified_name": "JGetItemType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0fff56d5b7c8ac4ceead8754034f17c6bcdf07cc36054229a0c27db416286fba" + }, + { + "artifact": "artifacts/functions/n_cjson_helpers_c__L446__JBaseItemType.md", + "extraction_method": "regex-c-function", + "file": "n_cjson_helpers.c", + "id": "function:n_cjson_helpers.c:446:JBaseItemType", + "kind": "function", + "line": 446, + "name": "JBaseItemType", + "node_type": "function", + "qualified_name": "JBaseItemType", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "42c245607da13145903680ef3cf07e1565c5f1128933137bf3d798a55193e60e" + }, + { + "artifact": "artifacts/macros/n_cobs_c__L8__COBS_EOP_OVERHEAD.md", + "extraction_method": "regex-c-macro", + "file": "n_cobs.c", + "id": "macro:n_cobs.c:8:COBS_EOP_OVERHEAD", + "kind": "macro", + "line": 8, + "name": "COBS_EOP_OVERHEAD", + "node_type": "macro", + "qualified_name": "COBS_EOP_OVERHEAD", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1c991d9f7eac8ff7d0b385c7ffeec8e060dfd0a99a6ab200adaab4b391472902" + }, + { + "artifact": "artifacts/macros/n_cobs_c__L9__COBS_MAX_PACKET_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "n_cobs.c", + "id": "macro:n_cobs.c:9:COBS_MAX_PACKET_SIZE", + "kind": "macro", + "line": 9, + "name": "COBS_MAX_PACKET_SIZE", + "node_type": "macro", + "qualified_name": "COBS_MAX_PACKET_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5d61beb0996e5f337007ef46c364dbee862476856a60c752bb6efe578c4a6251" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L32__cobsDecode.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:32:_cobsDecode", + "kind": "function", + "line": 32, + "name": "_cobsDecode", + "node_type": "function", + "qualified_name": "_cobsDecode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "25efdef4e741eaf5057beee971cdf9d2717b328557f160d5ebd29386532ad20e" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L115__cobsEncode.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:115:_cobsEncode", + "kind": "function", + "line": 115, + "name": "_cobsEncode", + "node_type": "function", + "qualified_name": "_cobsEncode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e059169403b5a8055827bb8b5e4372e811a4c6189ce4dd0c5f247b104281aed8" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L196__cobsEncodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:196:_cobsEncodedLength", + "kind": "function", + "line": 196, + "name": "_cobsEncodedLength", + "node_type": "function", + "qualified_name": "_cobsEncodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3601999bf788d2ce63917f68f37388666ecd2a0af0bdd1d2c7a8e52486c0dae6" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L263__cobsEncodedMaxLength.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:263:_cobsEncodedMaxLength", + "kind": "function", + "line": 263, + "name": "_cobsEncodedMaxLength", + "node_type": "function", + "qualified_name": "_cobsEncodedMaxLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ed693ad45e09db11c3859dcda5013c6b011dca377a9bbefb7f3f780b816f5bb2" + }, + { + "artifact": "artifacts/functions/n_cobs_c__L305__cobsGuaranteedFit.md", + "extraction_method": "regex-c-function", + "file": "n_cobs.c", + "id": "function:n_cobs.c:305:_cobsGuaranteedFit", + "kind": "function", + "line": 305, + "name": "_cobsGuaranteedFit", + "node_type": "function", + "qualified_name": "_cobsGuaranteedFit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6c1d012c1b8fc6d3a7b4371c0a2e0c5e5bd970e336d9653d33e413e87eb10e99" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L26__PRINT_F_QUOTE.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:26:PRINT_F_QUOTE", + "kind": "macro", + "line": 26, + "name": "PRINT_F_QUOTE", + "node_type": "macro", + "qualified_name": "PRINT_F_QUOTE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2014fad3c330981b10dd4a59add8a41902fa18c155221133fa7ea6aa6019cf06" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L27__PRINT_F_TYPE_E.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:27:PRINT_F_TYPE_E", + "kind": "macro", + "line": 27, + "name": "PRINT_F_TYPE_E", + "node_type": "macro", + "qualified_name": "PRINT_F_TYPE_E", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "523f259826a82a9a9d7ff42820b1f1dc18d0e6fefe87f2df82cb9d42599f8246" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L28__PRINT_F_TYPE_G.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:28:PRINT_F_TYPE_G", + "kind": "macro", + "line": 28, + "name": "PRINT_F_TYPE_G", + "node_type": "macro", + "qualified_name": "PRINT_F_TYPE_G", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "47d43fb32a4f1e81a6ad92182379e384615260d523a2f744e7a625a85bc15b3f" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L29__PRINT_F_NUM.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:29:PRINT_F_NUM", + "kind": "macro", + "line": 29, + "name": "PRINT_F_NUM", + "node_type": "macro", + "qualified_name": "PRINT_F_NUM", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "546a4e256b02dd925c5341c96f5d6ff08d7a62342c69220d3b8a7ebc776eaa6b" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L30__PRINT_F_PLUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:30:PRINT_F_PLUS", + "kind": "macro", + "line": 30, + "name": "PRINT_F_PLUS", + "node_type": "macro", + "qualified_name": "PRINT_F_PLUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7bb732bf85d4981e32df250944b3b17fbe4fbff77d7bc9896e69c7fb21fd9434" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L31__PRINT_F_MINUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:31:PRINT_F_MINUS", + "kind": "macro", + "line": 31, + "name": "PRINT_F_MINUS", + "node_type": "macro", + "qualified_name": "PRINT_F_MINUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d216b72312121dd38ac22f5c65574d984577e1ddabf13f6df2949fd4ef9280e9" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L32__PRINT_F_ZERO.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:32:PRINT_F_ZERO", + "kind": "macro", + "line": 32, + "name": "PRINT_F_ZERO", + "node_type": "macro", + "qualified_name": "PRINT_F_ZERO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e274feea9a555fc074f71525dd35dbaafddf76bf72754cdcde5c2a84c89116bd" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L33__PRINT_F_SPACE.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:33:PRINT_F_SPACE", + "kind": "macro", + "line": 33, + "name": "PRINT_F_SPACE", + "node_type": "macro", + "qualified_name": "PRINT_F_SPACE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "75e3897d59b0fafeb92f5d7b6f25ba9f8b607c9ab17d6112678eb5fb15155c4e" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L34__PRINT_F_UP.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:34:PRINT_F_UP", + "kind": "macro", + "line": 34, + "name": "PRINT_F_UP", + "node_type": "macro", + "qualified_name": "PRINT_F_UP", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c46c2f43a908d73af4447cb146da592cc32a504c078c2c0590037d4a73d49337" + }, + { + "artifact": "artifacts/macros/n_ftoa_c__L45__OUTCHAR.md", + "extraction_method": "regex-c-macro", + "file": "n_ftoa.c", + "id": "macro:n_ftoa.c:45:OUTCHAR", + "kind": "macro", + "line": 45, + "name": "OUTCHAR", + "node_type": "macro", + "qualified_name": "OUTCHAR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c428cfdc28ff7e75c0184043e1e14a72966c9e0b35362f11e4a73c6062f607be" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L56__JNtoA.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:56:JNtoA", + "kind": "function", + "line": 56, + "name": "JNtoA", + "node_type": "function", + "qualified_name": "JNtoA", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6bbff90a898798224b4096a43c2271af84c473b3272aefeed7da4559509980b2" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L74__fmtflt.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:74:fmtflt", + "kind": "function", + "line": 74, + "name": "fmtflt", + "node_type": "function", + "qualified_name": "fmtflt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f6c01f25daeed979cc439b2685f3084b83b9b7831dd0bb2f8a55de0edae62bf3" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L378__fmtstr.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:378:fmtstr", + "kind": "function", + "line": 378, + "name": "fmtstr", + "node_type": "function", + "qualified_name": "fmtstr", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "13e72dc56613505c901de05e17706482258bc11677ee25c9da7f47f17f6bf2f9" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L415__printsep.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:415:printsep", + "kind": "function", + "line": 415, + "name": "printsep", + "node_type": "function", + "qualified_name": "printsep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9b99e91aec6dae3ddfe0f50dce230af76346ef55dc69642f2a96c845317bae54" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L420__getnumsep.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:420:getnumsep", + "kind": "function", + "line": 420, + "name": "getnumsep", + "node_type": "function", + "qualified_name": "getnumsep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a13c6b22abc0042abe62a20a1d87c22f36de9eb05425f5939c9d9187bc5f7f75" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L426__getexponent.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:426:getexponent", + "kind": "function", + "line": 426, + "name": "getexponent", + "node_type": "function", + "qualified_name": "getexponent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3cc40f8ca1f3e08a33d342694849e830637421a5cf9e47ccae76b3b4e1b12b05" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L448__convert.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:448:convert", + "kind": "function", + "line": 448, + "name": "convert", + "node_type": "function", + "qualified_name": "convert", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "69daffe24f07bd67211d5a44567a1a652dbe744d211114dbc5cb96b6707bd57c" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L462__cast.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:462:cast", + "kind": "function", + "line": 462, + "name": "cast", + "node_type": "function", + "qualified_name": "cast", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3655b90f93fd3f8e46e1d4b621477009bf44d9358d8fc887e908f7f88411a5c4" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L486__myround.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:486:myround", + "kind": "function", + "line": 486, + "name": "myround", + "node_type": "function", + "qualified_name": "myround", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c8681b047c5b39a2bb43437f136dbf3bce86b9d2ea14841f91e9469cfbb20254" + }, + { + "artifact": "artifacts/functions/n_ftoa_c__L497__mypow10.md", + "extraction_method": "regex-c-function", + "file": "n_ftoa.c", + "id": "function:n_ftoa.c:497:mypow10", + "kind": "function", + "line": 497, + "name": "mypow10", + "node_type": "function", + "qualified_name": "mypow10", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "62dac5158a782317b83383c2139d09588291a3d1fff2ca7660416bbdd23d9212" + }, + { + "artifact": "artifacts/macros/n_helpers_c__L71__daysByMonth.md", + "extraction_method": "regex-c-macro", + "file": "n_helpers.c", + "id": "macro:n_helpers.c:71:daysByMonth", + "kind": "macro", + "line": 71, + "name": "daysByMonth", + "node_type": "macro", + "qualified_name": "daysByMonth", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "79579cebad12ce987f6f63b4fe694b4d5d1297ea61a0c4649d61b7755433f720" + }, + { + "artifact": "artifacts/types/n_helpers_c__L2388__typedef_2388.md", + "extraction_method": "regex-c-typedef", + "file": "n_helpers.c", + "id": "typedef:n_helpers.c:2388:typedef_2388", + "kind": "typedef", + "line": 2388, + "name": "typedef_2388", + "node_type": "typedef", + "qualified_name": "typedef_2388", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cbcb829f909c5f0f1a03306bbf37ae2b2466fbd5b84d18a0882e6385c1f4ce11" + }, + { + "artifact": "artifacts/types/n_helpers_c__L2389__objHeader_s.md", + "extraction_method": "regex-c-type", + "file": "n_helpers.c", + "id": "struct:n_helpers.c:2389:objHeader_s", + "kind": "struct", + "line": 2389, + "name": "objHeader_s", + "node_type": "struct", + "qualified_name": "objHeader_s", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e42a485473b9a3df1edbfa0d24635e540ec588753a89ec8c01dea182582e97d0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L92__NoteAuxSerialFlowControl.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:92:NoteAuxSerialFlowControl", + "kind": "function", + "line": 92, + "name": "NoteAuxSerialFlowControl", + "node_type": "function", + "qualified_name": "NoteAuxSerialFlowControl", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "75c1e9fe8d19b08c381dd3693f3e0248a73ebed591b0cda8331f9b2b1648fe87" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L127__NoteBinaryCodecDecode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:127:NoteBinaryCodecDecode", + "kind": "function", + "line": 127, + "name": "NoteBinaryCodecDecode", + "node_type": "function", + "qualified_name": "NoteBinaryCodecDecode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1024bbe2a1415164ec0eac38c79ed09c07339089805f314511da5f0b47e6fc51" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L169__NoteBinaryCodecEncode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:169:NoteBinaryCodecEncode", + "kind": "function", + "line": 169, + "name": "NoteBinaryCodecEncode", + "node_type": "function", + "qualified_name": "NoteBinaryCodecEncode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fb7819d1f9c0170086d9a0b4aeffb4562c920172f4895c1ff45b2e62466dfcc9" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L218__NoteBinaryCodecMaxDecodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:218:NoteBinaryCodecMaxDecodedLength", + "kind": "function", + "line": 218, + "name": "NoteBinaryCodecMaxDecodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryCodecMaxDecodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "60f8e8818c3b459f1d66e34e55e54ae8913137e4885e55affade1fe58e4424cf" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L233__NoteBinaryCodecMaxEncodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:233:NoteBinaryCodecMaxEncodedLength", + "kind": "function", + "line": 233, + "name": "NoteBinaryCodecMaxEncodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryCodecMaxEncodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "63f4a50c7134013e4bd21b2ac4bef9d775c9a8e923687ec61c4d88ebdebe472d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L249__NoteBinaryStoreDecodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:249:NoteBinaryStoreDecodedLength", + "kind": "function", + "line": 249, + "name": "NoteBinaryStoreDecodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryStoreDecodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "20b611d057c130470cd55aa53ce2dc934efac051c7f7197e5c22b0389960c491" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L300__NoteBinaryStoreEncodedLength.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:300:NoteBinaryStoreEncodedLength", + "kind": "function", + "line": 300, + "name": "NoteBinaryStoreEncodedLength", + "node_type": "function", + "qualified_name": "NoteBinaryStoreEncodedLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f66d3784681a9fda5bd0346f60a24501f1e4f4449f653bd2021f85daa51e85ab" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L359__NoteBinaryStoreReceive.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:359:NoteBinaryStoreReceive", + "kind": "function", + "line": 359, + "name": "NoteBinaryStoreReceive", + "node_type": "function", + "qualified_name": "NoteBinaryStoreReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5b9cf836abee7a6c4b86c138b98c7a0cbb212465839e3452f692697eb646f23a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L492__NoteBinaryStoreReset.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:492:NoteBinaryStoreReset", + "kind": "function", + "line": 492, + "name": "NoteBinaryStoreReset", + "node_type": "function", + "qualified_name": "NoteBinaryStoreReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "355aedd685a1364281dffb083a43f0bcaaca94a0f20eeb0dc0739120b23e4c80" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L539__NoteBinaryStoreTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:539:NoteBinaryStoreTransmit", + "kind": "function", + "line": 539, + "name": "NoteBinaryStoreTransmit", + "node_type": "function", + "qualified_name": "NoteBinaryStoreTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fd76217bdf26d14c8607e4cec4d5640d06eb79728993240153ad56543b971f78" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L743__NoteTimeValid.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:743:NoteTimeValid", + "kind": "function", + "line": 743, + "name": "NoteTimeValid", + "node_type": "function", + "qualified_name": "NoteTimeValid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0d29a9b75ac4b307f7fcdded437c72ffb8e91186ff907dadeef2c93f0d67199a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L755__NoteTimeValidST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:755:NoteTimeValidST", + "kind": "function", + "line": 755, + "name": "NoteTimeValidST", + "node_type": "function", + "qualified_name": "NoteTimeValidST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "798418c2dd429b01f8d197ad1bc43906d9d63cad25f81802699881af92e0b407" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L767__NoteTime.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:767:NoteTime", + "kind": "function", + "line": 767, + "name": "NoteTime", + "node_type": "function", + "qualified_name": "NoteTime", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "259f8cd99bb3b24569c33877b124e1effd22f1cbcb4434c2371e7605fdc89f53" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L780__NoteTimeRefreshMins.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:780:NoteTimeRefreshMins", + "kind": "function", + "line": 780, + "name": "NoteTimeRefreshMins", + "node_type": "function", + "qualified_name": "NoteTimeRefreshMins", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0843b9dc271879fca0026915fa1642c35ebc995b47183a4eddb5f20c20ed73fc" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L791__setTime.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:791:_setTime", + "kind": "function", + "line": 791, + "name": "_setTime", + "node_type": "function", + "qualified_name": "_setTime", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "004405c2bb1dc75f002ed2e803ade303b73faf5942e051992dfa25d8de93460a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L808__NoteTimeSet.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:808:NoteTimeSet", + "kind": "function", + "line": 808, + "name": "NoteTimeSet", + "node_type": "function", + "qualified_name": "NoteTimeSet", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "56ee842d3dcfe3bb331c85ca934514052dc83ed8a607503f614a354fb12d13f6" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L834__NotePrintln.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:834:NotePrintln", + "kind": "function", + "line": 834, + "name": "NotePrintln", + "node_type": "function", + "qualified_name": "NotePrintln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "945d84a14c5032e0b1493a2fea09eaefe18ee67055a5a401a4102117db614895" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L847__NotePrint.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:847:NotePrint", + "kind": "function", + "line": 847, + "name": "NotePrint", + "node_type": "function", + "qualified_name": "NotePrint", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "367a8eb67053ec2ab0fc8e5900b6b12bda4ca16f3c217cf87e0df1959c816598" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L871__NoteTimeST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:871:NoteTimeST", + "kind": "function", + "line": 871, + "name": "NoteTimeST", + "node_type": "function", + "qualified_name": "NoteTimeST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9e3f2b78060248dfdad40100a184e30b9c379d59a258f7a0a5130a76373d2be0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L948__NoteSetSTSecs.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:948:NoteSetSTSecs", + "kind": "function", + "line": 948, + "name": "NoteSetSTSecs", + "node_type": "function", + "qualified_name": "NoteSetSTSecs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1037130fe2e99d934527b5ff41922f4e1eca74434994e2ee29c87ab5ff72f360" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L965__NoteRegion.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:965:NoteRegion", + "kind": "function", + "line": 965, + "name": "NoteRegion", + "node_type": "function", + "qualified_name": "NoteRegion", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c2eb8dbe12c31e9631cf4d3c1a9bdb523e55e67b5678e5f63ec0009a6fd58b8e" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1016__NoteLocalTimeST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1016:NoteLocalTimeST", + "kind": "function", + "line": 1016, + "name": "NoteLocalTimeST", + "node_type": "function", + "qualified_name": "NoteLocalTimeST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "be27f4d898d323a31ba2cf2d067a06be863c9a68965e0a8ea69e0e0244cbdf35" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1119__yToDays.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1119:_yToDays", + "kind": "function", + "line": 1119, + "name": "_yToDays", + "node_type": "function", + "qualified_name": "_yToDays", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "83a95dce3ff7c38c43ee332f3eb82511ef4445408b7fcb681f52a0a64bb237e0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1139__NoteLocationValid.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1139:NoteLocationValid", + "kind": "function", + "line": 1139, + "name": "NoteLocationValid", + "node_type": "function", + "qualified_name": "NoteLocationValid", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "44c5f76a05af7bbd83d54ee36f4c5416d801d5547a82dc7cc42f1adc0e74e2d3" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1156__NoteLocationValidST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1156:NoteLocationValidST", + "kind": "function", + "line": 1156, + "name": "NoteLocationValidST", + "node_type": "function", + "qualified_name": "NoteLocationValidST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f71bb5aa1111fa546f9c4a57287b8ae967f0ae7e46eb3ef85a6645f202da5676" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1215__NoteSetEnvDefault.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1215:NoteSetEnvDefault", + "kind": "function", + "line": 1215, + "name": "NoteSetEnvDefault", + "node_type": "function", + "qualified_name": "NoteSetEnvDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d34c4bb28ea81dde551c20f8d9c1ce72040cafcf500f9216c0c947bb8490b077" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1235__NoteSetEnvDefaultInt.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1235:NoteSetEnvDefaultInt", + "kind": "function", + "line": 1235, + "name": "NoteSetEnvDefaultInt", + "node_type": "function", + "qualified_name": "NoteSetEnvDefaultInt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0029b2e73afc8e5220da2926e3fd48151d5a2013d9815ad17c552eec931ffb41" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1250__NoteSetEnvDefaultNumber.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1250:NoteSetEnvDefaultNumber", + "kind": "function", + "line": 1250, + "name": "NoteSetEnvDefaultNumber", + "node_type": "function", + "qualified_name": "NoteSetEnvDefaultNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e2332c02b1abe601eebe2633cd57f2272cac6f14c2b772b772233cef848f0eb0" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1265__NoteGetEnvNumber.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1265:NoteGetEnvNumber", + "kind": "function", + "line": 1265, + "name": "NoteGetEnvNumber", + "node_type": "function", + "qualified_name": "NoteGetEnvNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "91ff77e387012d40aa96b9d8250892b84b7cf23104742ac7064b3aef48072e86" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1281__NoteGetEnvInt.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1281:NoteGetEnvInt", + "kind": "function", + "line": 1281, + "name": "NoteGetEnvInt", + "node_type": "function", + "qualified_name": "NoteGetEnvInt", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b1dcff835118c9f02a76bedcf46167fbcd42b4cf17465dd65b3d07d06da180c4" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1302__NoteGetEnv.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1302:NoteGetEnv", + "kind": "function", + "line": 1302, + "name": "NoteGetEnv", + "node_type": "function", + "qualified_name": "NoteGetEnv", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5382b587afa8e999351a68f52627fc245f49b479aae5c4c73aeee45e4bcbd130" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1334__NoteIsConnected.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1334:NoteIsConnected", + "kind": "function", + "line": 1334, + "name": "NoteIsConnected", + "node_type": "function", + "qualified_name": "NoteIsConnected", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4e3cf1b2f39f5cb7473e4be9ab9f188a8b44f89cad4a295d4c2f27615d88ad7" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1346__NoteIsConnectedST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1346:NoteIsConnectedST", + "kind": "function", + "line": 1346, + "name": "NoteIsConnectedST", + "node_type": "function", + "qualified_name": "NoteIsConnectedST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "15e3e6b58da4f6f14f50d1f57d4bd2fc6ef512cfb37cda7cd41716ac03f641b3" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1368__NoteGetNetStatus.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1368:NoteGetNetStatus", + "kind": "function", + "line": 1368, + "name": "NoteGetNetStatus", + "node_type": "function", + "qualified_name": "NoteGetNetStatus", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "46f7c64e07f58c2d93a7ee9bccb9e96e2c10fda5138f3a4b7ec7ccb50c9bcf6b" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1391__NoteGetVersion.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1391:NoteGetVersion", + "kind": "function", + "line": 1391, + "name": "NoteGetVersion", + "node_type": "function", + "qualified_name": "NoteGetVersion", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "30a42478a54155aaff8ae2bfd02c8a4214c01955be10c24fb083496c738f3542" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1417__NoteGetLocation.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1417:NoteGetLocation", + "kind": "function", + "line": 1417, + "name": "NoteGetLocation", + "node_type": "function", + "qualified_name": "NoteGetLocation", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d65edf5c3e782b84af718c1a882b1f9ea522cfaa3dd95a15ab46f7e8632fa302" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1463__NoteSetLocation.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1463:NoteSetLocation", + "kind": "function", + "line": 1463, + "name": "NoteSetLocation", + "node_type": "function", + "qualified_name": "NoteSetLocation", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "264564344ec368deeabc3ce80ef88b1e8ce8ce8db8cad3fdc73861dfe97a12d4" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1482__NoteClearLocation.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1482:NoteClearLocation", + "kind": "function", + "line": 1482, + "name": "NoteClearLocation", + "node_type": "function", + "qualified_name": "NoteClearLocation", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "798a538d2665e5c5beff6cbfea171424f31e9445e3f222fa8a624c28e49d4c20" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1501__NoteGetLocationMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1501:NoteGetLocationMode", + "kind": "function", + "line": 1501, + "name": "NoteGetLocationMode", + "node_type": "function", + "qualified_name": "NoteGetLocationMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "026dea79cbc69c03eb91e2bed83d4db8d316eaecfad4747efb3d41362e68fc6d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1524__NoteSetLocationMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1524:NoteSetLocationMode", + "kind": "function", + "line": 1524, + "name": "NoteSetLocationMode", + "node_type": "function", + "qualified_name": "NoteSetLocationMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7aa79bd8c9bef893bca1bb3e6bb6633b5e2579d77bbe55b6c91e7ad7665ab84a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1557__NoteGetServiceConfig.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1557:NoteGetServiceConfig", + "kind": "function", + "line": 1557, + "name": "NoteGetServiceConfig", + "node_type": "function", + "qualified_name": "NoteGetServiceConfig", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9e472373415d477cc8d0cd26c7db876d58779058ceac71816001632fc7831300" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1582__NoteGetServiceConfigST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1582:NoteGetServiceConfigST", + "kind": "function", + "line": 1582, + "name": "NoteGetServiceConfigST", + "node_type": "function", + "qualified_name": "NoteGetServiceConfigST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "006e2d0271f6e5dbdf829c4a75dafeac0611c543392d46c19e423b97e7742f9d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1631__NoteGetStatus.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1631:NoteGetStatus", + "kind": "function", + "line": 1631, + "name": "NoteGetStatus", + "node_type": "function", + "qualified_name": "NoteGetStatus", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8fe1a43b1ca4cb4ef41a9c76586b9ca949200d73f81ea5c3a761d3cf5058e0ea" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1649__NoteGetStatusST.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1649:NoteGetStatusST", + "kind": "function", + "line": 1649, + "name": "NoteGetStatusST", + "node_type": "function", + "qualified_name": "NoteGetStatusST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e8d7c98911ce4c35d4e06c446ab6c678efa97fc2745fdbffff672c707a5d517b" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1708__NotePayloadSaveAndSleep.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1708:NotePayloadSaveAndSleep", + "kind": "function", + "line": 1708, + "name": "NotePayloadSaveAndSleep", + "node_type": "function", + "qualified_name": "NotePayloadSaveAndSleep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2e209b0380af190ac4b4178496e74b4ff168647da167d58f051d828724f63c96" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1754__NoteSleep.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1754:NoteSleep", + "kind": "function", + "line": 1754, + "name": "NoteSleep", + "node_type": "function", + "qualified_name": "NoteSleep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2e898079f4120e256bf1696743af2a27e227f7ef84bb14aea82a660b08bdcede" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1805__NoteWake.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1805:NoteWake", + "kind": "function", + "line": 1805, + "name": "NoteWake", + "node_type": "function", + "qualified_name": "NoteWake", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fb57f7b450c632c4a673c6ae0800d794d4b7eaa5fc54cc2dc881282fb781b827" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1830__NotePayloadRetrieveAfterSleep.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1830:NotePayloadRetrieveAfterSleep", + "kind": "function", + "line": 1830, + "name": "NotePayloadRetrieveAfterSleep", + "node_type": "function", + "qualified_name": "NotePayloadRetrieveAfterSleep", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c415fdd287b494483b92b6986135b29ba8099070d3883ff6292130ea87cb0fbf" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1902__NoteFactoryReset.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1902:NoteFactoryReset", + "kind": "function", + "line": 1902, + "name": "NoteFactoryReset", + "node_type": "function", + "qualified_name": "NoteFactoryReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eb9a3ef3c3a8dc02a1a292b56930e07dc742149d76ac37108694dfc7af027f65" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1939__NoteSetProductID.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1939:NoteSetProductID", + "kind": "function", + "line": 1939, + "name": "NoteSetProductID", + "node_type": "function", + "qualified_name": "NoteSetProductID", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "71aa60c31bbc4f585d03d37a99dbd142236ba40fb53f4e91fcd00b522a5ef264" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1963__NoteSetSerialNumber.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1963:NoteSetSerialNumber", + "kind": "function", + "line": 1963, + "name": "NoteSetSerialNumber", + "node_type": "function", + "qualified_name": "NoteSetSerialNumber", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "246cf5131b2db223dbdd6258a55c73083d0cee578401b6e75e9b41377d07f6be" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L1993__NoteSetUploadMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:1993:NoteSetUploadMode", + "kind": "function", + "line": 1993, + "name": "NoteSetUploadMode", + "node_type": "function", + "qualified_name": "NoteSetUploadMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c51a6da4c111a0352e554bd8cc79c848623ea072a2cbc6d3333f9af175a88f84" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2028__NoteSetSyncMode.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2028:NoteSetSyncMode", + "kind": "function", + "line": 2028, + "name": "NoteSetSyncMode", + "node_type": "function", + "qualified_name": "NoteSetSyncMode", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9e5e70ef17c3e1bcd234e4844b102500f343cd41a428447ab6d79be41ff60eb4" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2060__NoteTemplate.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2060:NoteTemplate", + "kind": "function", + "line": 2060, + "name": "NoteTemplate", + "node_type": "function", + "qualified_name": "NoteTemplate", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "21db9db4a14198de0de00f16aaa0312c625501b37900dd9e4433a7d673d2e994" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2083__NoteAdd.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2083:NoteAdd", + "kind": "function", + "line": 2083, + "name": "NoteAdd", + "node_type": "function", + "qualified_name": "NoteAdd", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "27583a1a87a368b61db68014ffaf06361489aebab70f53c672515a62e8aafd97" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2119__NoteSendToRoute.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2119:NoteSendToRoute", + "kind": "function", + "line": 2119, + "name": "NoteSendToRoute", + "node_type": "function", + "qualified_name": "NoteSendToRoute", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "537184f1c9b19cbd3724d4e6325855d4a07ca2483928261b073dd34c4452315e" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2175__NoteGetVoltage.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2175:NoteGetVoltage", + "kind": "function", + "line": 2175, + "name": "NoteGetVoltage", + "node_type": "function", + "qualified_name": "NoteGetVoltage", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "971404fef049e86e5b522c97340cfa8108af734c2570d978a66acacc0346454d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2197__NoteGetTemperature.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2197:NoteGetTemperature", + "kind": "function", + "line": 2197, + "name": "NoteGetTemperature", + "node_type": "function", + "qualified_name": "NoteGetTemperature", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8f94b3a0609666818584f424aaa32965b86628a5c7904e20961c8fad64061f45" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2226__NoteGetContact.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2226:NoteGetContact", + "kind": "function", + "line": 2226, + "name": "NoteGetContact", + "node_type": "function", + "qualified_name": "NoteGetContact", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "edcde1083877abaf76411adbe4180c5e1955585e723228b797b194310567c37d" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2276__NoteSetContact.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2276:NoteSetContact", + "kind": "function", + "line": 2276, + "name": "NoteSetContact", + "node_type": "function", + "qualified_name": "NoteSetContact", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "16f79c48d31da85aaca21d57dda2653b0a9f43eb0d7ac85ea5e603f14a282834" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2301__timerExpiredSecs.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2301:_timerExpiredSecs", + "kind": "function", + "line": 2301, + "name": "_timerExpiredSecs", + "node_type": "function", + "qualified_name": "_timerExpiredSecs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8fd571f2a527057d100284e777627020b125089efc05ce599a0096ba3c075e11" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2332__NoteDebugSyncStatus.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2332:NoteDebugSyncStatus", + "kind": "function", + "line": 2332, + "name": "NoteDebugSyncStatus", + "node_type": "function", + "qualified_name": "NoteDebugSyncStatus", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1385208ec8aaca48abb53801bff6d893077d5d6b958611c9582379d6c784b48c" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2399__NoteMemAvailable.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2399:NoteMemAvailable", + "kind": "function", + "line": 2399, + "name": "NoteMemAvailable", + "node_type": "function", + "qualified_name": "NoteMemAvailable", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a21e271fe09d473e008c0495b3953f296a11ac2addd763dba1d758c3971dd662" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2440__NotePayloadSet.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2440:NotePayloadSet", + "kind": "function", + "line": 2440, + "name": "NotePayloadSet", + "node_type": "function", + "qualified_name": "NotePayloadSet", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "18a8fc7509c28a3d83263dfcc2bd334969143762637f936ec46cde722f0a7151" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2453__NotePayloadFree.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2453:NotePayloadFree", + "kind": "function", + "line": 2453, + "name": "NotePayloadFree", + "node_type": "function", + "qualified_name": "NotePayloadFree", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1d93bb514966d95473050685540b0cfc0b08dd6b83dacc5236ba02c5ffc6c91a" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2473__NotePayloadAddSegment.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2473:NotePayloadAddSegment", + "kind": "function", + "line": 2473, + "name": "NotePayloadAddSegment", + "node_type": "function", + "qualified_name": "NotePayloadAddSegment", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d806c53152f31e8e0b9256eb41e7448c99840856d9c53088745b1304b6161a55" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2533__NotePayloadGetSegment.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2533:NotePayloadGetSegment", + "kind": "function", + "line": 2533, + "name": "NotePayloadGetSegment", + "node_type": "function", + "qualified_name": "NotePayloadGetSegment", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ef833299ab79fe97c3711d5d9cb4ff13be2a937543c9eab076d9843d4a642684" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2555__NotePayloadFindSegment.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2555:NotePayloadFindSegment", + "kind": "function", + "line": 2555, + "name": "NotePayloadFindSegment", + "node_type": "function", + "qualified_name": "NotePayloadFindSegment", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7a1c0f5cce93028974b15327cbc72d876f61f9a67c41ac24e94b4f18d69c5def" + }, + { + "artifact": "artifacts/functions/n_helpers_c__L2587__NoteTurboIO.md", + "extraction_method": "regex-c-function", + "file": "n_helpers.c", + "id": "function:n_helpers.c:2587:NoteTurboIO", + "kind": "function", + "line": 2587, + "name": "NoteTurboIO", + "node_type": "function", + "qualified_name": "NoteTurboIO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b5e6f07cc912fdadaee88af9a8fed487098266c52fe1242a8a4679b455a62ce9" + }, + { + "artifact": "artifacts/macros/n_hooks_c__L33__NOTE_C_SHOW_MALLOC.md", + "extraction_method": "regex-c-macro", + "file": "n_hooks.c", + "id": "macro:n_hooks.c:33:NOTE_C_SHOW_MALLOC", + "kind": "macro", + "line": 33, + "name": "NOTE_C_SHOW_MALLOC", + "node_type": "macro", + "qualified_name": "NOTE_C_SHOW_MALLOC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a9ea73f9301ac46ec1612cf3b89e9a8519eff70cbe42011c69b3b7247a83868a" + }, + { + "artifact": "artifacts/types/n_hooks_c__L190__nNoteResetFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:190:nNoteResetFn", + "kind": "typedef", + "line": 190, + "name": "nNoteResetFn", + "node_type": "typedef", + "qualified_name": "nNoteResetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "da5b29ee033e5b779d3fb4d462c88eff084ffc8a2831929731b351ab8253a2b4" + }, + { + "artifact": "artifacts/types/n_hooks_c__L191__nTransactionFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:191:nTransactionFn", + "kind": "typedef", + "line": 191, + "name": "nTransactionFn", + "node_type": "typedef", + "qualified_name": "nTransactionFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cc5f6b44d05677a42074db0f7d07cabd42bc68db703f6163bfae05c16b9b7346" + }, + { + "artifact": "artifacts/types/n_hooks_c__L192__nReceiveFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:192:nReceiveFn", + "kind": "typedef", + "line": 192, + "name": "nReceiveFn", + "node_type": "typedef", + "qualified_name": "nReceiveFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1cb9a43f9e33ea2079e91b7ee05d19ad83599b0506745fa301861878badea83e" + }, + { + "artifact": "artifacts/types/n_hooks_c__L193__nTransmitFn.md", + "extraction_method": "regex-c-typedef", + "file": "n_hooks.c", + "id": "typedef:n_hooks.c:193:nTransmitFn", + "kind": "typedef", + "line": 193, + "name": "nTransmitFn", + "node_type": "typedef", + "qualified_name": "nTransmitFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "18cfd81334834def1a401861a83e0f4f3dfbce92691116539f98d70b096ba313" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L209__NoteGetActiveInterface.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:209:NoteGetActiveInterface", + "kind": "function", + "line": 209, + "name": "NoteGetActiveInterface", + "node_type": "function", + "qualified_name": "NoteGetActiveInterface", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "278e72a0169a7a5755c4b9dd29a005d33e1ecc6543fea49350d1044878f6a589" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L214__noteSetActiveInterface.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:214:_noteSetActiveInterface", + "kind": "function", + "line": 214, + "name": "_noteSetActiveInterface", + "node_type": "function", + "qualified_name": "_noteSetActiveInterface", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "36acf75dbd24bb44933737b378ff7f5f25d90cad53dad8b01da2762afb3ade95" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L241__NoteSetActiveInterface.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:241:NoteSetActiveInterface", + "kind": "function", + "line": 241, + "name": "NoteSetActiveInterface", + "node_type": "function", + "qualified_name": "NoteSetActiveInterface", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "baee90a7c94b1aff05eda09600e1c561a54a025bcf3e7b5d0fd901e74533d8e3" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L248__NoteSetFnDefault.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:248:NoteSetFnDefault", + "kind": "function", + "line": 248, + "name": "NoteSetFnDefault", + "node_type": "function", + "qualified_name": "NoteSetFnDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a70bc495e934aae506096d73bc1d0d2242713607f990b34278856371ea0a22db" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L266__NoteSetFn.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:266:NoteSetFn", + "kind": "function", + "line": 266, + "name": "NoteSetFn", + "node_type": "function", + "qualified_name": "NoteSetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f93cbafcf2c85f109bd046860327c3d906db613108ab6a15e0d380773cff0fef" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L285__NoteSetFnHeartbeat.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:285:NoteSetFnHeartbeat", + "kind": "function", + "line": 285, + "name": "NoteSetFnHeartbeat", + "node_type": "function", + "qualified_name": "NoteSetFnHeartbeat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1de2d31a7882facacf043e18fb57789972e1c982eef70e42e6d5d07f446b013b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L294__NoteSetFnDebugOutput.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:294:NoteSetFnDebugOutput", + "kind": "function", + "line": 294, + "name": "NoteSetFnDebugOutput", + "node_type": "function", + "qualified_name": "NoteSetFnDebugOutput", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bd694744813c88f0d0161808445fc30bb2aea327f42c674df78085926290496d" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L308__noteIsDebugOutputActive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:308:_noteIsDebugOutputActive", + "kind": "function", + "line": 308, + "name": "_noteIsDebugOutputActive", + "node_type": "function", + "qualified_name": "_noteIsDebugOutputActive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e84fedcf5a97a43ee6c8e65ae01a8500d45515e16df83e15140c3c54cbc9b4a8" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L313__NoteSetFnTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:313:NoteSetFnTransaction", + "kind": "function", + "line": 313, + "name": "NoteSetFnTransaction", + "node_type": "function", + "qualified_name": "NoteSetFnTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6560b78273cba570265b0160ca4be0e3f60ac23c86b98a496366b07e26768e37" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L321__NoteSetFnMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:321:NoteSetFnMutex", + "kind": "function", + "line": 321, + "name": "NoteSetFnMutex", + "node_type": "function", + "qualified_name": "NoteSetFnMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5e060c55d80e2a3d1486a4e3f48c1a15003779e008b91b9dcc375b3aac3958ac" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L329__NoteSetFnI2CMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:329:NoteSetFnI2CMutex", + "kind": "function", + "line": 329, + "name": "NoteSetFnI2CMutex", + "node_type": "function", + "qualified_name": "NoteSetFnI2CMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3d9dcd6501e053e99b8e8ed3f674b88ce156540458cbba378470a5ab58721284" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L335__NoteSetFnNoteMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:335:NoteSetFnNoteMutex", + "kind": "function", + "line": 335, + "name": "NoteSetFnNoteMutex", + "node_type": "function", + "qualified_name": "NoteSetFnNoteMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8ae71319f7d5b8a84e184c36b7a80f5047820f4300c0281c0f6954e3fccc2253" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L341__NoteSetFnSerial.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:341:NoteSetFnSerial", + "kind": "function", + "line": 341, + "name": "NoteSetFnSerial", + "node_type": "function", + "qualified_name": "NoteSetFnSerial", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c9b4ec658b0791b8441b4052f1a0bc70effcf513b9786fb6db467c4eea59d246" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L356__NoteSetFnSerialDefault.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:356:NoteSetFnSerialDefault", + "kind": "function", + "line": 356, + "name": "NoteSetFnSerialDefault", + "node_type": "function", + "qualified_name": "NoteSetFnSerialDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dfba6163158f3e32b1219f02ed4de46c824481ecc55afb922a2ae18756e6f91b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L381__NoteSetFnI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:381:NoteSetFnI2C", + "kind": "function", + "line": 381, + "name": "NoteSetFnI2C", + "node_type": "function", + "qualified_name": "NoteSetFnI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7beda9b3760d08063f63800fd5bf510a244b293547bd9e7eb916c5794476b32f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L399__NoteSetFnI2CDefault.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:399:NoteSetFnI2CDefault", + "kind": "function", + "line": 399, + "name": "NoteSetFnI2CDefault", + "node_type": "function", + "qualified_name": "NoteSetFnI2CDefault", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "28278f3a46e33f89578a3725efe03c9843a6a063cfbcb0e0d0330cdcf9e8afaf" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L433__NoteSetFnDisabled.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:433:NoteSetFnDisabled", + "kind": "function", + "line": 433, + "name": "NoteSetFnDisabled", + "node_type": "function", + "qualified_name": "NoteSetFnDisabled", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c66a6bd70ddf2fda39df5f7c30a5d417cacacb299716ba30059eddd97d7686a7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L444__NoteSetLogLevel.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:444:NoteSetLogLevel", + "kind": "function", + "line": 444, + "name": "NoteSetLogLevel", + "node_type": "function", + "qualified_name": "NoteSetLogLevel", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "58061ba1d76911dd0824149046d4ea654a67246f0c8b8785d76b67179d86a879" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L453__NoteDebugIntln.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:453:NoteDebugIntln", + "kind": "function", + "line": 453, + "name": "NoteDebugIntln", + "node_type": "function", + "qualified_name": "NoteDebugIntln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "717d5179781ee714852f55e60a4abfec56b4f26bdb9240343872179c9165a496" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L464__NoteDebugln.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:464:NoteDebugln", + "kind": "function", + "line": 464, + "name": "NoteDebugln", + "node_type": "function", + "qualified_name": "NoteDebugln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5244cb7321c62846c178705b65f49ecb0ccf59da347cd9f4bd10bbc9fa484552" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L474__NoteDebug.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:474:NoteDebug", + "kind": "function", + "line": 474, + "name": "NoteDebug", + "node_type": "function", + "qualified_name": "NoteDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b60538a44b6c4dd065468e0e93aadd42279a25a7ad69cc4cd8a1a38fcd574193" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L485__NoteDebugWithLevel.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:485:NoteDebugWithLevel", + "kind": "function", + "line": 485, + "name": "NoteDebugWithLevel", + "node_type": "function", + "qualified_name": "NoteDebugWithLevel", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e7bbdbc4b5e1eb090dc23eefaf6a2aed106d45a17b8899b225ff106c7e480aab" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L499__NoteDebugWithLevelLn.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:499:NoteDebugWithLevelLn", + "kind": "function", + "line": 499, + "name": "NoteDebugWithLevelLn", + "node_type": "function", + "qualified_name": "NoteDebugWithLevelLn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a35b1bdf36f075329b827c691322532340ca0826cb7b34a068b168274a7168b7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L520__NoteGetMs.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:520:NoteGetMs", + "kind": "function", + "line": 520, + "name": "NoteGetMs", + "node_type": "function", + "qualified_name": "NoteGetMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dad05a36c9cb00802f859c34b40d99c1c40e9ff568fc14d9e3f7d7e5a575aae7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L528__NoteDelayMs.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:528:NoteDelayMs", + "kind": "function", + "line": 528, + "name": "NoteDelayMs", + "node_type": "function", + "qualified_name": "NoteDelayMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "469fca484f29fc7b9d54f46fa716b6eaf9b50c2a9d0bcb10a2dcacc81aab6b4a" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L544__n_htoa32.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:544:_n_htoa32", + "kind": "function", + "line": 544, + "name": "_n_htoa32", + "node_type": "function", + "qualified_name": "_n_htoa32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a2a50e0e50be4458a85f2ee3f33470c94f225a1bf0bf5bf8bffa2d9b796faa9b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L561__n_ptoa32.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:561:_n_ptoa32", + "kind": "function", + "line": 561, + "name": "_n_ptoa32", + "node_type": "function", + "qualified_name": "_n_ptoa32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "3fb30734c29f680ff7c272e837440b7472a82cc82a11c85f05880fde4c283173" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L569__NoteMalloc.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:569:NoteMalloc", + "kind": "function", + "line": 569, + "name": "NoteMalloc", + "node_type": "function", + "qualified_name": "NoteMalloc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ec1ec05a8ba401477cf1e01d943001fc16603de075c03895ac675e13e403d768" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L595__NoteFree.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:595:NoteFree", + "kind": "function", + "line": 595, + "name": "NoteFree", + "node_type": "function", + "qualified_name": "NoteFree", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "54757ae07c633adc37383d4878d05de45e5a85833fed68e68ee4f42541206b11" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L616__NoteLockI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:616:NoteLockI2C", + "kind": "function", + "line": 616, + "name": "NoteLockI2C", + "node_type": "function", + "qualified_name": "NoteLockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8f3b5623acdf84b7127a0d00ae4edc4d5a4e8d2535f00e3b526923729cb07551" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L628__NoteUnlockI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:628:NoteUnlockI2C", + "kind": "function", + "line": 628, + "name": "NoteUnlockI2C", + "node_type": "function", + "qualified_name": "NoteUnlockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "332ac94ab01a177e3e86198b0de45d6c71661451b31fa563870c5a34bb31b8ee" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L643__noteHeartbeat.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:643:_noteHeartbeat", + "kind": "function", + "line": 643, + "name": "_noteHeartbeat", + "node_type": "function", + "qualified_name": "_noteHeartbeat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8bcc08ec3db207654a28929197e4a830b23248754cc4a971de5beeefa1b44642" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L657__noteLockNote.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:657:_noteLockNote", + "kind": "function", + "line": 657, + "name": "_noteLockNote", + "node_type": "function", + "qualified_name": "_noteLockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bd6419bbf4169e885b9bee593a1f8fb5f33b7fde74dcf61ea7fe9df34bb3645b" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L669__noteUnlockNote.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:669:_noteUnlockNote", + "kind": "function", + "line": 669, + "name": "_noteUnlockNote", + "node_type": "function", + "qualified_name": "_noteUnlockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b7f648667b1d8899ec0599b9fef73ee910c72bd3284ba9af385633f2df5f52db" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L681__noteTransactionStart.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:681:_noteTransactionStart", + "kind": "function", + "line": 681, + "name": "_noteTransactionStart", + "node_type": "function", + "qualified_name": "_noteTransactionStart", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4fc2365ad2e2e58ad3a6973119a73ece656463d1f02a620bb0737e7fd9790321" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L694__noteTransactionStop.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:694:_noteTransactionStop", + "kind": "function", + "line": 694, + "name": "_noteTransactionStop", + "node_type": "function", + "qualified_name": "_noteTransactionStop", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4d79f90763df0c8348532938db45b0e40466eb4d1e7a3d2104eb78083ebd978f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L701__NoteGetFnDebugOutput.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:701:NoteGetFnDebugOutput", + "kind": "function", + "line": 701, + "name": "NoteGetFnDebugOutput", + "node_type": "function", + "qualified_name": "NoteGetFnDebugOutput", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e1d0d57fb26ba3a1f10d9e5bb3e08877a0baf9b260839c5759b77135fea51e24" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L714__NoteGetFnHeartbeat.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:714:NoteGetFnHeartbeat", + "kind": "function", + "line": 714, + "name": "NoteGetFnHeartbeat", + "node_type": "function", + "qualified_name": "NoteGetFnHeartbeat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "29305308fb375389e4b2187c70b6a1cd66a816e019052fc371344306217e33a8" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L725__NoteGetFnTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:725:NoteGetFnTransaction", + "kind": "function", + "line": 725, + "name": "NoteGetFnTransaction", + "node_type": "function", + "qualified_name": "NoteGetFnTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f59bfc1cb5f834afa16faf23c19eca4d41b0e37dd6419ecd6c65d8a039d2cdb7" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L737__NoteGetFnMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:737:NoteGetFnMutex", + "kind": "function", + "line": 737, + "name": "NoteGetFnMutex", + "node_type": "function", + "qualified_name": "NoteGetFnMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c39981258f309c3e076184fd8b2614dd96112cc0c43f0169311a5496991011ae" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L754__NoteGetFnI2CMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:754:NoteGetFnI2CMutex", + "kind": "function", + "line": 754, + "name": "NoteGetFnI2CMutex", + "node_type": "function", + "qualified_name": "NoteGetFnI2CMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "64681ab2a930aa123f168a90988b8b83d4c8e0f885d9d68e9bfe81d4cba3be8d" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L764__NoteGetFnNoteMutex.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:764:NoteGetFnNoteMutex", + "kind": "function", + "line": 764, + "name": "NoteGetFnNoteMutex", + "node_type": "function", + "qualified_name": "NoteGetFnNoteMutex", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f82b079b81a4e7549e6156233aae5ce2d5141024da3e94bac1ea0eb84be7a588" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L774__NoteGetFn.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:774:NoteGetFn", + "kind": "function", + "line": 774, + "name": "NoteGetFn", + "node_type": "function", + "qualified_name": "NoteGetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0d94bc4324a9db44d01983e99ebaf2f43958987d5f71c3af345f7b2d78e4f476" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L793__NoteGetFnSerial.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:793:NoteGetFnSerial", + "kind": "function", + "line": 793, + "name": "NoteGetFnSerial", + "node_type": "function", + "qualified_name": "NoteGetFnSerial", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a78c8cc840b1e71a7541877135d10686e74e7a93d96c5a65d4d8ba323e435514" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L812__NoteGetFnI2C.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:812:NoteGetFnI2C", + "kind": "function", + "line": 812, + "name": "NoteGetFnI2C", + "node_type": "function", + "qualified_name": "NoteGetFnI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8adc392989986487e5cb6973d9373f28c132a49344104cead2c09516368f6e69" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L835__NoteGetI2CAddress.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:835:NoteGetI2CAddress", + "kind": "function", + "line": 835, + "name": "NoteGetI2CAddress", + "node_type": "function", + "qualified_name": "NoteGetI2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dacf14df6ccf05413971b164bc0190027c52158d4135f1a0b6d3862f092a588e" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L842__NoteGetI2CMtu.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:842:NoteGetI2CMtu", + "kind": "function", + "line": 842, + "name": "NoteGetI2CMtu", + "node_type": "function", + "qualified_name": "NoteGetI2CMtu", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fadb06979fb61e20ba78ba708f53b68fdbd2cddf1bcc6d39abb016ca52213d66" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L855__noteSerialReset.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:855:_noteSerialReset", + "kind": "function", + "line": 855, + "name": "_noteSerialReset", + "node_type": "function", + "qualified_name": "_noteSerialReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8ed25217eec441650d57be534c8c39784c7d19ef75bcd43f85650db5305f785f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L871__noteSerialTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:871:_noteSerialTransmit", + "kind": "function", + "line": 871, + "name": "_noteSerialTransmit", + "node_type": "function", + "qualified_name": "_noteSerialTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c479425a62ea51f45133d32544b875025cd1df85e1256d22c65aaf4aec810c3f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L887__noteSerialAvailable.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:887:_noteSerialAvailable", + "kind": "function", + "line": 887, + "name": "_noteSerialAvailable", + "node_type": "function", + "qualified_name": "_noteSerialAvailable", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ce77122fb3471a16d30cda98c9fc68af1051e2e237ed86d09782401f14a80d49" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L902__noteSerialReceive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:902:_noteSerialReceive", + "kind": "function", + "line": 902, + "name": "_noteSerialReceive", + "node_type": "function", + "qualified_name": "_noteSerialReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1c70d1e4021e87a3c5074530316ab1ea3e717af3184b021c11eb4dee09b31d4f" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L916__noteI2CReset.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:916:_noteI2CReset", + "kind": "function", + "line": 916, + "name": "_noteI2CReset", + "node_type": "function", + "qualified_name": "_noteI2CReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "eaae70cf8c79f2935bd383f1961067b57b54ffad474e883f08f579d21fa5afe3" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L934__noteI2CTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:934:_noteI2CTransmit", + "kind": "function", + "line": 934, + "name": "_noteI2CTransmit", + "node_type": "function", + "qualified_name": "_noteI2CTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bbc3a0235e15240699e8963db7bcf9e2787ebca12f20b8d4f1f4a8e5ecaec691" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L955__noteI2CReceive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:955:_noteI2CReceive", + "kind": "function", + "line": 955, + "name": "_noteI2CReceive", + "node_type": "function", + "qualified_name": "_noteI2CReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "82fe2c33a4cfe79ccac01dc319b4f6dee3ea1c95a5774249470071825d22f03a" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L969__NoteI2CAddress.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:969:NoteI2CAddress", + "kind": "function", + "line": 969, + "name": "NoteI2CAddress", + "node_type": "function", + "qualified_name": "NoteI2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2d6e1e9c28e39bb2499aa2cbbc5a7defddd420153a2300621927f75957984e95" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L977__NoteSetI2CAddress.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:977:NoteSetI2CAddress", + "kind": "function", + "line": 977, + "name": "NoteSetI2CAddress", + "node_type": "function", + "qualified_name": "NoteSetI2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "357e0b3a366e795b1cf5d468c546d57cefe8cff317ad573a38909bea88b2667d" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L982__NoteSetI2CMtu.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:982:NoteSetI2CMtu", + "kind": "function", + "line": 982, + "name": "NoteSetI2CMtu", + "node_type": "function", + "qualified_name": "NoteSetI2CMtu", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f850b73a20697686eb370f44f6f9c0c728d396cead683b02099ad8398bf2f762" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L994__NoteI2CMax.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:994:NoteI2CMax", + "kind": "function", + "line": 994, + "name": "NoteI2CMax", + "node_type": "function", + "qualified_name": "NoteI2CMax", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b6b0486c98fc5903bc9ab9e1e85faa1d641c4d322355cd52acb4bc3a0b0db0f2" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1015__noteHardReset.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1015:_noteHardReset", + "kind": "function", + "line": 1015, + "name": "_noteHardReset", + "node_type": "function", + "qualified_name": "_noteHardReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "396527a0ca47e79766de884a8994312462b066cd27237e4650dc71287fa3f3ab" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1042__noteJSONTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1042:_noteJSONTransaction", + "kind": "function", + "line": 1042, + "name": "_noteJSONTransaction", + "node_type": "function", + "qualified_name": "_noteJSONTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "756ec9051f615d420a10a683ad9f4600e28efb05e72654e54ef6828b5caf15b9" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1068__noteChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1068:_noteChunkedReceive", + "kind": "function", + "line": 1068, + "name": "_noteChunkedReceive", + "node_type": "function", + "qualified_name": "_noteChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "02c83c65c06ae3d54d2e90e3e352b256d62aeca93b6a09203e9b77578b39f562" + }, + { + "artifact": "artifacts/functions/n_hooks_c__L1087__noteChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_hooks.c", + "id": "function:n_hooks.c:1087:_noteChunkedTransmit", + "kind": "function", + "line": 1087, + "name": "_noteChunkedTransmit", + "node_type": "function", + "qualified_name": "_noteChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07eb4f86368e882a037ffddf6d79153d215d2a2bcb6699b7b5a5f97631a4233c" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L30__delayIO.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:30:_delayIO", + "kind": "function", + "line": 30, + "name": "_delayIO", + "node_type": "function", + "qualified_name": "_delayIO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9ddbbaeffeff2e3e64937e20b60433c21f0ed0312579ea4f70e7adc554ba79c4" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L48__i2cNoteQueryLength.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:48:_i2cNoteQueryLength", + "kind": "function", + "line": 48, + "name": "_i2cNoteQueryLength", + "node_type": "function", + "qualified_name": "_i2cNoteQueryLength", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "da3ff920dd554cfe3bfaf4a4b99503c69ab30d960359522a7e1b523be0c77909" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L87__i2cNoteTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:87:_i2cNoteTransaction", + "kind": "function", + "line": 87, + "name": "_i2cNoteTransaction", + "node_type": "function", + "qualified_name": "_i2cNoteTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e1ec6b2a8061d34f25e332c4429aa5b7ca21a2dc171c0f65527a2f7e31147194" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L195__i2cNoteReset.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:195:_i2cNoteReset", + "kind": "function", + "line": 195, + "name": "_i2cNoteReset", + "node_type": "function", + "qualified_name": "_i2cNoteReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "dd8e15bc591ba875466f7d30cfa9bc57a62caf1e50c54ce9c2917f026e2a9417" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L338__i2cNoteChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:338:_i2cNoteChunkedReceive", + "kind": "function", + "line": 338, + "name": "_i2cNoteChunkedReceive", + "node_type": "function", + "qualified_name": "_i2cNoteChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "82c0d43ba6dbdec828caf6a5fc33aa04f7a273502eb6f08533117895f42f0e6b" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L365__i2cChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:365:_i2cChunkedReceive", + "kind": "function", + "line": 365, + "name": "_i2cChunkedReceive", + "node_type": "function", + "qualified_name": "_i2cChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d470112e426f77a14be0204f0d1e8db7b946353c4deb3efc07f2453697b1c1ae" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L456__i2cNoteChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:456:_i2cNoteChunkedTransmit", + "kind": "function", + "line": 456, + "name": "_i2cNoteChunkedTransmit", + "node_type": "function", + "qualified_name": "_i2cNoteChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a46b260b8eefc642f2f99cf4cef83d49e52699a76b52f130561a1f238e14e622" + }, + { + "artifact": "artifacts/functions/n_i2c_c__L475__i2cChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_i2c.c", + "id": "function:n_i2c.c:475:_i2cChunkedTransmit", + "kind": "function", + "line": 475, + "name": "_i2cChunkedTransmit", + "node_type": "function", + "qualified_name": "_i2cChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "462bfe6d295b432b5082413623acfeb242d1c831e8d892014018547de132d4e0" + }, + { + "artifact": "artifacts/macros/n_lib_h__L35__NOTE_C_STATIC.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:35:NOTE_C_STATIC", + "kind": "macro", + "line": 35, + "name": "NOTE_C_STATIC", + "node_type": "macro", + "qualified_name": "NOTE_C_STATIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f5d2856639e8ec113cad5ec5525db68d73f4e94112a35465454d2c7e0f245183" + }, + { + "artifact": "artifacts/macros/n_lib_h__L44__CARD_INTER_TRANSACTION_TIMEOUT_SEC.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:44:CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "kind": "macro", + "line": 44, + "name": "CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "node_type": "macro", + "qualified_name": "CARD_INTER_TRANSACTION_TIMEOUT_SEC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "15f1d9cb7798a8504d2e19c107f5d4eaeeb5b46a92f2add3bfb8ec2a12020a73" + }, + { + "artifact": "artifacts/macros/n_lib_h__L45__CARD_INTRA_TRANSACTION_TIMEOUT_SEC.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:45:CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "kind": "macro", + "line": 45, + "name": "CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "node_type": "macro", + "qualified_name": "CARD_INTRA_TRANSACTION_TIMEOUT_SEC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0d046b9c2c5774139c74fb43996207ffee832aae1a783efc0cb7b0058cf7fa6f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L56__CARD_REQUEST_I2C_SEGMENT_MAX_LEN.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:56:CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "kind": "macro", + "line": 56, + "name": "CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_SEGMENT_MAX_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9f84c738d63473fee2ddb4864df92aa5a64a9fd17c4bcc562a9c64c0165ce982" + }, + { + "artifact": "artifacts/macros/n_lib_h__L62__CARD_REQUEST_I2C_SEGMENT_DELAY_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:62:CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "kind": "macro", + "line": 62, + "name": "CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_SEGMENT_DELAY_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9dac168bd36348ae8916b11cfb263d0d9c9186001cd4649bf382d1d2798d0f00" + }, + { + "artifact": "artifacts/macros/n_lib_h__L68__CARD_REQUEST_I2C_CHUNK_DELAY_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:68:CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "kind": "macro", + "line": 68, + "name": "CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_CHUNK_DELAY_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "81fb1074454b4cf614a1fc7694d7971517428548022cf2beb01ab4586996ee3e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L74__CARD_REQUEST_I2C_NACK_WAIT_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:74:CARD_REQUEST_I2C_NACK_WAIT_MS", + "kind": "macro", + "line": 74, + "name": "CARD_REQUEST_I2C_NACK_WAIT_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_I2C_NACK_WAIT_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d2dae93c7002c040f99aad9b0c060826eead567884f0305caf8502f746a353aa" + }, + { + "artifact": "artifacts/macros/n_lib_h__L80__CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:80:CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "kind": "macro", + "line": 80, + "name": "CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_SERIAL_SEGMENT_MAX_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8acadee05f905342307de9f95c7f3605f5a2fbbad1afa5caa3e0ebe961c3db31" + }, + { + "artifact": "artifacts/macros/n_lib_h__L86__CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:86:CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "kind": "macro", + "line": 86, + "name": "CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_SERIAL_SEGMENT_DELAY_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "000efdee35a55d25c6aae820ba3da9b4a3fa86f6df20151ece1292c4e0797e41" + }, + { + "artifact": "artifacts/macros/n_lib_h__L92__CARD_RESET_DRAIN_MS.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:92:CARD_RESET_DRAIN_MS", + "kind": "macro", + "line": 92, + "name": "CARD_RESET_DRAIN_MS", + "node_type": "macro", + "qualified_name": "CARD_RESET_DRAIN_MS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f7dcec1371ce1ecd50cd00d395bd8a3088dad29193a708103491e80c40d554b5" + }, + { + "artifact": "artifacts/macros/n_lib_h__L98__CARD_REQUEST_RETRIES_ALLOWED.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:98:CARD_REQUEST_RETRIES_ALLOWED", + "kind": "macro", + "line": 98, + "name": "CARD_REQUEST_RETRIES_ALLOWED", + "node_type": "macro", + "qualified_name": "CARD_REQUEST_RETRIES_ALLOWED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f6ca02c0ab13cdd3efe649995e4cc82d92a9c68a60a2c90806bed41aa7b65f9f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L104__CARD_RESET_SYNC_RETRIES.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:104:CARD_RESET_SYNC_RETRIES", + "kind": "macro", + "line": 104, + "name": "CARD_RESET_SYNC_RETRIES", + "node_type": "macro", + "qualified_name": "CARD_RESET_SYNC_RETRIES", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "245b0163b50ae79b02047d754f74a8f74466eb05f2d6abd2fb2554b5b20461c2" + }, + { + "artifact": "artifacts/macros/n_lib_h__L111__ALLOC_CHUNK.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:111:ALLOC_CHUNK", + "kind": "macro", + "line": 111, + "name": "ALLOC_CHUNK", + "node_type": "macro", + "qualified_name": "ALLOC_CHUNK", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "24f834a3cee4357f79cc7ee4fcad18b43487038f806049eb873b4316bace6c53" + }, + { + "artifact": "artifacts/macros/n_lib_h__L113__ALLOC_CHUNK.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:113:ALLOC_CHUNK", + "kind": "macro", + "line": 113, + "name": "ALLOC_CHUNK", + "node_type": "macro", + "qualified_name": "ALLOC_CHUNK", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "62d18efdbd5d07f48bbe499b172a0348545aacf54a6b837452aba4a53a957c15" + }, + { + "artifact": "artifacts/macros/n_lib_h__L174__c_bad_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:174:c_bad_len", + "kind": "macro", + "line": 174, + "name": "c_bad_len", + "node_type": "macro", + "qualified_name": "c_bad_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "16c80d195e6097e7ab7919e522d75e900a6cce7ba98b5db1d1cef06a3ca8cda4" + }, + { + "artifact": "artifacts/macros/n_lib_h__L177__c_badbinerr_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:177:c_badbinerr_len", + "kind": "macro", + "line": 177, + "name": "c_badbinerr_len", + "node_type": "macro", + "qualified_name": "c_badbinerr_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "800f6abbb370b67c330bdc03c38a2ebbda8cdbb713c3cd6fe99df7ca4a62a9bc" + }, + { + "artifact": "artifacts/macros/n_lib_h__L180__c_cmd_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:180:c_cmd_len", + "kind": "macro", + "line": 180, + "name": "c_cmd_len", + "node_type": "macro", + "qualified_name": "c_cmd_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "506560584ec84eaab3d21f773db8d9fbebf732bf3e8edbc9368add3a0156f1bd" + }, + { + "artifact": "artifacts/macros/n_lib_h__L183__c_err_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:183:c_err_len", + "kind": "macro", + "line": 183, + "name": "c_err_len", + "node_type": "macro", + "qualified_name": "c_err_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "26c6d0445dedf7f486cd0969ca4eb9e9c6a867dac020e502ed4b1faf39c14882" + }, + { + "artifact": "artifacts/macros/n_lib_h__L186__c_false_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:186:c_false_len", + "kind": "macro", + "line": 186, + "name": "c_false_len", + "node_type": "macro", + "qualified_name": "c_false_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2bb370aa6955e98800c532963968955de03d4b62a383ca8aa75642522f328e22" + }, + { + "artifact": "artifacts/macros/n_lib_h__L189__c_heartbeat_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:189:c_heartbeat_len", + "kind": "macro", + "line": 189, + "name": "c_heartbeat_len", + "node_type": "macro", + "qualified_name": "c_heartbeat_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ff014097217ec4149b4fc0790bbdc12ef352227f3ab43d38b74ea769e67197d9" + }, + { + "artifact": "artifacts/macros/n_lib_h__L192__c_iobad_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:192:c_iobad_len", + "kind": "macro", + "line": 192, + "name": "c_iobad_len", + "node_type": "macro", + "qualified_name": "c_iobad_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d27db9346207451810dc47551564dfc4db85b1fc0bb129efa59fc71d35978a84" + }, + { + "artifact": "artifacts/macros/n_lib_h__L195__c_ioerr_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:195:c_ioerr_len", + "kind": "macro", + "line": 195, + "name": "c_ioerr_len", + "node_type": "macro", + "qualified_name": "c_ioerr_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "0e5c97c03a023c07d8a4c9d5061e21ac9ead1cb61b4445e56e07a855ff46ec03" + }, + { + "artifact": "artifacts/macros/n_lib_h__L198__c_iotimeout_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:198:c_iotimeout_len", + "kind": "macro", + "line": 198, + "name": "c_iotimeout_len", + "node_type": "macro", + "qualified_name": "c_iotimeout_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c2a9822c2b62f394d85910de30d2041b7c1ac1d482169e47e5e45efd7b08d3ef" + }, + { + "artifact": "artifacts/macros/n_lib_h__L201__c_mem_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:201:c_mem_len", + "kind": "macro", + "line": 201, + "name": "c_mem_len", + "node_type": "macro", + "qualified_name": "c_mem_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ad6f968d08b8171a3a1128dc51bd387a5f1c4d04f8c5c06c82a0f6b6d20a3d13" + }, + { + "artifact": "artifacts/macros/n_lib_h__L204__c_newline_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:204:c_newline_len", + "kind": "macro", + "line": 204, + "name": "c_newline_len", + "node_type": "macro", + "qualified_name": "c_newline_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "96c67ec745acdfd250820de2ca39052287eb042fe79c8f4b963f1259fbe1b3b9" + }, + { + "artifact": "artifacts/macros/n_lib_h__L207__c_null_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:207:c_null_len", + "kind": "macro", + "line": 207, + "name": "c_null_len", + "node_type": "macro", + "qualified_name": "c_null_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c3e67390df214a2b56ba03cd691a04330726cf3527135ac7d77ea8b1fdfe3ced" + }, + { + "artifact": "artifacts/macros/n_lib_h__L210__c_nullstring_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:210:c_nullstring_len", + "kind": "macro", + "line": 210, + "name": "c_nullstring_len", + "node_type": "macro", + "qualified_name": "c_nullstring_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "9f07b8eb9c875a0e13147836bf0f47c2de569f3073aed0619d8cbeb49426147b" + }, + { + "artifact": "artifacts/macros/n_lib_h__L213__c_req_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:213:c_req_len", + "kind": "macro", + "line": 213, + "name": "c_req_len", + "node_type": "macro", + "qualified_name": "c_req_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ae562eb5c586adadb7ba56afca18e4a9ccc0800d9fc231234dcab57a730cd941" + }, + { + "artifact": "artifacts/macros/n_lib_h__L216__c_status_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:216:c_status_len", + "kind": "macro", + "line": 216, + "name": "c_status_len", + "node_type": "macro", + "qualified_name": "c_status_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "696ae69f692da079065e6d23cf9e3ad0b377fc368075ebad1138a98da86ff2e5" + }, + { + "artifact": "artifacts/macros/n_lib_h__L219__c_true_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:219:c_true_len", + "kind": "macro", + "line": 219, + "name": "c_true_len", + "node_type": "macro", + "qualified_name": "c_true_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7690d4edbe2452c77ddc285266c1c674b0367051dea3221811b84bf6296cbd94" + }, + { + "artifact": "artifacts/macros/n_lib_h__L222__c_unsupported_len.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:222:c_unsupported_len", + "kind": "macro", + "line": 222, + "name": "c_unsupported_len", + "node_type": "macro", + "qualified_name": "c_unsupported_len", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1f7c4d5864d02ae4b615b6676c772ddb3d688709bad4eb9fa98aaaf9645c6b79" + }, + { + "artifact": "artifacts/macros/n_lib_h__L226__LockNote.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:226:_LockNote", + "kind": "macro", + "line": 226, + "name": "_LockNote", + "node_type": "macro", + "qualified_name": "_LockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "1e2a8ebe8c6a15e672fb7bf0222ffe8cdf44f70e2e5c317d4798d85e2509842f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L227__UnlockNote.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:227:_UnlockNote", + "kind": "macro", + "line": 227, + "name": "_UnlockNote", + "node_type": "macro", + "qualified_name": "_UnlockNote", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "61ee653e6433ee5f32d71206fcdf402b75c6c32353e60c241482e378b85d865f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L228__TransactionStart.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:228:_TransactionStart", + "kind": "macro", + "line": 228, + "name": "_TransactionStart", + "node_type": "macro", + "qualified_name": "_TransactionStart", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c56fc13405d9542a53ac9f146b41874674170990ac390f10b53424c64ea25392" + }, + { + "artifact": "artifacts/macros/n_lib_h__L229__TransactionStop.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:229:_TransactionStop", + "kind": "macro", + "line": 229, + "name": "_TransactionStop", + "node_type": "macro", + "qualified_name": "_TransactionStop", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6a5aa75e8a422cdfdf850054fdbf05e415f58090b1204bf594b294be698ba37f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L230__SerialReset.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:230:_SerialReset", + "kind": "macro", + "line": 230, + "name": "_SerialReset", + "node_type": "macro", + "qualified_name": "_SerialReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b4843590f007fc07b75955efadc2f67a533c1a2b8155271ce7148afae479ed8e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L231__SerialTransmit.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:231:_SerialTransmit", + "kind": "macro", + "line": 231, + "name": "_SerialTransmit", + "node_type": "macro", + "qualified_name": "_SerialTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "da31d9a4f7cb5ea6b823be4729225da84ef2ad4846724aadde6182d3951ed42e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L232__SerialAvailable.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:232:_SerialAvailable", + "kind": "macro", + "line": 232, + "name": "_SerialAvailable", + "node_type": "macro", + "qualified_name": "_SerialAvailable", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0037555fd9aa4a8c4d6fee497177c3eefff34ff2addd065176887a77cea289f7" + }, + { + "artifact": "artifacts/macros/n_lib_h__L233__SerialReceive.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:233:_SerialReceive", + "kind": "macro", + "line": 233, + "name": "_SerialReceive", + "node_type": "macro", + "qualified_name": "_SerialReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bf0f3be316d741f1d2be0282924d6895983752e35535900c20f3a3b7ac7c737d" + }, + { + "artifact": "artifacts/macros/n_lib_h__L234__I2CReset.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:234:_I2CReset", + "kind": "macro", + "line": 234, + "name": "_I2CReset", + "node_type": "macro", + "qualified_name": "_I2CReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "441c257524fcd126aa5dfc1486897bcaaf72871687a6689bffdcb17376cecd3e" + }, + { + "artifact": "artifacts/macros/n_lib_h__L235__I2CTransmit.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:235:_I2CTransmit", + "kind": "macro", + "line": 235, + "name": "_I2CTransmit", + "node_type": "macro", + "qualified_name": "_I2CTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6d097400a5d32482c0ad7d041b4118b05b11875e0ddd79f8c1d99a6395e45330" + }, + { + "artifact": "artifacts/macros/n_lib_h__L236__I2CReceive.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:236:_I2CReceive", + "kind": "macro", + "line": 236, + "name": "_I2CReceive", + "node_type": "macro", + "qualified_name": "_I2CReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "80706fef948ddca1fc51be6c33759ddcd2a25e836bfbe777a6811b9e48a314da" + }, + { + "artifact": "artifacts/macros/n_lib_h__L237__Reset.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:237:_Reset", + "kind": "macro", + "line": 237, + "name": "_Reset", + "node_type": "macro", + "qualified_name": "_Reset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f479881efb92c08c1ed4ec4a2ff3070cda65105ae48cb165022ec472edd38ba9" + }, + { + "artifact": "artifacts/macros/n_lib_h__L238__Transaction.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:238:_Transaction", + "kind": "macro", + "line": 238, + "name": "_Transaction", + "node_type": "macro", + "qualified_name": "_Transaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "17508fc0911734b4394a65692a199cd6ba30e4379fe67f1b810bd79192e3572a" + }, + { + "artifact": "artifacts/macros/n_lib_h__L239__ChunkedReceive.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:239:_ChunkedReceive", + "kind": "macro", + "line": 239, + "name": "_ChunkedReceive", + "node_type": "macro", + "qualified_name": "_ChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1b33c70533cb501d0a6ba6233b4864b7b439a2f3c60e06f7bd859b495dc26c42" + }, + { + "artifact": "artifacts/macros/n_lib_h__L240__ChunkedTransmit.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:240:_ChunkedTransmit", + "kind": "macro", + "line": 240, + "name": "_ChunkedTransmit", + "node_type": "macro", + "qualified_name": "_ChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "df22748554db7983d22fb4a07c97c113cd8608e564e77d70f3f1eaa6768b4e3f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L241__Malloc.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:241:_Malloc", + "kind": "macro", + "line": 241, + "name": "_Malloc", + "node_type": "macro", + "qualified_name": "_Malloc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "107dffb81511cebd7bf9e79902dad30010c8ad9d90869d4da26cfbc0ede6aa0c" + }, + { + "artifact": "artifacts/macros/n_lib_h__L242__Free.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:242:_Free", + "kind": "macro", + "line": 242, + "name": "_Free", + "node_type": "macro", + "qualified_name": "_Free", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "591931f3a085aee2394a44c794d496a55d59747388fc153b559620e3ed7b8585" + }, + { + "artifact": "artifacts/macros/n_lib_h__L243__GetMs.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:243:_GetMs", + "kind": "macro", + "line": 243, + "name": "_GetMs", + "node_type": "macro", + "qualified_name": "_GetMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "62e3f4ccf524f20092c32ce39f1728290d3df529eab03fc741f9cfc8ced1ba90" + }, + { + "artifact": "artifacts/macros/n_lib_h__L244__DelayMs.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:244:_DelayMs", + "kind": "macro", + "line": 244, + "name": "_DelayMs", + "node_type": "macro", + "qualified_name": "_DelayMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "61c6730767c5f2fb2b6cbf7727ae56481c72012dbbfa8eeb1c1e407a509c5780" + }, + { + "artifact": "artifacts/macros/n_lib_h__L245__LockI2C.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:245:_LockI2C", + "kind": "macro", + "line": 245, + "name": "_LockI2C", + "node_type": "macro", + "qualified_name": "_LockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "43efe6ce862052305997410211ede5570025f1af70c7864f5d3d68d055203d24" + }, + { + "artifact": "artifacts/macros/n_lib_h__L246__UnlockI2C.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:246:_UnlockI2C", + "kind": "macro", + "line": 246, + "name": "_UnlockI2C", + "node_type": "macro", + "qualified_name": "_UnlockI2C", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3f1a51206a68792bd4d1397a8b86ef9f076893659049397dc30f5bad2e6aa69f" + }, + { + "artifact": "artifacts/macros/n_lib_h__L247__I2CAddress.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:247:_I2CAddress", + "kind": "macro", + "line": 247, + "name": "_I2CAddress", + "node_type": "macro", + "qualified_name": "_I2CAddress", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2d7af9ffdfbf12b7f1790667d425253d5853bd180fb5233d361f3434c76170cc" + }, + { + "artifact": "artifacts/macros/n_lib_h__L248__I2CMax.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:248:_I2CMax", + "kind": "macro", + "line": 248, + "name": "_I2CMax", + "node_type": "macro", + "qualified_name": "_I2CMax", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "98369925253035611bcab30586348919f2db900b5b7895c01d187a955146430b" + }, + { + "artifact": "artifacts/macros/n_lib_h__L256__Debug.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:256:_Debug", + "kind": "macro", + "line": 256, + "name": "_Debug", + "node_type": "macro", + "qualified_name": "_Debug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4c2ab5348641aba54d1a5106f7e4caf6358da989ae48cc5fb79f9de0111291d" + }, + { + "artifact": "artifacts/macros/n_lib_h__L257__Debugln.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:257:_Debugln", + "kind": "macro", + "line": 257, + "name": "_Debugln", + "node_type": "macro", + "qualified_name": "_Debugln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2b9cf7cf93917535edd6a7078fb004e55c1a87ac7196b6ba761020109da16a1a" + }, + { + "artifact": "artifacts/macros/n_lib_h__L258__DebugIntln.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:258:_DebugIntln", + "kind": "macro", + "line": 258, + "name": "_DebugIntln", + "node_type": "macro", + "qualified_name": "_DebugIntln", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e78ec23f7b126a6c848e7ea856e7a7bc0efb5b8855b6619d23699c0e7a48193a" + }, + { + "artifact": "artifacts/macros/n_lib_h__L259__DebugWithLevel.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:259:_DebugWithLevel", + "kind": "macro", + "line": 259, + "name": "_DebugWithLevel", + "node_type": "macro", + "qualified_name": "_DebugWithLevel", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b1ce8220f4310c4dcf3817ab66599f2951e83a227bda495ffc61d58e5e63ba55" + }, + { + "artifact": "artifacts/macros/n_lib_h__L260__DebugWithLevelLn.md", + "extraction_method": "regex-c-macro", + "file": "n_lib.h", + "id": "macro:n_lib.h:260:_DebugWithLevelLn", + "kind": "macro", + "line": 260, + "name": "_DebugWithLevelLn", + "node_type": "macro", + "qualified_name": "_DebugWithLevelLn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0291810f9457787a482319eca368ddd9e3a48b86e4390804750b2e301c5be7c5" + }, + { + "artifact": "artifacts/macros/n_md5_c__L187__F1.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:187:F1", + "kind": "macro", + "line": 187, + "name": "F1", + "node_type": "macro", + "qualified_name": "F1", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8b78b5fed35e43b9169ae5fad71a02de93d029c60a3b9d1616e443662b5e079f" + }, + { + "artifact": "artifacts/macros/n_md5_c__L188__F2.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:188:F2", + "kind": "macro", + "line": 188, + "name": "F2", + "node_type": "macro", + "qualified_name": "F2", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a27990a901a46c8d3351b9fca4779cbcab8bffc25b9b80b7bf6877e4578929b5" + }, + { + "artifact": "artifacts/macros/n_md5_c__L189__F3.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:189:F3", + "kind": "macro", + "line": 189, + "name": "F3", + "node_type": "macro", + "qualified_name": "F3", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "117acc6979ee24a45c90b2afcb921580ff9ee8f9e97a6afd2dc632a2da61c694" + }, + { + "artifact": "artifacts/macros/n_md5_c__L190__F4.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:190:F4", + "kind": "macro", + "line": 190, + "name": "F4", + "node_type": "macro", + "qualified_name": "F4", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b8ecc04b649f27e8ae273fe99341afcb4f8da68f0c6834d776292b5b1aa5baee" + }, + { + "artifact": "artifacts/macros/n_md5_c__L193__MD5STEP.md", + "extraction_method": "regex-c-macro", + "file": "n_md5.c", + "id": "macro:n_md5.c:193:MD5STEP", + "kind": "macro", + "line": 193, + "name": "MD5STEP", + "node_type": "macro", + "qualified_name": "MD5STEP", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8255877f38e0cf0caaaeb9da5da3d46272ecf38ad153d8a84f326d6af14be68e" + }, + { + "artifact": "artifacts/functions/n_md5_c__L42__getu32.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:42:getu32", + "kind": "function", + "line": 42, + "name": "getu32", + "node_type": "function", + "qualified_name": "getu32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4529eb725eb0600fba163c2d9827d0c2b39fbcea38317c3feb9be541385f4662" + }, + { + "artifact": "artifacts/functions/n_md5_c__L48__putu32.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:48:putu32", + "kind": "function", + "line": 48, + "name": "putu32", + "node_type": "function", + "qualified_name": "putu32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bc9fd3bb71b534dd0dfc0ef2f5cdd8763f1dec05f36c44be63e08048ae751746" + }, + { + "artifact": "artifacts/functions/n_md5_c__L57__n_htoa8.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:57:n_htoa8", + "kind": "function", + "line": 57, + "name": "n_htoa8", + "node_type": "function", + "qualified_name": "n_htoa8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "5859012875fb1a5915047f2067889ed83d319bcb11048217e061508c1c422bba" + }, + { + "artifact": "artifacts/functions/n_md5_c__L78__NoteMD5Init.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:78:NoteMD5Init", + "kind": "function", + "line": 78, + "name": "NoteMD5Init", + "node_type": "function", + "qualified_name": "NoteMD5Init", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a4e4a4ee98350de4c965e756036668348c3f5406515d3df6e0c881c322df8cba" + }, + { + "artifact": "artifacts/functions/n_md5_c__L95__NoteMD5Update.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:95:NoteMD5Update", + "kind": "function", + "line": 95, + "name": "NoteMD5Update", + "node_type": "function", + "qualified_name": "NoteMD5Update", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a77410f020aa100a968053a3dd6080a4b5f56778c25b19b60d4edd37c346892b" + }, + { + "artifact": "artifacts/functions/n_md5_c__L143__NoteMD5Final.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:143:NoteMD5Final", + "kind": "function", + "line": 143, + "name": "NoteMD5Final", + "node_type": "function", + "qualified_name": "NoteMD5Final", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e96bc83b8392f95256cfa34f475cb7b7d7b321b572ad1ef0fd8dfbf372a4aa56" + }, + { + "artifact": "artifacts/functions/n_md5_c__L201__NoteMD5Transform.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:201:NoteMD5Transform", + "kind": "function", + "line": 201, + "name": "NoteMD5Transform", + "node_type": "function", + "qualified_name": "NoteMD5Transform", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "17793efb9f14f8681c4174d208838639512b5867d841d7efeb433b2286bf0ce3" + }, + { + "artifact": "artifacts/functions/n_md5_c__L292__NoteMD5Hash.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:292:NoteMD5Hash", + "kind": "function", + "line": 292, + "name": "NoteMD5Hash", + "node_type": "function", + "qualified_name": "NoteMD5Hash", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "500d6567c4ebaa5a0222bc40542f9716104ca11d947edd76a87a19c4865b2096" + }, + { + "artifact": "artifacts/functions/n_md5_c__L301__NoteMD5HashString.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:301:NoteMD5HashString", + "kind": "function", + "line": 301, + "name": "NoteMD5HashString", + "node_type": "function", + "qualified_name": "NoteMD5HashString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cebddcabf186225a5ddfdc4b555893c5011a4008a460520cc246b66f282bbd18" + }, + { + "artifact": "artifacts/functions/n_md5_c__L314__NoteMD5HashToString.md", + "extraction_method": "regex-c-function", + "file": "n_md5.c", + "id": "function:n_md5.c:314:NoteMD5HashToString", + "kind": "function", + "line": 314, + "name": "NoteMD5HashToString", + "node_type": "function", + "qualified_name": "NoteMD5HashToString", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "792c67c110a5d58419f23d056d8b1c7550b44cbd5625b8e677e936726229336e" + }, + { + "artifact": "artifacts/functions/n_printf_c__L35__NoteDebugf.md", + "extraction_method": "regex-c-function", + "file": "n_printf.c", + "id": "function:n_printf.c:35:NoteDebugf", + "kind": "function", + "line": 35, + "name": "NoteDebugf", + "node_type": "function", + "qualified_name": "NoteDebugf", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "60619bbfe695329aea69885ec5831b5927e6066f1eaf2c5606a82356ecdf447b" + }, + { + "artifact": "artifacts/functions/n_printf_c__L60__NotePrintf.md", + "extraction_method": "regex-c-function", + "file": "n_printf.c", + "id": "function:n_printf.c:60:NotePrintf", + "kind": "function", + "line": 60, + "name": "NotePrintf", + "node_type": "function", + "qualified_name": "NotePrintf", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3b763b38acb017648cd4d77b33773445a44650282e736d83aa57748ea46daa34" + }, + { + "artifact": "artifacts/macros/n_request_c__L31__CRC_FIELD_LENGTH.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:31:CRC_FIELD_LENGTH", + "kind": "macro", + "line": 31, + "name": "CRC_FIELD_LENGTH", + "node_type": "macro", + "qualified_name": "CRC_FIELD_LENGTH", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "38582a1925b86d2f60838733fcf22188957ba5a6b2ab770a1f53ca22f9b2e71b" + }, + { + "artifact": "artifacts/macros/n_request_c__L32__CRC_FIELD_NAME_OFFSET.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:32:CRC_FIELD_NAME_OFFSET", + "kind": "macro", + "line": 32, + "name": "CRC_FIELD_NAME_OFFSET", + "node_type": "macro", + "qualified_name": "CRC_FIELD_NAME_OFFSET", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7f51e48da1c1f1d733e2fcf17660f3b9cebb5b2acbc8f19861e2529483000122" + }, + { + "artifact": "artifacts/macros/n_request_c__L33__CRC_FIELD_NAME_TEST.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:33:CRC_FIELD_NAME_TEST", + "kind": "macro", + "line": 33, + "name": "CRC_FIELD_NAME_TEST", + "node_type": "macro", + "qualified_name": "CRC_FIELD_NAME_TEST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3a0b3c63d20d99a17f9a536be5e5114827bc1bfb1f74f37f73257b3a188e2a58" + }, + { + "artifact": "artifacts/macros/n_request_c__L34__ERR_FIELD_NAME_TEST.md", + "extraction_method": "regex-c-macro", + "file": "n_request.c", + "id": "macro:n_request.c:34:ERR_FIELD_NAME_TEST", + "kind": "macro", + "line": 34, + "name": "ERR_FIELD_NAME_TEST", + "node_type": "macro", + "qualified_name": "ERR_FIELD_NAME_TEST", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "95eecd8177012d8d496f4053645f08649d0f570fec9f4f1bb2cff15cc9348f98" + }, + { + "artifact": "artifacts/functions/n_request_c__L55__errDoc.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:55:_errDoc", + "kind": "function", + "line": 55, + "name": "_errDoc", + "node_type": "function", + "qualified_name": "_errDoc", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0042cc386508601d7863d09698cb0f389a9180746e908bef09783c0c7b630891" + }, + { + "artifact": "artifacts/functions/n_request_c__L80__noteResumeTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:80:_noteResumeTransactionDebug", + "kind": "function", + "line": 80, + "name": "_noteResumeTransactionDebug", + "node_type": "function", + "qualified_name": "_noteResumeTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "54e1a1720df92a02b1b3e8c31194e44f3b4605dc65e58c5b3b99b36e8e85686e" + }, + { + "artifact": "artifacts/functions/n_request_c__L88__noteSuspendTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:88:_noteSuspendTransactionDebug", + "kind": "function", + "line": 88, + "name": "_noteSuspendTransactionDebug", + "node_type": "function", + "qualified_name": "_noteSuspendTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b7e0f1ff1024a3daec4d935bc83a4d361971f1718dfa737f37ae463ebfd495ce" + }, + { + "artifact": "artifacts/functions/n_request_c__L117__noteTransaction_calculateTimeoutMs.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:117:_noteTransaction_calculateTimeoutMs", + "kind": "function", + "line": 117, + "name": "_noteTransaction_calculateTimeoutMs", + "node_type": "function", + "qualified_name": "_noteTransaction_calculateTimeoutMs", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "26a2b3950b21bc49338ec1084de93de6fa8d38900674bff049e539031027dbd3" + }, + { + "artifact": "artifacts/functions/n_request_c__L153__NoteSuspendTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:153:NoteSuspendTransactionDebug", + "kind": "function", + "line": 153, + "name": "NoteSuspendTransactionDebug", + "node_type": "function", + "qualified_name": "NoteSuspendTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "07b443cdb7fbf76da57a0e965ce4da4718e302d40aeb693ffc5627dd8725a204" + }, + { + "artifact": "artifacts/functions/n_request_c__L161__NoteResumeTransactionDebug.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:161:NoteResumeTransactionDebug", + "kind": "function", + "line": 161, + "name": "NoteResumeTransactionDebug", + "node_type": "function", + "qualified_name": "NoteResumeTransactionDebug", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a341a66e5edd4c07ceb4e3298777d57cb4f268a955a96fd50731a267da80cc1b" + }, + { + "artifact": "artifacts/functions/n_request_c__L166__NoteSetRequestTimeout.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:166:NoteSetRequestTimeout", + "kind": "function", + "line": 166, + "name": "NoteSetRequestTimeout", + "node_type": "function", + "qualified_name": "NoteSetRequestTimeout", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5fec03fc2215423f092deb41944a8221fed891b8435b059dec90036e1ca9e66f" + }, + { + "artifact": "artifacts/functions/n_request_c__L173__NoteNewRequest.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:173:NoteNewRequest", + "kind": "function", + "line": 173, + "name": "NoteNewRequest", + "node_type": "function", + "qualified_name": "NoteNewRequest", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bc6ad71c17139811845fea60659a68a095eff1ca07aaa83be2f8a73adb7ff17f" + }, + { + "artifact": "artifacts/functions/n_request_c__L182__NoteNewCommand.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:182:NoteNewCommand", + "kind": "function", + "line": 182, + "name": "NoteNewCommand", + "node_type": "function", + "qualified_name": "NoteNewCommand", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6e4015774a569e7f1c266d3e8b5d01d2d4a3e18081aea6b34893e13295b01aa6" + }, + { + "artifact": "artifacts/functions/n_request_c__L191__NoteRequest.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:191:NoteRequest", + "kind": "function", + "line": 191, + "name": "NoteRequest", + "node_type": "function", + "qualified_name": "NoteRequest", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f9f243415625133d9086dda2e2777a26b69de0bcd0564f3ce4ab24cee63943d8" + }, + { + "artifact": "artifacts/functions/n_request_c__L205__NoteRequestWithRetry.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:205:NoteRequestWithRetry", + "kind": "function", + "line": 205, + "name": "NoteRequestWithRetry", + "node_type": "function", + "qualified_name": "NoteRequestWithRetry", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2badb02cad8a235622083ca4846d11c4ef7cb1117b972b5c9cb51feb35000bdc" + }, + { + "artifact": "artifacts/functions/n_request_c__L220__NoteRequestResponse.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:220:NoteRequestResponse", + "kind": "function", + "line": 220, + "name": "NoteRequestResponse", + "node_type": "function", + "qualified_name": "NoteRequestResponse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d6eb6891ce8f7aa5ff2910584650b7f590cdfe720ad0792a2ac3562f369c07e7" + }, + { + "artifact": "artifacts/functions/n_request_c__L234__NoteRequestResponseWithRetry.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:234:NoteRequestResponseWithRetry", + "kind": "function", + "line": 234, + "name": "NoteRequestResponseWithRetry", + "node_type": "function", + "qualified_name": "NoteRequestResponseWithRetry", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "903ab1cd3b311f1f08fc7675eeed4808efed7e7799d59efe7f58cd873884ec92" + }, + { + "artifact": "artifacts/functions/n_request_c__L279__NoteRequestResponseJSON.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:279:NoteRequestResponseJSON", + "kind": "function", + "line": 279, + "name": "NoteRequestResponseJSON", + "node_type": "function", + "qualified_name": "NoteRequestResponseJSON", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1df0f94a6aa623147b8d7f7ab8a00dd03a9a8ef2b63fc43d980fe9e3da60c72b" + }, + { + "artifact": "artifacts/functions/n_request_c__L411__NoteTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:411:NoteTransaction", + "kind": "function", + "line": 411, + "name": "NoteTransaction", + "node_type": "function", + "qualified_name": "NoteTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3de4c553a834d782b33d0b8e267ae4741c3b5b05804f82277af882be70c0fa99" + }, + { + "artifact": "artifacts/functions/n_request_c__L428__noteTransactionShouldLock.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:428:_noteTransactionShouldLock", + "kind": "function", + "line": 428, + "name": "_noteTransactionShouldLock", + "node_type": "function", + "qualified_name": "_noteTransactionShouldLock", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cabd51ddc3fd52bcbbf04a736e264c7469c794d558652e4862bdc4a0dfb45653" + }, + { + "artifact": "artifacts/functions/n_request_c__L756__NoteResetRequired.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:756:NoteResetRequired", + "kind": "function", + "line": 756, + "name": "NoteResetRequired", + "node_type": "function", + "qualified_name": "NoteResetRequired", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "783c8d64765bf63038070501633d85526562bccb1f8e658d2299c3c034476df7" + }, + { + "artifact": "artifacts/functions/n_request_c__L766__NoteReset.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:766:NoteReset", + "kind": "function", + "line": 766, + "name": "NoteReset", + "node_type": "function", + "qualified_name": "NoteReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "726b5d1fdd1e60c73165dd474852aec65bad5386baad63771171a9b97e6c6eb0" + }, + { + "artifact": "artifacts/functions/n_request_c__L786__notePingDrainInput.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:786:_notePingDrainInput", + "kind": "function", + "line": 786, + "name": "_notePingDrainInput", + "node_type": "function", + "qualified_name": "_notePingDrainInput", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1a8a29aec26a51711facb3bc9fd14947b4cf6abbd55892861324ce5f0d1f04c2" + }, + { + "artifact": "artifacts/functions/n_request_c__L841__NotePing.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:841:NotePing", + "kind": "function", + "line": 841, + "name": "NotePing", + "node_type": "function", + "qualified_name": "NotePing", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "630893633c7a22267d77d3b47ce76c52080a93e98fd3d6d7ffe0eae7b7fac2df" + }, + { + "artifact": "artifacts/functions/n_request_c__L940__NoteErrorContains.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:940:NoteErrorContains", + "kind": "function", + "line": 940, + "name": "NoteErrorContains", + "node_type": "function", + "qualified_name": "NoteErrorContains", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "2da7b8e6ec085dbee2be2b43c0dc99335cdd3d042281a1fdab5b30d407fe9d2e" + }, + { + "artifact": "artifacts/functions/n_request_c__L945__NoteErrorClean.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:945:NoteErrorClean", + "kind": "function", + "line": 945, + "name": "NoteErrorClean", + "node_type": "function", + "qualified_name": "NoteErrorClean", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b8f1ed84659b030aaddee0fbc8e44bb74589e61640c6f6ac12571fc5dbeedfde" + }, + { + "artifact": "artifacts/functions/n_request_c__L975__n_atoh.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:975:_n_atoh", + "kind": "function", + "line": 975, + "name": "_n_atoh", + "node_type": "function", + "qualified_name": "_n_atoh", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "453834980a5112694130913f996ddaeb686d9c816abcf83cd375490c92b0ddf6" + }, + { + "artifact": "artifacts/functions/n_request_c__L1019__crc32.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:1019:_crc32", + "kind": "function", + "line": 1019, + "name": "_crc32", + "node_type": "function", + "qualified_name": "_crc32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fe32685aa29e9717434e73ccce12291a62f8fde24fc03afbe114091edfaa4d01" + }, + { + "artifact": "artifacts/functions/n_request_c__L1047__crcAdd.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:1047:_crcAdd", + "kind": "function", + "line": 1047, + "name": "_crcAdd", + "node_type": "function", + "qualified_name": "_crcAdd", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9849707a6abdcb74f4e7d1ce9c1f2e1708c25d40c81e62df0cff3deb24fed5ee" + }, + { + "artifact": "artifacts/functions/n_request_c__L1113__crcError.md", + "extraction_method": "regex-c-function", + "file": "n_request.c", + "id": "function:n_request.c:1113:_crcError", + "kind": "function", + "line": 1113, + "name": "_crcError", + "node_type": "function", + "qualified_name": "_crcError", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "86fb524a8abbd11ab8326b63724ee54dcfc2b325d44ebbe3fb00773721a70328" + }, + { + "artifact": "artifacts/functions/n_serial_c__L35__serialNoteTransaction.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:35:_serialNoteTransaction", + "kind": "function", + "line": 35, + "name": "_serialNoteTransaction", + "node_type": "function", + "qualified_name": "_serialNoteTransaction", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f8c610f9763fa8930331da265218b7eb4b4686cfbb763024c64ef0ce79edcb11" + }, + { + "artifact": "artifacts/functions/n_serial_c__L153__serialNoteReset.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:153:_serialNoteReset", + "kind": "function", + "line": 153, + "name": "_serialNoteReset", + "node_type": "function", + "qualified_name": "_serialNoteReset", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "95a8b43ff996f0a9ddddd9acd076f389685a8a571ffc454f2954c3069a07b64d" + }, + { + "artifact": "artifacts/functions/n_serial_c__L237__serialChunkedReceive.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:237:_serialChunkedReceive", + "kind": "function", + "line": 237, + "name": "_serialChunkedReceive", + "node_type": "function", + "qualified_name": "_serialChunkedReceive", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4e8f3ec77012d9f61b9baec8c0210394e46492db1a02240deaf19c451afe9855" + }, + { + "artifact": "artifacts/functions/n_serial_c__L303__serialChunkedTransmit.md", + "extraction_method": "regex-c-function", + "file": "n_serial.c", + "id": "function:n_serial.c:303:_serialChunkedTransmit", + "kind": "function", + "line": 303, + "name": "_serialChunkedTransmit", + "node_type": "function", + "qualified_name": "_serialChunkedTransmit", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "aedeca638b0f81e8bc229e1c7f972df80b9be5ecb980e391f18cf1e87f3b70e1" + }, + { + "artifact": "artifacts/functions/n_str_c__L31__strlcpy.md", + "extraction_method": "regex-c-function", + "file": "n_str.c", + "id": "function:n_str.c:31:strlcpy", + "kind": "function", + "line": 31, + "name": "strlcpy", + "node_type": "function", + "qualified_name": "strlcpy", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "da978765b2a48a4f7f3c988a8745a1fd572413f2d8e7763200e6bcd79cc09588" + }, + { + "artifact": "artifacts/functions/n_str_c__L69__strlcat.md", + "extraction_method": "regex-c-function", + "file": "n_str.c", + "id": "function:n_str.c:69:strlcat", + "kind": "function", + "line": 69, + "name": "strlcat", + "node_type": "function", + "qualified_name": "strlcat", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "ec0fde2798f46897cc5d0b61798214f840003d10846883c2b0fa1dd4c836c642" + }, + { + "artifact": "artifacts/macros/n_ua_c__L107__PLUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ua.c", + "id": "macro:n_ua.c:107:PLUS", + "kind": "macro", + "line": 107, + "name": "PLUS", + "node_type": "macro", + "qualified_name": "PLUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6cfcdc0c1bcac6e1458e87dac0b548975b6eb516b7663f51ce9afac9aad1b26b" + }, + { + "artifact": "artifacts/macros/n_ua_c__L109__PLUS.md", + "extraction_method": "regex-c-macro", + "file": "n_ua.c", + "id": "macro:n_ua.c:109:PLUS", + "kind": "macro", + "line": 109, + "name": "PLUS", + "node_type": "macro", + "qualified_name": "PLUS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7cb3d3705750ab4f1fb922b83b33ca36cf260e59316edf6b7ffb63b92a30c73d" + }, + { + "artifact": "artifacts/functions/n_ua_c__L80__NoteUserAgentUpdate.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:80:NoteUserAgentUpdate", + "kind": "function", + "line": 80, + "name": "NoteUserAgentUpdate", + "node_type": "function", + "qualified_name": "NoteUserAgentUpdate", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "64b00a5c986db0c793ae845bc19c3b1fd3b5962869fd8331355e89785b2ce959" + }, + { + "artifact": "artifacts/functions/n_ua_c__L95__NoteUserAgent.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:95:NoteUserAgent", + "kind": "function", + "line": 95, + "name": "NoteUserAgent", + "node_type": "function", + "qualified_name": "NoteUserAgent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c7383321be874869ea7066eaca2832e6521e473dbec514fa0ea05c356d0d99cb" + }, + { + "artifact": "artifacts/functions/n_ua_c__L191__NoteSetUserAgent.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:191:NoteSetUserAgent", + "kind": "function", + "line": 191, + "name": "NoteSetUserAgent", + "node_type": "function", + "qualified_name": "NoteSetUserAgent", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "106fffa12681473ca1f95a4e159465f439d8e62d8c1911587faa992714a10ae4" + }, + { + "artifact": "artifacts/functions/n_ua_c__L201__NoteSetUserAgentOS.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:201:NoteSetUserAgentOS", + "kind": "function", + "line": 201, + "name": "NoteSetUserAgentOS", + "node_type": "function", + "qualified_name": "NoteSetUserAgentOS", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0c6c08539f85423312b93f06c2b8e16a94c5d659777210141282fa994cb93d44" + }, + { + "artifact": "artifacts/functions/n_ua_c__L214__NoteSetUserAgentCPU.md", + "extraction_method": "regex-c-function", + "file": "n_ua.c", + "id": "function:n_ua.c:214:NoteSetUserAgentCPU", + "kind": "function", + "line": 214, + "name": "NoteSetUserAgentCPU", + "node_type": "function", + "qualified_name": "NoteSetUserAgentCPU", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b3e3ddc7a1e9cb27f8e81493ab34fb865e8275a89c9e4c5f6227de3348d7eb4e" + }, + { + "artifact": "artifacts/macros/note_h__L19__NOTE_C_DEPRECATED.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:19:NOTE_C_DEPRECATED", + "kind": "macro", + "line": 19, + "name": "NOTE_C_DEPRECATED", + "node_type": "macro", + "qualified_name": "NOTE_C_DEPRECATED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d28016887e84ac341fd006c9b36a83eb098ff2bcaea7d1100ee677507a655071" + }, + { + "artifact": "artifacts/macros/note_h__L21__NOTE_C_DEPRECATED.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:21:NOTE_C_DEPRECATED", + "kind": "macro", + "line": 21, + "name": "NOTE_C_DEPRECATED", + "node_type": "macro", + "qualified_name": "NOTE_C_DEPRECATED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "d94cea32a93f7f8d869042c80ae8086b52b89b24108eff82bf55fa1310836d2b" + }, + { + "artifact": "artifacts/macros/note_h__L39__NOTE_C_STRINGIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:39:_NOTE_C_STRINGIZE", + "kind": "macro", + "line": 39, + "name": "_NOTE_C_STRINGIZE", + "node_type": "macro", + "qualified_name": "_NOTE_C_STRINGIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cf32bc8c03886a3727d98410e8f9881992319d999a2ae941e50a51496f462009" + }, + { + "artifact": "artifacts/macros/note_h__L40__NOTE_C_STRINGIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:40:NOTE_C_STRINGIZE", + "kind": "macro", + "line": 40, + "name": "NOTE_C_STRINGIZE", + "node_type": "macro", + "qualified_name": "NOTE_C_STRINGIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "122112847d607186284335139368d85503b7855c41bb008c9559cfc10cd48621" + }, + { + "artifact": "artifacts/macros/note_h__L42__NOTE_C_VERSION_MAJOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:42:NOTE_C_VERSION_MAJOR", + "kind": "macro", + "line": 42, + "name": "NOTE_C_VERSION_MAJOR", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION_MAJOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f6fbe76ccf4d58463762909600a0b376bb7ad99c2e165252a57b78fc7134c462" + }, + { + "artifact": "artifacts/macros/note_h__L43__NOTE_C_VERSION_MINOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:43:NOTE_C_VERSION_MINOR", + "kind": "macro", + "line": 43, + "name": "NOTE_C_VERSION_MINOR", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION_MINOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "283508b8b98c7dcd590c544484cc2c9b6ac19a124d6a449e1b01d6a3783e848a" + }, + { + "artifact": "artifacts/macros/note_h__L44__NOTE_C_VERSION_PATCH.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:44:NOTE_C_VERSION_PATCH", + "kind": "macro", + "line": 44, + "name": "NOTE_C_VERSION_PATCH", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION_PATCH", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e8a36055f5166c116d1460deb2b1ccd5944d8fcb096f49a2074b1cf82db4c94d" + }, + { + "artifact": "artifacts/macros/note_h__L46__NOTE_C_VERSION.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:46:NOTE_C_VERSION", + "kind": "macro", + "line": 46, + "name": "NOTE_C_VERSION", + "node_type": "macro", + "qualified_name": "NOTE_C_VERSION", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "720e1d1d592a13bc844b324f1592d684ca18d27e74ac644ca117b33d4ae5ee11" + }, + { + "artifact": "artifacts/macros/note_h__L75__ERRSTR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:75:ERRSTR", + "kind": "macro", + "line": 75, + "name": "ERRSTR", + "node_type": "macro", + "qualified_name": "ERRSTR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "30e13034a2a2e3d86d515dae4f0ef9723d0fb592d70d9fae3a7bc867e5975a22" + }, + { + "artifact": "artifacts/macros/note_h__L76__NOTE_C_LOG_DEBUG.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:76:NOTE_C_LOG_DEBUG", + "kind": "macro", + "line": 76, + "name": "NOTE_C_LOG_DEBUG", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_DEBUG", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c87caa19a117ca15c27ac3809cbc66488def26a9371654d059b6ca72bd94672c" + }, + { + "artifact": "artifacts/macros/note_h__L78__ERRSTR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:78:ERRSTR", + "kind": "macro", + "line": 78, + "name": "ERRSTR", + "node_type": "macro", + "qualified_name": "ERRSTR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a822c179f7cb21e97e768f003328bc3e882d30667874695d5b9c0738d744c439" + }, + { + "artifact": "artifacts/types/note_h__L85__JNUMBER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:85:JNUMBER", + "kind": "typedef", + "line": 85, + "name": "JNUMBER", + "node_type": "typedef", + "qualified_name": "JNUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "20945a575e0dc5a32d8e3607b79e065790f435c59a2f2aba0ff5ee5ae4873c8b" + }, + { + "artifact": "artifacts/types/note_h__L87__JNUMBER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:87:JNUMBER", + "kind": "typedef", + "line": 87, + "name": "JNUMBER", + "node_type": "typedef", + "qualified_name": "JNUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a42218f601197e805c4dff89621161754d28c218a27e4028d6b4274daeac092a" + }, + { + "artifact": "artifacts/types/note_h__L93__JINTEGER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:93:JINTEGER", + "kind": "typedef", + "line": 93, + "name": "JINTEGER", + "node_type": "typedef", + "qualified_name": "JINTEGER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "15aa8caa61d6f24873d0986abde979a9fd9c82aea2fc0c85f627e5135196cd33" + }, + { + "artifact": "artifacts/macros/note_h__L94__JINTEGER_MIN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:94:JINTEGER_MIN", + "kind": "macro", + "line": 94, + "name": "JINTEGER_MIN", + "node_type": "macro", + "qualified_name": "JINTEGER_MIN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4d0bcc67fccea9b342a64910f79c91a83ca3efd073e0b7de15f51646337cf97c" + }, + { + "artifact": "artifacts/macros/note_h__L95__JINTEGER_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:95:JINTEGER_MAX", + "kind": "macro", + "line": 95, + "name": "JINTEGER_MAX", + "node_type": "macro", + "qualified_name": "JINTEGER_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "55963d27b63e1be0adca32a474406d73a1b095b0f0f9b0b34f4b97ed7fefbd8d" + }, + { + "artifact": "artifacts/types/note_h__L100__JUINTEGER.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:100:JUINTEGER", + "kind": "typedef", + "line": 100, + "name": "JUINTEGER", + "node_type": "typedef", + "qualified_name": "JUINTEGER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c91ee7fd95b8377d47abe87a811e657450821a7c00b995914c04418fe1c2ef74" + }, + { + "artifact": "artifacts/types/note_h__L105__JTIME.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:105:JTIME", + "kind": "typedef", + "line": 105, + "name": "JTIME", + "node_type": "typedef", + "qualified_name": "JTIME", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "121572b75c98c634afd72cd8992cb3214e2074410e242541a6fc6ab2f43a7cf6" + }, + { + "artifact": "artifacts/types/note_h__L124__delayMsFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:124:delayMsFn", + "kind": "typedef", + "line": 124, + "name": "delayMsFn", + "node_type": "typedef", + "qualified_name": "delayMsFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3f18b6f3c565e51c2228563dc141238acfabb4957586115e4bb88fa810338afd" + }, + { + "artifact": "artifacts/types/note_h__L133__freeFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:133:freeFn", + "kind": "typedef", + "line": 133, + "name": "freeFn", + "node_type": "typedef", + "qualified_name": "freeFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "111dbe2d27db45a7e705dfafed4bec8590e0fea4037f38c15ea491d9e8628940" + }, + { + "artifact": "artifacts/types/note_h__L142__getMsFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:142:getMsFn", + "kind": "typedef", + "line": 142, + "name": "getMsFn", + "node_type": "typedef", + "qualified_name": "getMsFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "84bb05f0b6c7e6c7407029f96fba187e16d0b45a8e3f1d0f8ac69cf88c101e86" + }, + { + "artifact": "artifacts/types/note_h__L153__debugOutputFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:153:debugOutputFn", + "kind": "typedef", + "line": 153, + "name": "debugOutputFn", + "node_type": "typedef", + "qualified_name": "debugOutputFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "661b43a5d7508a09c1599691e57fee6f2ab576fe3d0c58ba398a5d975b5de63d" + }, + { + "artifact": "artifacts/types/note_h__L166__heartbeatFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:166:heartbeatFn", + "kind": "typedef", + "line": 166, + "name": "heartbeatFn", + "node_type": "typedef", + "qualified_name": "heartbeatFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "aac9e624715aa3dc2ba44edff24fd5b2f78bf1773b77a861447021e6300fb63f" + }, + { + "artifact": "artifacts/types/note_h__L183__i2cReceiveFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:183:i2cReceiveFn", + "kind": "typedef", + "line": 183, + "name": "i2cReceiveFn", + "node_type": "typedef", + "qualified_name": "i2cReceiveFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "c6e2566ec20e6ac99fdf4d2d6b23009594ef0521cd1e97fa738a7bc58ae23434" + }, + { + "artifact": "artifacts/types/note_h__L196__i2cResetFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:196:i2cResetFn", + "kind": "typedef", + "line": 196, + "name": "i2cResetFn", + "node_type": "typedef", + "qualified_name": "i2cResetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "9190a1e74e00bf33cc3ebfce1bc26a8ef3bfd08e710d648feb1fc814da941fdd" + }, + { + "artifact": "artifacts/types/note_h__L211__i2cTransmitFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:211:i2cTransmitFn", + "kind": "typedef", + "line": 211, + "name": "i2cTransmitFn", + "node_type": "typedef", + "qualified_name": "i2cTransmitFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "82d7c7831df76bb19e430553ce4daf5de1bb0dfba65e3de506dd9e98447b90e0" + }, + { + "artifact": "artifacts/types/note_h__L223__mallocFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:223:mallocFn", + "kind": "typedef", + "line": 223, + "name": "mallocFn", + "node_type": "typedef", + "qualified_name": "mallocFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b37b8951a68646f0bf9e4732d1df28d074eb0ae8758b9a6de027ed707e37e741" + }, + { + "artifact": "artifacts/types/note_h__L230__mutexFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:230:mutexFn", + "kind": "typedef", + "line": 230, + "name": "mutexFn", + "node_type": "typedef", + "qualified_name": "mutexFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4f5c144797b8ed6ade2b8a310fb04deaa372b65291bd530fb3c0f133509abd8" + }, + { + "artifact": "artifacts/types/note_h__L239__serialAvailableFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:239:serialAvailableFn", + "kind": "typedef", + "line": 239, + "name": "serialAvailableFn", + "node_type": "typedef", + "qualified_name": "serialAvailableFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "5bf2d7df79f469f2df9a44c2f9040116c7e037094e91ca1145c7dbc95b7920dd" + }, + { + "artifact": "artifacts/types/note_h__L248__serialReceiveFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:248:serialReceiveFn", + "kind": "typedef", + "line": 248, + "name": "serialReceiveFn", + "node_type": "typedef", + "qualified_name": "serialReceiveFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cacd39075b2fbfdc74c95cfc4d99227b517000a730e5a60201a7a5eb9a99ed4f" + }, + { + "artifact": "artifacts/types/note_h__L260__serialResetFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:260:serialResetFn", + "kind": "typedef", + "line": 260, + "name": "serialResetFn", + "node_type": "typedef", + "qualified_name": "serialResetFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1814c3dbe9ea959b0dcd3331e03630993c80216d3d2eb80e11d1b0d91581ab7d" + }, + { + "artifact": "artifacts/types/note_h__L271__serialTransmitFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:271:serialTransmitFn", + "kind": "typedef", + "line": 271, + "name": "serialTransmitFn", + "node_type": "typedef", + "qualified_name": "serialTransmitFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4f6e0c46e630fbb6c41df584a64ed44f8b62a9089caf205725a5cf93b5241ffe" + }, + { + "artifact": "artifacts/types/note_h__L282__txnStartFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:282:txnStartFn", + "kind": "typedef", + "line": 282, + "name": "txnStartFn", + "node_type": "typedef", + "qualified_name": "txnStartFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f2c248f180f8c07675dcea21b0cf701662ae28a6223cbf2750eeacb3e44329cf" + }, + { + "artifact": "artifacts/types/note_h__L289__txnStopFn.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:289:txnStopFn", + "kind": "typedef", + "line": 289, + "name": "txnStopFn", + "node_type": "typedef", + "qualified_name": "txnStopFn", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "24e0ba1759548f9819b8e18ddf13bc65746f004fceef341196d7a7fa27a22200" + }, + { + "artifact": "artifacts/macros/note_h__L322__NoteNewBody.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:322:NoteNewBody", + "kind": "macro", + "line": 322, + "name": "NoteNewBody", + "node_type": "macro", + "qualified_name": "NoteNewBody", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "386075eb6a73e1a396492af236fbf8ef74aab4c2042503cc3379bb2173a3224e" + }, + { + "artifact": "artifacts/macros/note_h__L323__NoteAddBodyToObject.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:323:NoteAddBodyToObject", + "kind": "macro", + "line": 323, + "name": "NoteAddBodyToObject", + "node_type": "macro", + "qualified_name": "NoteAddBodyToObject", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "8d48a7237dc76feafbcc0620971c0da8aa7efdbcc7116b8f192d5cc80b955f68" + }, + { + "artifact": "artifacts/macros/note_h__L324__NoteGetBody.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:324:NoteGetBody", + "kind": "macro", + "line": 324, + "name": "NoteGetBody", + "node_type": "macro", + "qualified_name": "NoteGetBody", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "20ea5014ec43bdbf6a0a951c27a2ceffd7eda20d7d75d60027e13e4af116debb" + }, + { + "artifact": "artifacts/macros/note_h__L410__SYNCSTATUS_LEVEL_MAJOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:410:SYNCSTATUS_LEVEL_MAJOR", + "kind": "macro", + "line": 410, + "name": "SYNCSTATUS_LEVEL_MAJOR", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_MAJOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "1a59a7d3c4fa08e6b1879cc06879b6acc376c9bf2f021908a96bd257b48117d8" + }, + { + "artifact": "artifacts/macros/note_h__L411__SYNCSTATUS_LEVEL_MINOR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:411:SYNCSTATUS_LEVEL_MINOR", + "kind": "macro", + "line": 411, + "name": "SYNCSTATUS_LEVEL_MINOR", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_MINOR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8cb3ea4853f814e9c658967aaa45554b86c211a652c18bde38b7146119dd7dd4" + }, + { + "artifact": "artifacts/macros/note_h__L412__SYNCSTATUS_LEVEL_DETAILED.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:412:SYNCSTATUS_LEVEL_DETAILED", + "kind": "macro", + "line": 412, + "name": "SYNCSTATUS_LEVEL_DETAILED", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_DETAILED", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "94e35e0ca2a89d891c1cac2a7feffb061577db649b501eedaac0f5dfb4fbf059" + }, + { + "artifact": "artifacts/macros/note_h__L413__SYNCSTATUS_LEVEL_ALGORITHMIC.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:413:SYNCSTATUS_LEVEL_ALGORITHMIC", + "kind": "macro", + "line": 413, + "name": "SYNCSTATUS_LEVEL_ALGORITHMIC", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_ALGORITHMIC", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b20288a98b03c504a5d0c4eed10b4ecc27d111140b5ab065337ac3c494ac8a40" + }, + { + "artifact": "artifacts/macros/note_h__L414__SYNCSTATUS_LEVEL_ALL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:414:SYNCSTATUS_LEVEL_ALL", + "kind": "macro", + "line": 414, + "name": "SYNCSTATUS_LEVEL_ALL", + "node_type": "macro", + "qualified_name": "SYNCSTATUS_LEVEL_ALL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e9e660be497731f799d0fe0bb533f62896cb01d485144b71dc1109c354ff715e" + }, + { + "artifact": "artifacts/macros/note_h__L479__NoteResponseError.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:479:NoteResponseError", + "kind": "macro", + "line": 479, + "name": "NoteResponseError", + "node_type": "macro", + "qualified_name": "NoteResponseError", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f9ac7ac7b570307cd29ce3784c01317d871261c4364da2b8d916384efeeba4b0" + }, + { + "artifact": "artifacts/macros/note_h__L480__NoteResponseErrorContains.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:480:NoteResponseErrorContains", + "kind": "macro", + "line": 480, + "name": "NoteResponseErrorContains", + "node_type": "macro", + "qualified_name": "NoteResponseErrorContains", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4cb48ecb78bed89e5976c5a24bd319e682ea7c56c51d87a90fd1c388f79dbbc0" + }, + { + "artifact": "artifacts/macros/note_h__L486__NoteDeleteResponse.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:486:NoteDeleteResponse", + "kind": "macro", + "line": 486, + "name": "NoteDeleteResponse", + "node_type": "macro", + "qualified_name": "NoteDeleteResponse", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "27398869e5f3f01952c3a2d3e0a3d1b3ed78680213cd0e70c29a3f7d5ee58dfa" + }, + { + "artifact": "artifacts/macros/note_h__L829__NOTE_I2C_ADDR_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:829:NOTE_I2C_ADDR_DEFAULT", + "kind": "macro", + "line": 829, + "name": "NOTE_I2C_ADDR_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_ADDR_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a891b337c83360c62f322df252654d59ff11d51772ae5bf9b7168735de2381d1" + }, + { + "artifact": "artifacts/macros/note_h__L833__NOTE_I2C_HEADER_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:833:NOTE_I2C_HEADER_SIZE", + "kind": "macro", + "line": 833, + "name": "NOTE_I2C_HEADER_SIZE", + "node_type": "macro", + "qualified_name": "NOTE_I2C_HEADER_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "80ca46dad1501d7bc7bb45d49611d58382880b94e8db4a1fd8c4c1f42234597b" + }, + { + "artifact": "artifacts/macros/note_h__L843__NOTE_I2C_MAX_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:843:NOTE_I2C_MAX_MAX", + "kind": "macro", + "line": 843, + "name": "NOTE_I2C_MAX_MAX", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "8daa5b355b198a33f9d92c26cda971e4bc8a297a3b99808b6af79c9a745cee69" + }, + { + "artifact": "artifacts/macros/note_h__L845__NOTE_I2C_MAX_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:845:NOTE_I2C_MAX_MAX", + "kind": "macro", + "line": 845, + "name": "NOTE_I2C_MAX_MAX", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bae6f72b56396880d97eb066dd340772aa61746628b25a146edc5ae1038d8296" + }, + { + "artifact": "artifacts/macros/note_h__L849__NOTE_I2C_MTU_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:849:NOTE_I2C_MTU_MAX", + "kind": "macro", + "line": 849, + "name": "NOTE_I2C_MTU_MAX", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MTU_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6be3325849b3e125266193fdbb14504c152cae78cadf38eff8dbca669d896af3" + }, + { + "artifact": "artifacts/macros/note_h__L866__NOTE_I2C_MAX_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:866:NOTE_I2C_MAX_DEFAULT", + "kind": "macro", + "line": 866, + "name": "NOTE_I2C_MAX_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "324e4b1a851d794d574fed4a87f8f213ada9d6894d2f9c411308b1ed2c585b69" + }, + { + "artifact": "artifacts/macros/note_h__L869__NOTE_I2C_MAX_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:869:NOTE_I2C_MAX_DEFAULT", + "kind": "macro", + "line": 869, + "name": "NOTE_I2C_MAX_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "97a4cf3fc60875987bcc4d0d5d506271e364f45d59146e341ac9a998b92973e7" + }, + { + "artifact": "artifacts/macros/note_h__L876__NOTE_I2C_MAX_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:876:NOTE_I2C_MAX_DEFAULT", + "kind": "macro", + "line": 876, + "name": "NOTE_I2C_MAX_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MAX_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0b2be4ced5e9b24fc604efd1e70a9ee088ec5e88ad4b1d2704d479047ccd6dca" + }, + { + "artifact": "artifacts/macros/note_h__L880__NOTE_I2C_MTU_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:880:NOTE_I2C_MTU_DEFAULT", + "kind": "macro", + "line": 880, + "name": "NOTE_I2C_MTU_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_I2C_MTU_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "177cbd8ed47ae8a9c796a3984672bb6d5f9bfbf86b38499170e23411c89d5619" + }, + { + "artifact": "artifacts/macros/note_h__L953__NOTE_C_LOG_LEVEL_ERROR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:953:NOTE_C_LOG_LEVEL_ERROR", + "kind": "macro", + "line": 953, + "name": "NOTE_C_LOG_LEVEL_ERROR", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_ERROR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4bea6577098d11eff424d1c35e6aae2d60157284d3c667c8a6b2878726953356" + }, + { + "artifact": "artifacts/macros/note_h__L954__NOTE_C_LOG_LEVEL_WARN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:954:NOTE_C_LOG_LEVEL_WARN", + "kind": "macro", + "line": 954, + "name": "NOTE_C_LOG_LEVEL_WARN", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_WARN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "339b8569872ab6e0ad9488873894562a1befd816493c2644a6aa75100a766014" + }, + { + "artifact": "artifacts/macros/note_h__L955__NOTE_C_LOG_LEVEL_INFO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:955:NOTE_C_LOG_LEVEL_INFO", + "kind": "macro", + "line": 955, + "name": "NOTE_C_LOG_LEVEL_INFO", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_INFO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0645a026ec9bfd19afc13bd24ed88ebbf1543174658957351ab7937ee61601cf" + }, + { + "artifact": "artifacts/macros/note_h__L956__NOTE_C_LOG_LEVEL_DEBUG.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:956:NOTE_C_LOG_LEVEL_DEBUG", + "kind": "macro", + "line": 956, + "name": "NOTE_C_LOG_LEVEL_DEBUG", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_DEBUG", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "e540a6033049eff69e2de68b5e9c0c0827fcafd113ce6fb2f79f5497dd09efdd" + }, + { + "artifact": "artifacts/macros/note_h__L982__NOTE_C_LOG_FILE_AND_LINE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:982:NOTE_C_LOG_FILE_AND_LINE", + "kind": "macro", + "line": 982, + "name": "NOTE_C_LOG_FILE_AND_LINE", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_FILE_AND_LINE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "bb1585cd5099e65dd2be35267fa21ed2c177b057baa22388ee285eb72c1a5280" + }, + { + "artifact": "artifacts/macros/note_h__L990__NOTE_C_LOG_ERROR.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:990:NOTE_C_LOG_ERROR", + "kind": "macro", + "line": 990, + "name": "NOTE_C_LOG_ERROR", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_ERROR", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "86b0f1eb34a8aad42ea4dad9d99bf31b3455ca5f09bfdab08a1ee647caf9ca4e" + }, + { + "artifact": "artifacts/macros/note_h__L998__NOTE_C_LOG_WARN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:998:NOTE_C_LOG_WARN", + "kind": "macro", + "line": 998, + "name": "NOTE_C_LOG_WARN", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_WARN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b26eadd1f1a5af6ea19d630d91d7299728249a088bcc359f67f616673dd469bf" + }, + { + "artifact": "artifacts/macros/note_h__L1006__NOTE_C_LOG_INFO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1006:NOTE_C_LOG_INFO", + "kind": "macro", + "line": 1006, + "name": "NOTE_C_LOG_INFO", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_INFO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "64df47a7a637b69241438b993c78e0770c8aa0afb0cceb95012e985e9c142543" + }, + { + "artifact": "artifacts/macros/note_h__L1014__NOTE_C_LOG_DEBUG.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1014:NOTE_C_LOG_DEBUG", + "kind": "macro", + "line": 1014, + "name": "NOTE_C_LOG_DEBUG", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_DEBUG", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "059db73bdb32b57e19fbff9fe7cda397dbddbde4e635aa168fcc036223cc81ca" + }, + { + "artifact": "artifacts/macros/note_h__L1022__NOTE_C_LOG_LEVEL_DEFAULT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1022:NOTE_C_LOG_LEVEL_DEFAULT", + "kind": "macro", + "line": 1022, + "name": "NOTE_C_LOG_LEVEL_DEFAULT", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL_DEFAULT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "888d47ad93af98430de6d94d8ba06549b60bb636def2e77d573e8785760e65bc" + }, + { + "artifact": "artifacts/macros/note_h__L1028__NOTE_C_LOG_LEVEL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1028:NOTE_C_LOG_LEVEL", + "kind": "macro", + "line": 1028, + "name": "NOTE_C_LOG_LEVEL", + "node_type": "macro", + "qualified_name": "NOTE_C_LOG_LEVEL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ff73dd9cd71dd7486a3fb2e685b4104361a9886b8eb04e164ce3b3ed7f991c07" + }, + { + "artifact": "artifacts/macros/note_h__L1400__JTYPE_NOT_PRESENT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1400:JTYPE_NOT_PRESENT", + "kind": "macro", + "line": 1400, + "name": "JTYPE_NOT_PRESENT", + "node_type": "macro", + "qualified_name": "JTYPE_NOT_PRESENT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "31c08dd2021964d8a49dec783ac07b925babdf40f8cd05b0bbcd28cb9ec2d43c" + }, + { + "artifact": "artifacts/macros/note_h__L1401__JTYPE_BOOL_TRUE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1401:JTYPE_BOOL_TRUE", + "kind": "macro", + "line": 1401, + "name": "JTYPE_BOOL_TRUE", + "node_type": "macro", + "qualified_name": "JTYPE_BOOL_TRUE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d4b2e25afac0112993b5bce3e974a7960604485bafe0c21ac440f5a695a8ba6b" + }, + { + "artifact": "artifacts/macros/note_h__L1402__JTYPE_BOOL_FALSE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1402:JTYPE_BOOL_FALSE", + "kind": "macro", + "line": 1402, + "name": "JTYPE_BOOL_FALSE", + "node_type": "macro", + "qualified_name": "JTYPE_BOOL_FALSE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "6f6f6f70b980a7bb11af60311b591fcd7b3f97e65dcc8c86b449fe979bd5721c" + }, + { + "artifact": "artifacts/macros/note_h__L1403__JTYPE_BOOL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1403:JTYPE_BOOL", + "kind": "macro", + "line": 1403, + "name": "JTYPE_BOOL", + "node_type": "macro", + "qualified_name": "JTYPE_BOOL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "55d5762b8f5c753e8e38ac4e9a66c0359402ca479dc9934d08d099f1b6fa7e1b" + }, + { + "artifact": "artifacts/macros/note_h__L1404__JTYPE_NULL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1404:JTYPE_NULL", + "kind": "macro", + "line": 1404, + "name": "JTYPE_NULL", + "node_type": "macro", + "qualified_name": "JTYPE_NULL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "220538b64f2ff886bc386fc9e631bb581fe2179f661fbb2e51e4de27e4952897" + }, + { + "artifact": "artifacts/macros/note_h__L1405__JTYPE_NUMBER_ZERO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1405:JTYPE_NUMBER_ZERO", + "kind": "macro", + "line": 1405, + "name": "JTYPE_NUMBER_ZERO", + "node_type": "macro", + "qualified_name": "JTYPE_NUMBER_ZERO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a80b41a17a3cc63f5c118b26ca678a22bbf75b4d41240c6d16c55051ea49a3db" + }, + { + "artifact": "artifacts/macros/note_h__L1406__JTYPE_NUMBER.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1406:JTYPE_NUMBER", + "kind": "macro", + "line": 1406, + "name": "JTYPE_NUMBER", + "node_type": "macro", + "qualified_name": "JTYPE_NUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0f0966f0fe4ba11a05b77d0d6bcc815a4062ede4c198a58d106f7e4ae8d681b3" + }, + { + "artifact": "artifacts/macros/note_h__L1407__JTYPE_STRING_BLANK.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1407:JTYPE_STRING_BLANK", + "kind": "macro", + "line": 1407, + "name": "JTYPE_STRING_BLANK", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_BLANK", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "0304a2c5a38977aedc434e4dcef2c74a3752b4a0bc3e0577810841febbbbdca4" + }, + { + "artifact": "artifacts/macros/note_h__L1408__JTYPE_STRING_ZERO.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1408:JTYPE_STRING_ZERO", + "kind": "macro", + "line": 1408, + "name": "JTYPE_STRING_ZERO", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_ZERO", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d87cd77c94866643d02a13b8a97b577ce9c534175479850d212fb25572718ee7" + }, + { + "artifact": "artifacts/macros/note_h__L1409__JTYPE_STRING_NUMBER.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1409:JTYPE_STRING_NUMBER", + "kind": "macro", + "line": 1409, + "name": "JTYPE_STRING_NUMBER", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_NUMBER", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "cbf4df344baac3b0ea2947cb7603b45ca9dffe0ec43b95dc992ece7963a3d297" + }, + { + "artifact": "artifacts/macros/note_h__L1410__JTYPE_STRING_BOOL_TRUE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1410:JTYPE_STRING_BOOL_TRUE", + "kind": "macro", + "line": 1410, + "name": "JTYPE_STRING_BOOL_TRUE", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_BOOL_TRUE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "bd3d808fc84ea6239d4c095e58bea662edbeadd6326969239cff35b97dea975e" + }, + { + "artifact": "artifacts/macros/note_h__L1411__JTYPE_STRING_BOOL_FALSE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1411:JTYPE_STRING_BOOL_FALSE", + "kind": "macro", + "line": 1411, + "name": "JTYPE_STRING_BOOL_FALSE", + "node_type": "macro", + "qualified_name": "JTYPE_STRING_BOOL_FALSE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "99b314c06a6489e5b9d3f86c204a2c017274e2191f2ee5ffd5f4b52a6464da6c" + }, + { + "artifact": "artifacts/macros/note_h__L1412__JTYPE_STRING.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1412:JTYPE_STRING", + "kind": "macro", + "line": 1412, + "name": "JTYPE_STRING", + "node_type": "macro", + "qualified_name": "JTYPE_STRING", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "ca3d07247d5a2ec93088a17ffa3687b2946c30c674276f6bb3e179559d559eb2" + }, + { + "artifact": "artifacts/macros/note_h__L1413__JTYPE_OBJECT.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1413:JTYPE_OBJECT", + "kind": "macro", + "line": 1413, + "name": "JTYPE_OBJECT", + "node_type": "macro", + "qualified_name": "JTYPE_OBJECT", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "fd1ab84275c9d77bc45a266f1ea3fd1e6a19936639415a3cc4cfe58e9b392ebf" + }, + { + "artifact": "artifacts/macros/note_h__L1414__JTYPE_ARRAY.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1414:JTYPE_ARRAY", + "kind": "macro", + "line": 1414, + "name": "JTYPE_ARRAY", + "node_type": "macro", + "qualified_name": "JTYPE_ARRAY", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "7b02d7d784aec47ec4ae1e7249e3bcfe1463e1e404d432f60bfa58941cb78d2d" + }, + { + "artifact": "artifacts/macros/note_h__L1440__JGetObjectItemName.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1440:JGetObjectItemName", + "kind": "macro", + "line": 1440, + "name": "JGetObjectItemName", + "node_type": "macro", + "qualified_name": "JGetObjectItemName", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b9a302ddbe82e71c7f80e1daf9e1ccabc5c289ed317f1c17b0c7601d12244e70" + }, + { + "artifact": "artifacts/macros/note_h__L1443__JNTOA_PRECISION.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1443:JNTOA_PRECISION", + "kind": "macro", + "line": 1443, + "name": "JNTOA_PRECISION", + "node_type": "macro", + "qualified_name": "JNTOA_PRECISION", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "d46654d4f60c579819836f4921c044bab471173e6f9a314f00d2c1835afc1065" + }, + { + "artifact": "artifacts/macros/note_h__L1444__JNTOA_MAX.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1444:JNTOA_MAX", + "kind": "macro", + "line": 1444, + "name": "JNTOA_MAX", + "node_type": "macro", + "qualified_name": "JNTOA_MAX", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "a8b5a18e67ca1c2dc9e281f10de498aec0a4607486371ba3c5e8f4d2aca66b07" + }, + { + "artifact": "artifacts/types/note_h__L1523__typedef_1523.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:1523:typedef_1523", + "kind": "typedef", + "line": 1523, + "name": "typedef_1523", + "node_type": "typedef", + "qualified_name": "typedef_1523", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "3a2c92178b3b6098dd04eef0d25d0433f2b298712f6c26d3def182911abb9dcf" + }, + { + "artifact": "artifacts/macros/note_h__L1528__NOTE_MD5_HASH_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1528:NOTE_MD5_HASH_SIZE", + "kind": "macro", + "line": 1528, + "name": "NOTE_MD5_HASH_SIZE", + "node_type": "macro", + "qualified_name": "NOTE_MD5_HASH_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "f11045b4f99dec35c9d6ab7860877b1f97eede85bd392bebc98345ac1c5c4b74" + }, + { + "artifact": "artifacts/macros/note_h__L1529__NOTE_MD5_HASH_STRING_SIZE.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:1529:NOTE_MD5_HASH_STRING_SIZE", + "kind": "macro", + "line": 1529, + "name": "NOTE_MD5_HASH_STRING_SIZE", + "node_type": "macro", + "qualified_name": "NOTE_MD5_HASH_STRING_SIZE", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "b43e9d4cbb7f12dd9b732f40ced9e0b388f7881da6c395bf0651c75fee9e9b8b" + }, + { + "artifact": "artifacts/macros/note_h__L2033__NoteSend.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2033:NoteSend", + "kind": "macro", + "line": 2033, + "name": "NoteSend", + "node_type": "macro", + "qualified_name": "NoteSend", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "78085ce00537ced1172131f8ab5d2ee1133a8ae417601c20b8dfe0ff4d58408b" + }, + { + "artifact": "artifacts/macros/note_h__L2102__NP_SEGTYPE_LEN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2102:NP_SEGTYPE_LEN", + "kind": "macro", + "line": 2102, + "name": "NP_SEGTYPE_LEN", + "node_type": "macro", + "qualified_name": "NP_SEGTYPE_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "86e66abaed79df521c8a81b61e5d6d3c11828f06d78fdd11fe63084bfe52886a" + }, + { + "artifact": "artifacts/macros/note_h__L2103__NP_SEGLEN_LEN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2103:NP_SEGLEN_LEN", + "kind": "macro", + "line": 2103, + "name": "NP_SEGLEN_LEN", + "node_type": "macro", + "qualified_name": "NP_SEGLEN_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "56609fce32401b28b9016dd6c8d26cdccb363f64824cd92957831bb9a9564e5e" + }, + { + "artifact": "artifacts/macros/note_h__L2104__NP_SEGHDR_LEN.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2104:NP_SEGHDR_LEN", + "kind": "macro", + "line": 2104, + "name": "NP_SEGHDR_LEN", + "node_type": "macro", + "qualified_name": "NP_SEGHDR_LEN", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "4df6d27c619b03c191edf2dbf9fd361b926ebdb0067757b9d8937ac6d1ca13db" + }, + { + "artifact": "artifacts/types/note_h__L2109__typedef_2109.md", + "extraction_method": "regex-c-typedef", + "file": "note.h", + "id": "typedef:note.h:2109:typedef_2109", + "kind": "typedef", + "line": 2109, + "name": "typedef_2109", + "node_type": "typedef", + "qualified_name": "typedef_2109", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "verified", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "focused" + }, + "source_fingerprint": "83b33e603339c9cd3ae9eaa2cde94b9967e2e56a45cb22c06b763c5d2dea834f" + }, + { + "artifact": "artifacts/macros/note_h__L2182__TBOOL.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2182:TBOOL", + "kind": "macro", + "line": 2182, + "name": "TBOOL", + "node_type": "macro", + "qualified_name": "TBOOL", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "b00b654963bda1d7f313e887bdd24bb8cd47800e27fde7fce5a49ebe45a410b4" + }, + { + "artifact": "artifacts/macros/note_h__L2183__TINT8.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2183:TINT8", + "kind": "macro", + "line": 2183, + "name": "TINT8", + "node_type": "macro", + "qualified_name": "TINT8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e45cd0c0b8e3c7e2eca383e890177658252e58dfa25cdee20ce91ec491b4bd23" + }, + { + "artifact": "artifacts/macros/note_h__L2184__TINT16.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2184:TINT16", + "kind": "macro", + "line": 2184, + "name": "TINT16", + "node_type": "macro", + "qualified_name": "TINT16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "e2cd2513a30c214802a830556fe4a4182cb088996aec7bb02d98b963f0356da3" + }, + { + "artifact": "artifacts/macros/note_h__L2185__TINT24.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2185:TINT24", + "kind": "macro", + "line": 2185, + "name": "TINT24", + "node_type": "macro", + "qualified_name": "TINT24", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "22f41dcb7169384912d311681d43150d8aa1bb96c273791ddc9c86fb4c971d9f" + }, + { + "artifact": "artifacts/macros/note_h__L2186__TINT32.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2186:TINT32", + "kind": "macro", + "line": 2186, + "name": "TINT32", + "node_type": "macro", + "qualified_name": "TINT32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "4daec8756de66e335f06616ea6a7788bc56c1efc2a230766ec120cfcd39f863c" + }, + { + "artifact": "artifacts/macros/note_h__L2187__TINT64.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2187:TINT64", + "kind": "macro", + "line": 2187, + "name": "TINT64", + "node_type": "macro", + "qualified_name": "TINT64", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "c5bed6a672d3b7b65ae96bebaf69c2baef3573a5966fa0ecf9ca31690be18a73" + }, + { + "artifact": "artifacts/macros/note_h__L2188__TUINT8.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2188:TUINT8", + "kind": "macro", + "line": 2188, + "name": "TUINT8", + "node_type": "macro", + "qualified_name": "TUINT8", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "36f979390c31236d5fee52a4982ffb755c05ac67532dbb368cb3e2b255f4c04c" + }, + { + "artifact": "artifacts/macros/note_h__L2189__TUINT16.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2189:TUINT16", + "kind": "macro", + "line": 2189, + "name": "TUINT16", + "node_type": "macro", + "qualified_name": "TUINT16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "f8f2728d026e3a743c41f45f6ca05ff9617b76b92ed868150737edd796188e64" + }, + { + "artifact": "artifacts/macros/note_h__L2190__TUINT24.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2190:TUINT24", + "kind": "macro", + "line": 2190, + "name": "TUINT24", + "node_type": "macro", + "qualified_name": "TUINT24", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "7f4f952f86df9ed8c4486bd680abf0725c16c7c768183f6afb538b00b6338955" + }, + { + "artifact": "artifacts/macros/note_h__L2191__TUINT32.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2191:TUINT32", + "kind": "macro", + "line": 2191, + "name": "TUINT32", + "node_type": "macro", + "qualified_name": "TUINT32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "08d0a83f3bdec6a1925c70cde73899ab15ab880242ffba33743f0a31e51b86a4" + }, + { + "artifact": "artifacts/macros/note_h__L2192__TFLOAT16.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2192:TFLOAT16", + "kind": "macro", + "line": 2192, + "name": "TFLOAT16", + "node_type": "macro", + "qualified_name": "TFLOAT16", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "43bddafa3d97e8bb8ce011cae3a11daac1b1343fdec52b64b26070c78ff2352c" + }, + { + "artifact": "artifacts/macros/note_h__L2193__TFLOAT32.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2193:TFLOAT32", + "kind": "macro", + "line": 2193, + "name": "TFLOAT32", + "node_type": "macro", + "qualified_name": "TFLOAT32", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "cfdd76c9ff69296f5c635823b27a18593b74cb5930280d04a79f2212a6e1964d" + }, + { + "artifact": "artifacts/macros/note_h__L2194__TFLOAT64.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2194:TFLOAT64", + "kind": "macro", + "line": 2194, + "name": "TFLOAT64", + "node_type": "macro", + "qualified_name": "TFLOAT64", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "a8b7cdb4f443ccaf9d8c755fb3d2628747f15a513c3f75426f396a3679fc3b6e" + }, + { + "artifact": "artifacts/macros/note_h__L2195__TSTRING.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2195:TSTRING", + "kind": "macro", + "line": 2195, + "name": "TSTRING", + "node_type": "macro", + "qualified_name": "TSTRING", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "48e415b96bca9a0e59c07c5ec7a11c9346684174aa34d17ce9e477b5c0533c06" + }, + { + "artifact": "artifacts/macros/note_h__L2196__TSTRINGV.md", + "extraction_method": "regex-c-macro", + "file": "note.h", + "id": "macro:note.h:2196:TSTRINGV", + "kind": "macro", + "line": 2196, + "name": "TSTRINGV", + "node_type": "macro", + "qualified_name": "TSTRINGV", + "research_status": { + "behavior_status": "finalized", + "callee_status": "verified", + "caller_status": "none-found", + "confidence": "high", + "identity_status": "verified", + "test_evidence_status": "none" + }, + "source_fingerprint": "6d14a282ab08e62c0ea3032d2b89ae8ccbf49fe6ab9918cc411dd5735af6eb25" + } + ] +} diff --git a/source-research/overview.md b/source-research/overview.md new file mode 100644 index 00000000..1ff4e17b --- /dev/null +++ b/source-research/overview.md @@ -0,0 +1,18 @@ +# Source-Derived Overview + +Status: complete source-first create pass. Generated at 2026-06-29T22:42:19+00:00. + +This repository is a portable C SDK centered on `note.h` as the public interface, `n_hooks.c` as the platform hook and active-interface dispatch layer, `n_request.c` as the JSON request transaction orchestrator, `n_i2c.c` and `n_serial.c` as transport implementations, `n_cjson.c`/`n_cjson_helpers.c` as the embedded JSON layer, `n_helpers.c` as high-level Notecard helper APIs, and codec/utility files for COBS, MD5, numeric conversion, and portability helpers. + +The finalized research artifacts cover 585 source nodes: public macros and typedefs, internal helpers, transport functions, JSON core routines, high-level helpers, hook registration and dispatch, binary/COBS/MD5 behavior, compile-time configuration branches, and focused test evidence where available. Machine-readable source maps live under `inventory/`; per-node source artifacts live under `artifacts/`; the finalized claims are in `inventory/claims-ledger.json`. + +Key source-backed conclusions: + +- Platform behavior is behind hook typedefs and hook registry state in `n_hooks.c`; active serial/I2C dispatch is selected by `_noteSetActiveInterface`. +- Request object APIs flow through `NoteRequest*`, `NoteTransaction`, and `_noteTransactionShouldLock`; raw JSON string requests use the separate `NoteRequestResponseJSON` path. +- I2C and serial transports move newline-framed bytes; binary payload helpers own COBS framing and MD5 verification. +- JSON behavior is cJSON-derived, with `J` linked nodes, `parse_buffer`/`printbuffer` internals, custom numeric conversion, allocation through SDK hooks, and explicit ownership transfer rules for add/detach/delete APIs. +- Low-memory configuration disables user-agent and CRC request paths, changes ERRSTR/log behavior, and reduces allocation chunk size. +- Public header constants and typedefs are finalized, including I2C compatibility macro lattices, payload segment layout, template type codes, numeric bounds, log levels, and hook callback signatures. + +Use `source-research/research-index.md` as the re-entry point, `inventory/dependency-graph.json` for graph queries, and individual artifacts for source locations and evidence details. diff --git a/source-research/research-index.md b/source-research/research-index.md new file mode 100644 index 00000000..4e95c926 --- /dev/null +++ b/source-research/research-index.md @@ -0,0 +1,91 @@ +# Source Research Index + +## Scope + +- Operation: create +- Research state: complete +- Internal unit: slice +- Execution mode: authorized-worker-background +- Documentation policy: forbidden +- Test policy: focused source evidence only +- Source root: `/Users/zak/Development/GitHub/blues/note-c` +- Artifact directory: `/Users/zak/Development/GitHub/blues/note-c/source-research` + +## Inventory + +- Source/build/interface files: 28 +- Excluded test/source-evidence files: 208 via explicit exclusions; focused test evidence was inspected only for production/API symbols. +- Lifecycle status: 585 finalized / 585 tracked nodes; 0 preliminary. +- Node kinds: 341 functions, 205 macros, 5 structs, 34 typedefs. +- Test evidence: 431 focused, 154 none. +- Caller evidence: 405 verified, 180 none-found. +- Confidence: 585 high. +- Graph: 585 nodes, 1342 edges. +- Graph substrate: `inventory/graph-substrate.json`. + +## Machine-Readable Artifacts + +- `research-manifest.json` +- `inventory/source-inventory.json` +- `inventory/graph-substrate.json` +- `inventory/symbol-index.json` +- `inventory/dependency-graph.json` +- `inventory/source-node.schema.json` +- `inventory/claims-ledger.json` +- `inventory/progress-summary.json` +- `inventory/artifact-status.json` +- `inventory/evidence-validation.json` + +## Worker Authorization + +- User authorized as many bounded sub-agents/workers as needed to complete create research. +- Workers inspected assigned source slices and returned source-location evidence reports. +- The conductor merged evidence into canonical artifacts, graph metadata, lifecycle state, and claims. + +## Lifecycle Frontier + +- Research state is `complete`. +- `frontier/work-queue.json` has 0 ready nodes and 0 remaining preliminary nodes. +- Current active-slice file: `frontier/active-slice.json`. +- Active-slice status: complete. +- Normal final-response validation passed with `validate_research.py source-research --final-response`. + +## Finalized Artifacts + +- Full finalized-node list: `inventory/artifact-status.json`. +- Source-derived overview: `overview.md`. +- Completed source coverage includes public `note.h` macros/typedefs, hook registry and active-interface dispatch, request orchestration, I2C/serial transports, cJSON core and helpers, high-level helpers, binary/COBS/MD5 utilities, compile-time configuration branches, and portability helpers. + +## Claims + +- Claims ledger: `inventory/claims-ledger.json`. +- Counts: 29 finalized, 29 total. +- Claims are source-backed and reference implementation locations, worker evidence reports, artifact status, and evidence validation outputs. + +## Validation + +- Last lifecycle evidence pass had 0 violations and 0 warnings. +- Last normal validation passed: `validate_research.py source-research --require-slices --min-finalized-nodes 585`. +- Final response gate passed: `validate_research.py source-research --final-response`. + +## Evidence Notes + +- The initial create pass ran before CMake was available, so Apple `clang` syntax checks from the initial substrate were recorded in `inventory/graph-substrate.json`; the later CMake/Clang AST validation section below records the compile-database update. +- Focused tests were inspected as source evidence but were not executed during this research pass. +- The initial source-research create pass changed only `source-research/` artifacts; later architecture-doc alignment should keep this index and the architecture docs consistent. + + +## CMake / Clang AST Validation + +- Updated: 2026-07-02T23:45:52+00:00 +- CMake: installed with Homebrew; `cmake version 4.3.4`. +- Default production compile database: `inventory/compile_commands.default.json` with 15 translation units, `HAVE_STRLCPY`, `HAVE_STRLCAT`, `n_str.c` excluded, `n_ua.c` included. +- Low-memory/single-precision compile database: `inventory/compile_commands.lowmem-single.json` with 14 translation units, `HAVE_STRLCPY`, `HAVE_STRLCAT`, `NOTE_C_LOW_MEM`, `NOTE_C_SINGLE_PRECISION`, `n_str.c` and `n_ua.c` excluded. +- Both CMake builds passed with the same numeric-conversion warnings previously inferred by manual clang checks. +- Clang AST validation report: `inventory/cmake-ast-validation.json`. +- Default AST revalidation found 335 compiled function definitions and 768 project-local direct call edges, with 0 AST definitions missing from the graph and 0 unresolved direct-call edge candidates. Four graph functions remain feature-disabled in the default variant: heartbeat callback functions and `NOTE_C_SHOW_MALLOC` pointer formatting. +- Low-memory/single-precision AST revalidation found 325 compiled function definitions and 750 project-local direct call edges, with 0 AST definitions missing from the graph and 0 unresolved direct-call edge candidates. The additional graph functions not seen by that variant are expected compile-time exclusions for CRC helpers and related conversion support. +- The earlier CMake/Clang validation added 38 high-confidence unverified `calls_static` edges to `inventory/dependency-graph.json`; the 2026-07-02 revalidation added 0 edges. +- Dependency graph summary after revalidation: 585 nodes, 1342 edges. +- Final validation: `validate_research.py source-research` and `validate_research.py source-research --final-response` passed after the 2026-07-02 update. + diff --git a/source-research/research-manifest.json b/source-research/research-manifest.json new file mode 100644 index 00000000..9c2d7597 --- /dev/null +++ b/source-research/research-manifest.json @@ -0,0 +1,298 @@ +{ + "artifact_dir": "/Users/zak/Development/GitHub/blues/note-c/source-research", + "artifact_lifecycle": { + "completed_at_utc": "2026-06-29T22:42:19+00:00", + "create_is_comprehensive": true, + "finalized_nodes": 585, + "generated_inventory_is_completion": false, + "repair_may_downgrade_invalid_finalized_claims": true, + "update_marks_impacted_artifacts_stale": true + }, + "artifacts": { + "claims_ledger": "inventory/claims-ledger.json", + "dependency_graph": "inventory/dependency-graph.json", + "graph_substrate": "inventory/graph-substrate.json", + "index": "research-index.md", + "source_inventory": "inventory/source-inventory.json", + "source_node_schema": "inventory/source-node.schema.json", + "symbol_index": "inventory/symbol-index.json" + }, + "documentation_policy": "forbidden", + "exclusions": { + "documentation_files": [], + "other_files": [ + ".github/actions/load-ci-image/action.yml", + ".github/copilot-instructions.md", + ".github/workflows/ci.yml", + ".github/workflows/md5srv-tests.yml", + ".github/workflows/notecard-binary-tests.yml", + ".github/workflows/publish_docs_site.yml", + "AGENTS.md", + "CLAUDE.md", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "GEMINI.md", + "README.md", + "test/CMakeLists.txt", + "test/README.md", + "test/hitl/card.binary/.gitignore", + "test/hitl/card.binary/after_upload.py", + "test/hitl/card.binary/lib/notecard_binary/NotecardBinary.cpp", + "test/hitl/card.binary/lib/notecard_binary/NotecardBinary.h", + "test/hitl/card.binary/lib/notecard_binary/NotecardComms.cpp", + "test/hitl/card.binary/lib/notecard_binary/NotecardComms.h", + "test/hitl/card.binary/lib/notecard_binary/defines.txt", + "test/hitl/card.binary/lib/notecard_binary/small_img.cpp", + "test/hitl/card.binary/lib/notecard_binary/small_img.h", + "test/hitl/card.binary/platformio.ini", + "test/hitl/card.binary/src/main.cpp", + "test/hitl/card.binary/test/LOCAL_TESTING.md", + "test/hitl/card.binary/test/README.md", + "test/hitl/card.binary/test/test_binary_generators.cpp", + "test/hitl/card.binary/test/test_binary_generators.h", + "test/hitl/card.binary/test/test_card_binary.cpp", + "test/hitl/card.binary/test/test_card_binary.h", + "test/hitl/card.binary/test/test_main.cpp", + "test/hitl/card.binary/test/test_unity_util.cpp", + "test/hitl/card.binary/test/test_unity_util.h", + "test/hitl/scripts/md5srv.bats", + "test/hitl/scripts/md5srv.py", + "test/hitl/scripts/note.json", + "test/include/fff.h", + "test/include/test_static.h", + "test/include/time_mocks.h", + "test/integration/CMakeLists.txt", + "test/integration/link_test.c", + "test/src/JAddBinaryToObject_test.cpp", + "test/src/JAllocString_test.cpp", + "test/src/JAtoI_test.cpp", + "test/src/JAtoN_test.cpp", + "test/src/JBaseItemType_test.cpp", + "test/src/JBoolValue_test.cpp", + "test/src/JContainsString_test.cpp", + "test/src/JGetArray_test.cpp", + "test/src/JGetBinaryFromObject_test.cpp", + "test/src/JGetBool_test.cpp", + "test/src/JGetInt_test.cpp", + "test/src/JGetItemName_test.cpp", + "test/src/JGetNumber_test.cpp", + "test/src/JGetObject_test.cpp", + "test/src/JGetString_test.cpp", + "test/src/JGetType_test.cpp", + "test/src/JIntValue_test.cpp", + "test/src/JIsExactString_test.cpp", + "test/src/JIsNullString_test.cpp", + "test/src/JIsPresent_test.cpp", + "test/src/JItoA_test.cpp", + "test/src/JNtoA_test.cpp", + "test/src/JNumberValue_test.cpp", + "test/src/JPrintUnformatted_test.cpp", + "test/src/JSON_number_handling_test.cpp", + "test/src/JStringValue_test.cpp", + "test/src/JType_test.cpp", + "test/src/NoteAdd_test.cpp", + "test/src/NoteAuxSerialFlowControl_test.cpp", + "test/src/NoteBinaryCodecDecode_test.cpp", + "test/src/NoteBinaryCodecEncode_test.cpp", + "test/src/NoteBinaryCodecMaxDecodedLength_test.cpp", + "test/src/NoteBinaryCodecMaxEncodedLength_test.cpp", + "test/src/NoteBinaryStoreDecodedLength_test.cpp", + "test/src/NoteBinaryStoreEncodedLength_test.cpp", + "test/src/NoteBinaryStoreReceive_test.cpp", + "test/src/NoteBinaryStoreReset_test.cpp", + "test/src/NoteBinaryStoreTransmit_test.cpp", + "test/src/NoteClearLocation_test.cpp", + "test/src/NoteDebugSyncStatus_test.cpp", + "test/src/NoteDebug_test.cpp", + "test/src/NoteDebugf_test.cpp", + "test/src/NoteDelayMs_test.cpp", + "test/src/NoteErrorClean_test.cpp", + "test/src/NoteFactoryReset_test.cpp", + "test/src/NoteFree_test.cpp", + "test/src/NoteGetActiveInterface_test.cpp", + "test/src/NoteGetContact_test.cpp", + "test/src/NoteGetEnvNumber_test.cpp", + "test/src/NoteGetEnv_test.cpp", + "test/src/NoteGetFnDebugOutput_test.cpp", + "test/src/NoteGetFnHeartbeat_test.cpp", + "test/src/NoteGetFnI2CMutex_test.cpp", + "test/src/NoteGetFnI2C_test.cpp", + "test/src/NoteGetFnMutex_test.cpp", + "test/src/NoteGetFnNoteMutex_test.cpp", + "test/src/NoteGetFnSerial_test.cpp", + "test/src/NoteGetFnTransaction_test.cpp", + "test/src/NoteGetFn_test.cpp", + "test/src/NoteGetI2CAddress_test.cpp", + "test/src/NoteGetI2CMtu_test.cpp", + "test/src/NoteGetLocationMode_test.cpp", + "test/src/NoteGetLocation_test.cpp", + "test/src/NoteGetMs_test.cpp", + "test/src/NoteGetNetStatus_test.cpp", + "test/src/NoteGetServiceConfig_test.cpp", + "test/src/NoteGetStatus_test.cpp", + "test/src/NoteGetTemperature_test.cpp", + "test/src/NoteGetVersion_test.cpp", + "test/src/NoteGetVoltage_test.cpp", + "test/src/NoteI2CAddress_test.cpp", + "test/src/NoteI2CMax_test.cpp", + "test/src/NoteIsConnected_test.cpp", + "test/src/NoteLocalTimeST_test.cpp", + "test/src/NoteLocationValid_test.cpp", + "test/src/NoteMalloc_test.cpp", + "test/src/NoteNewCommand_test.cpp", + "test/src/NoteNewRequest_test.cpp", + "test/src/NotePayloadRetrieveAfterSleep_test.cpp", + "test/src/NotePayloadSaveAndSleep_test.cpp", + "test/src/NotePayload_test.cpp", + "test/src/NotePing_test.cpp", + "test/src/NotePrint_test.cpp", + "test/src/NotePrintf_test.cpp", + "test/src/NotePrintln_test.cpp", + "test/src/NoteRegion_test.cpp", + "test/src/NoteRequestResponseJSON_test.cpp", + "test/src/NoteRequestResponseWithRetry_test.cpp", + "test/src/NoteRequestResponse_test.cpp", + "test/src/NoteRequestWithRetry_test.cpp", + "test/src/NoteRequest_test.cpp", + "test/src/NoteReset_test.cpp", + "test/src/NoteResponseError_test.cpp", + "test/src/NoteResumeTransactionDebug_test.cpp", + "test/src/NoteSendToRoute_test.cpp", + "test/src/NoteSerialHooks_test.cpp", + "test/src/NoteSetActiveInterface_test.cpp", + "test/src/NoteSetContact_test.cpp", + "test/src/NoteSetEnvDefaultNumber_test.cpp", + "test/src/NoteSetEnvDefault_test.cpp", + "test/src/NoteSetFnDebugOutput_test.cpp", + "test/src/NoteSetFnDefault_test.cpp", + "test/src/NoteSetFnDisabled_test.cpp", + "test/src/NoteSetFnHeartbeat_test.cpp", + "test/src/NoteSetFnI2CDefault_test.cpp", + "test/src/NoteSetFnI2CMutex_test.cpp", + "test/src/NoteSetFnI2C_test.cpp", + "test/src/NoteSetFnMutex_test.cpp", + "test/src/NoteSetFnNoteMutex_test.cpp", + "test/src/NoteSetFnSerialDefault_test.cpp", + "test/src/NoteSetFnSerial_test.cpp", + "test/src/NoteSetFnTransaction_test.cpp", + "test/src/NoteSetFn_test.cpp", + "test/src/NoteSetI2CAddress_test.cpp", + "test/src/NoteSetI2CMtu_test.cpp", + "test/src/NoteSetLocationMode_test.cpp", + "test/src/NoteSetLocation_test.cpp", + "test/src/NoteSetLogLevel_test.cpp", + "test/src/NoteSetProductID_test.cpp", + "test/src/NoteSetRequestTimeout_test.cpp", + "test/src/NoteSetSerialNumber_test.cpp", + "test/src/NoteSetSyncMode_test.cpp", + "test/src/NoteSetUploadMode_test.cpp", + "test/src/NoteSleep_test.cpp", + "test/src/NoteSuspendTransactionDebug_test.cpp", + "test/src/NoteTemplate_test.cpp", + "test/src/NoteTimeSet_test.cpp", + "test/src/NoteTime_test.cpp", + "test/src/NoteTransactionHooks_test.cpp", + "test/src/NoteTransaction_test.cpp", + "test/src/NoteUserAgent_test.cpp", + "test/src/NoteWake_test.cpp", + "test/src/_cobsDecode_test.cpp", + "test/src/_cobsEncode_test.cpp", + "test/src/_cobsEncodedLength_test.cpp", + "test/src/_cobsEncodedMaxLength_test.cpp", + "test/src/_cobsGuaranteedFit_test.cpp", + "test/src/_crcAdd_test.cpp", + "test/src/_crcError_test.cpp", + "test/src/_errDoc_test.cpp", + "test/src/_i2cChunkedReceive_test.cpp", + "test/src/_i2cChunkedTransmit_test.cpp", + "test/src/_i2cNoteChunkedReceive_test.cpp", + "test/src/_i2cNoteChunkedTransmit_test.cpp", + "test/src/_i2cNoteQueryLength_test.cpp", + "test/src/_i2cNoteReset_test.cpp", + "test/src/_i2cNoteTransaction_test.cpp", + "test/src/_j_tolower_test.cpp", + "test/src/_noteChunkedReceive_test.cpp", + "test/src/_noteChunkedTransmit_test.cpp", + "test/src/_noteHardReset_test.cpp", + "test/src/_noteHeartbeat_test.cpp", + "test/src/_noteI2CReceive_test.cpp", + "test/src/_noteI2CReset_test.cpp", + "test/src/_noteI2CTransmit_test.cpp", + "test/src/_noteJSONTransaction_test.cpp", + "test/src/_noteSerialAvailable_test.cpp", + "test/src/_noteSerialReceive_test.cpp", + "test/src/_noteSerialReset_test.cpp", + "test/src/_noteSerialTransmit_test.cpp", + "test/src/_noteSetActiveInterface_test.cpp", + "test/src/_noteTransaction_calculateTimeoutMs_test.cpp", + "test/src/_serialChunkedReceive_test.cpp", + "test/src/_serialChunkedTransmit_test.cpp", + "test/src/_serialNoteReset_test.cpp", + "test/src/_serialNoteTransaction_test.cpp" + ], + "patterns": [ + "docs/**", + "test/**", + ".github/**", + "README.md", + "AGENTS.md", + "CLAUDE.md", + "GEMINI.md", + "CONTRIBUTING.md", + "CODE_OF_CONDUCT.md" + ], + "test_files": [] + }, + "execution_mode": "authorized-worker-background", + "generated_at_utc": "2026-06-29T15:53:25+00:00", + "internal_unit": "slice", + "legacy_mode": null, + "operation": "create", + "research_state": "complete", + "schema_version": 1, + "source_root": "/Users/zak/Development/GitHub/blues/note-c", + "test_policy": "focused", + "tool": "source_inventory.py", + "validation_runs": [ + { + "ast_report": "inventory/cmake-ast-validation.json", + "at_utc": "2026-06-30T00:20:06+00:00", + "cmake_version": "cmake version 4.3.4", + "default_compile_database": "inventory/compile_commands.default.json", + "graph_edges_added": 38, + "kind": "cmake-clang-ast-validation", + "lowmem_single_compile_database": "inventory/compile_commands.lowmem-single.json" + }, + { + "ast_report": "inventory/cmake-ast-validation.json", + "at_utc": "2026-07-02T23:45:52+00:00", + "default_ast_function_definitions": 335, + "default_ast_project_call_edges": 768, + "default_compile_database": "inventory/compile_commands.default.json", + "default_edge_candidates": 0, + "default_missing_ast_definitions_in_graph": 0, + "graph_edges_added": 0, + "kind": "cmake-clang-ast-revalidation", + "lowmem_single_ast_function_definitions": 325, + "lowmem_single_ast_project_call_edges": 750, + "lowmem_single_compile_database": "inventory/compile_commands.lowmem-single.json", + "lowmem_single_edge_candidates": 0, + "lowmem_single_missing_ast_definitions_in_graph": 0 + }, + { + "at_utc": "2026-07-02T23:47:04+00:00", + "commands": [ + "validate_research.py source-research", + "validate_research.py source-research --final-response" + ], + "kind": "source-research-final-validation", + "result": "passed" + } + ], + "worker_authorization": { + "authorization_source": "user message: Create as many sub-agents/workers as you need to ensure this task completes.", + "authorized": true, + "conductor": "foreground agent owns canonical artifacts, lifecycle state, validation, and final completion decisions", + "worker_role": "bounded source inspections and evidence reports only" + } +} diff --git a/source-research/worker-reports/codecs-binary-portability.md b/source-research/worker-reports/codecs-binary-portability.md new file mode 100644 index 00000000..e019d4bd --- /dev/null +++ b/source-research/worker-reports/codecs-binary-portability.md @@ -0,0 +1,48 @@ +# Codecs, Binary, And Portability Worker Report + +## Scope + +- Worker: `019f1417-dee0-7eb1-9f23-3be579bbc0de` +- Report status: merged as source-backed inspected evidence +- Source policy: source-only; focused test/build evidence only +- Primary source inspected: `n_cobs.c`, `n_b64.c`, `n_md5.c`, `n_str.c`, relevant declarations in `note.h` and `n_lib.h` +- Supporting source inspected: binary helpers in `n_helpers.c`, request CRC paths in `n_request.c`, chunked dispatch in `n_i2c.c`, `n_serial.c`, `n_hooks.c`, and CMake inclusion logic in `CMakeLists.txt` + +## Evidence Summary + +- COBS internals are private declarations in `n_lib.h`. Public binary codec APIs are declared in `note.h` and implemented in `n_helpers.c`. +- Binary COBS uses local `NOTE_C_BINARY_EOP = '\n'`; `_cobsEncode` XORs code/data bytes with EOP so encoded bytes do not contain newline, and binary store transmit appends newline separately. +- `_cobsDecode` supports in-place decode, inserts restored zero bytes between non-`0xFF` blocks, stops if the decoded code byte is zero, clamps truncated input to remaining bytes, and returns a decoded length only. It has no explicit malformed-input error channel. +- `_cobsEncodedLength` excludes EOP. `_cobsEncodedMaxLength` includes EOP. `_cobsGuaranteedFit` computes the inverse fit for a buffer that includes EOP and returns 0 for buffers `<= 2`. +- Base64 helpers are local: `JB64EncodeLen` returns encoded capacity including NUL; `JB64Encode` writes NUL and returns count including NUL; `JB64DecodeLen` returns decoded capacity plus NUL; `JB64Decode` writes NUL and returns decoded byte count. +- JSON binary helpers use base64. `JAddBinaryToObject` allocates, encodes, then `JCreateStringValue` adopts the allocated string; normal `JDelete` frees non-reference `valuestring`. `JGetBinaryFromObject` allocates decoded data, NUL-terminates for convenience, and returns ownership to caller for `JFree`. +- MD5 is self-contained. `NoteMD5Init`, `NoteMD5Update`, `NoteMD5Final`, and `NoteMD5Transform` implement block MD5; one-shot and string wrappers call those. Binary receive/transmit compare or send lowercase hex MD5 strings through `NoteMD5HashString`. +- Payload sleep helpers base64-encode `NotePayloadDesc` data for `card.attn` payloads and decode after wake. Segment helpers store raw binary chunks as 4-byte type plus native `uint32_t` length plus bytes. + +## Verified Searches + +- Exact production search for `_cobsDecode`, `_cobsEncode`, `_cobsEncodedLength`, `_cobsEncodedMaxLength`, `_cobsGuaranteedFit`, `NoteBinaryCodec*`, and `NoteBinaryStore*` found declarations in `note.h`/`n_lib.h`, COBS definitions in `n_cobs.c`, and production callers in `n_helpers.c`. +- Exact production search for `JB64EncodeLen`, `JB64Encode`, `JB64DecodeLen`, `JB64Decode`, `JAddBinaryToObject`, and `JGetBinaryFromObject` found definitions in `n_b64.c`/`n_cjson_helpers.c`, public declarations in `note.h`, and callers in `n_helpers.c` sleep payload paths. +- Exact production search for `NoteMD5*` and `n_htoa8` found declarations in `note.h`, definitions/internal calls in `n_md5.c`, and production callers at `n_helpers.c:469` and `n_helpers.c:615`. +- Exact production search for `_ChunkedReceive` and `_ChunkedTransmit` found binary store callers in `n_helpers.c`, dispatch in `n_hooks.c`, and transport implementations in `n_i2c.c`/`n_serial.c`. + +## Boundaries + +- Binary store receive validates buffer, locks the Notecard, requests `card.binary.get`, receives newline-framed bytes, errors if extra data remains, strips newline, decodes in place, requires decoded length match, NUL-marks `buffer[decLen]`, then verifies MD5. +- Binary store transmit mutates the caller buffer: computes MD5 first, shifts unencoded bytes to the buffer end, encodes at the front, appends newline, sends `card.binary.put`, then chunk-transmits. On most failures it decodes back to restore caller data; on success it leaves the buffer modified. +- General JSON request CRC is separate from COBS binary framing. CRC is disabled under `NOTE_C_LOW_MEM`, added only to requests, validated/stripped before JSON parse, and causes retry. `{bad-bin}` is not retried in the general request path; binary transmit has its own 3-attempt validation loop. +- `NoteBinaryCodecDecode` size checking uses `_cobsGuaranteedFit(encDataLen)`, which is not a strict decoded-output upper bound. In-place decode with `decBufSize == encDataLen` is safe by COBS shrink behavior, but artifacts should avoid claiming this wrapper fully validates arbitrary small output buffers. + +## Portability + +- `n_str.c` is included only when `NOT HAVE_STRLCPY OR NOT HAVE_STRLCAT`; CMake publishes `HAVE_STRLCPY` and `HAVE_STRLCAT` compile definitions to targets. +- `note.h` declares only missing `strlcpy` or `strlcat`; `n_str.c` defines both, weak on non-MSVC and non-weak for `_MSC_VER`. +- Partial platform availability matters: if exactly one of `strlcpy` or `strlcat` exists, CMake still compiles `n_str.c`, which defines both helpers. +- External/system dependencies in this slice are standard C memory/string routines, CMake `CheckSymbolExists`, and platform hooks for allocation/free, time, locks, I2C, and serial transport. No external crypto, base64, or COBS library is used. + +## Recommended Claims + +- Public `NoteBinaryCodec*` APIs wrap private COBS helpers with newline-as-EOP XOR policy. +- `card.binary.*` helpers own Notecard handshakes, length checks, MD5 status verification, newline transport framing, and reset/error behavior. +- `strlcpy` and `strlcat` are conditional bundled portability helpers, with weak definitions except on MSVC and CMake-defined public guards. +- COBS decode reports length only and does not distinguish malformed/truncated input from valid short decode; wrapper buffer validation is strongest for documented in-place or encoded-buffer-sized usage. diff --git a/source-research/worker-reports/ftoa-number-formatting.md b/source-research/worker-reports/ftoa-number-formatting.md new file mode 100644 index 00000000..0c60f050 --- /dev/null +++ b/source-research/worker-reports/ftoa-number-formatting.md @@ -0,0 +1,84 @@ +# ftoa number formatting worker report + +Scope: `n_ftoa.c:56` `JNtoA`, its file-local helpers/macros used by that path, declarations in public/internal headers, and direct production callers/focused tests. Documentation/changelog/architecture files were not read. Canonical source-research artifacts were not edited. + +## Source locations + +- Public number type/config: `note.h:48-58` selects `NOTE_C_SINGLE_PRECISION` when float/double exponent ranges match; `note.h:84-88` typedefs `JNUMBER` as `float` in that mode and `double` otherwise. +- Public formatter contract: `note.h:1443-1455` defines `JNTOA_PRECISION` as `16`, `JNTOA_MAX` as `44`, and declares `char * JNtoA(JNUMBER f, char * buf, int precision)`. +- Internal include path: `n_lib.h:19` includes `note.h`; `n_ftoa.c:22-24` includes `n_lib.h`, ``, and ``. +- Formatter implementation: `n_ftoa.c:26-34` flag macros; `n_ftoa.c:36-44` static helper prototypes; `n_ftoa.c:45-50` `OUTCHAR`; `n_ftoa.c:56-71` `JNtoA`; `n_ftoa.c:73-376` `fmtflt`; `n_ftoa.c:378-413` `fmtstr`; `n_ftoa.c:415-423` `printsep`/`getnumsep`; `n_ftoa.c:426-445` `getexponent`; `n_ftoa.c:448-459` `convert`; `n_ftoa.c:462-483` `cast`; `n_ftoa.c:486-494` `myround`; `n_ftoa.c:497-510` `mypow10`. +- JSON print caller: `n_cjson.c:412-471` `_print_number`; public print entries are `JPrint`/`JPrintUnformatted`/`JPrintUnformattedOmitEmpty` at `n_cjson.c:1032-1064`, `JPrintBuffered` at `n_cjson.c:1067-1095`, and `JPrintPreallocated*` at `n_cjson.c:1097-1125`. +- JSON declarations: `n_cjson.h:192-203` declares the public print entries; `n_cjson.h:78-96` defines `struct J` with `valueint` and `valuenumber`. + +## Behavior summary + +`JNtoA` is a no-allocation public wrapper. It defaults negative precision to `JNTOA_PRECISION` (`16`), uses only `PRINT_F_TYPE_G`, calls `fmtflt` with a fixed `JNTOA_MAX` output size, converts `fmtflt`'s integer-overflow sentinel to the string `"0"`, NUL-terminates, and returns the caller's `buf`. + +`fmtflt` implements a constrained `%g`-style conversion. It handles sign and direct NaN/Infinity text, decrements `%g` precision to fractional precision, chooses fixed or exponent style based on the C99 `%g` exponent rule, clamps precision by `sizeof(uintmax_t)` to 9/19/38 digits, splits absolute value into integer/fractional parts, rounds the scaled fraction, carries into the integer/exponent when needed, converts integer/fraction/exponent digits in reverse, omits trailing fractional zeros for `%g`, and emits characters through `OUTCHAR`. + +Helper roles: + +- `OUTCHAR` writes only when `len + 1 < size`, then always increments `len`. +- `fmtstr` is used for direct `JNtoA` NaN/Infinity text and padding, but JSON printing bypasses non-finite numbers before `JNtoA`. +- `printsep`/`getnumsep` implement comma grouping but are inactive for `JNtoA` because `PRINT_F_QUOTE` is never set by `JNtoA`. +- `getexponent` computes a decimal exponent with loop bounds `[-1022, 1023]`. +- `convert` writes unterminated reverse digits for unsigned integer values. +- `cast` returns `UINTMAX_MAX` as an overflow sentinel and compensates for platforms that incorrectly round long-double-to-integer casts upward. +- `myround` is half-up rounding over `cast`. +- `mypow10` multiplies/divides by 10 iteratively for positive/negative exponents. + +JSON printing uses this formatter only for non-integral numeric values. `_print_number` rejects null inputs, allocates a local `number_buffer[JNTOA_MAX]`, maps NaN/Infinity to `"null"` with `strlcpy`, calls `JNtoA(vnum, nbuf, -1)` when `vnum != (JNUMBER)vint`, otherwise calls `JItoA(vint, nbuf)`, validates `strlen(nbuf) <= JNTOA_MAX - 1`, reserves output via `_ensure`, copies bytes, normalizes the locale decimal separator back to `.`, and advances the print offset. Number object construction influences that branch: parse/set/create-number paths saturate `valueint` for out-of-range `JNUMBER` (`n_cjson.c:300-337`, `n_cjson.c:2330-2347`), while `JCreateInteger` stores exact integer and numeric forms (`n_cjson.c:2349-2357`). + +## Project-local callees + +- `JNtoA` -> `fmtflt`. +- `fmtflt` -> `fmtstr`, `getexponent`, `mypow10`, `cast`, `myround`, `convert`, `getnumsep`, `printsep`, and macro `OUTCHAR`; external/library calls are `isnan` and `isinf`. +- `myround` -> `cast`; `printsep` and `fmtstr` -> `OUTCHAR`. +- JSON caller `_print_number` -> `_get_decimal_point`, `strlcpy`, `JNtoA`, `JItoA`, `strlen`, `_ensure`; `_ensure` reallocates through `_Malloc`/`_Free`, which map to `NoteMalloc`/`NoteFree` via `n_lib.h:241-242`. + +## Direct callers + +- Direct `JNtoA` production callers found by exact symbol search: + - `n_cjson.c:438-440` in `_print_number`, for non-integral JSON numbers. + - `n_helpers.c:1250-1254` in `NoteSetEnvDefaultNumber`, formatting a default service environment value before `NoteSetEnvDefault`. + - `n_helpers.c:1265-1270` in `NoteGetEnvNumber`, formatting the default value before `NoteGetEnv`, then parsing the result with `JAtoN`. +- Direct `_print_number` production caller: `_print_value` dispatches `JNumber` to `_print_number` at `n_cjson.c:1179-1213`. +- Production entry paths into `_print_value`: `_print` at `n_cjson.c:983-1004`, `JPrintBuffered` at `n_cjson.c:1067-1089`, `_printPreallocated` at `n_cjson.c:1097-1115`, recursive array printing at `n_cjson.c:1341-1366`, and recursive object printing at `n_cjson.c:1523-1607`. + +## Ownership, error, and bounds behavior + +- `JNtoA` does not allocate and does not check `buf` for null; callers must provide a writable `JNTOA_MAX` buffer. +- `JNtoA` reports only `cast`/integer overflow from `fmtflt`, and converts that to `"0"`. It has no separate truncation/error return. +- `OUTCHAR` avoids writing a character unless space remains for a terminator, but it still increments `len`. If a formatted result ever reaches/exceeds `size`, `JNtoA` will write `buf[len] = '\0'` using the counted length, not a clamped index. Observed default `float`/`double` `%g` paths appear intended to fit `JNTOA_MAX`, but this is a boundary to verify for unusual precision/platform combinations, especially `sizeof(uintmax_t) == 16`. +- `_print_number` has normal boolean failure boundaries for null item/output buffer, formatted length greater than `JNTOA_MAX - 1`, and `_ensure` failure. +- `_ensure` returns `NULL` for invalid buffers, offset beyond length, `needed > INT_MAX`, noalloc/preallocated overflow, or allocation failure; on allocation failure it frees the old print buffer and clears it (`n_cjson.c:351-397`). +- JSON print result ownership is outside `JNtoA`: public `JPrint*` allocation is through the note-c allocator hooks, and callers free returned strings with `JFree`/configured free as declared near `n_cjson.h:185-203`. + +## Focused tests observed + +- `test/src/JNtoA_test.cpp:22-67` calls `JNtoA` for approximate max/min float or double values depending on `NOTE_C_SINGLE_PRECISION`, but the assertion parses `expectedNumStrs[i]`, not the generated `numStr`. This is weak evidence because the formatter output is not compared or parsed. +- `test/src/JSON_number_handling_test.cpp:220-410` is the closest JSON printing evidence. It exercises `JPrintUnformatted` for zero, exact `JINTEGER_MAX`, out-of-range positive/negative `JNUMBER` values with float/double conditional expectations, `JINTEGER_MIN`, a small fractional value, and a Unix timestamp integer. Exact string assertions cover most cases; the small-float case parses the emitted number but checks `(numValue - SMALL_FLOAT) < 1e-11` instead of an absolute difference. +- `test/src/NoteSetEnvDefaultNumber_test.cpp:34-49` covers the environment setter caller with `-123456`. +- `test/src/NoteGetEnvNumber_test.cpp:44-63` covers the environment getter caller with existing and default values. +- `test/src/JPrintUnformatted_test.cpp:24-60` covers general `JPrintUnformatted` non-null output for a mixed JSON object but does not assert number formatting text. +- Tests were observed by source inspection only; this sidecar did not execute them. + +## Uncertainty and gaps + +- Direct `JNtoA` test coverage is currently ineffective for output correctness because it ignores `numStr`. +- No focused test observed for direct `JNtoA` NaN/Infinity output, JSON NaN/Infinity-to-`null`, explicit precision values, rounding carry boundaries such as `9.999...`, locale decimal separator replacement under `ENABLE_LOCALES`, caller-provided undersized buffers, or the `sizeof(uintmax_t) == 16` precision/buffer boundary. +- `fmtstr`, `printsep`, and `getnumsep` are present in the local formatter but are not exercised by JSON printing with current `JNtoA` flags; `fmtstr` remains reachable only through direct non-finite `JNtoA`. +- No compiler/AST substrate was run for this sidecar; caller/callee coverage is from exact source search and narrow source inspection. + +## Proposed artifact statuses + +- `n_ftoa.c::JNtoA`: identity verified; behavior inspected; local callees verified; direct production callers verified; focused tests observed but weak for direct formatter output; proposed `finalized` candidate with confidence high after conductor merge. +- `n_ftoa.c::fmtflt`: identity verified; behavior inspected for the `JNtoA` `%g` path; inactive generic formatting flags noted; proposed `finalized` candidate for JSON/default `JNtoA` behavior, `inspected` for unused flag variants. +- `n_ftoa.c::fmtstr`: identity verified; behavior inspected; proposed `inspected` because JSON printing bypasses its non-finite path. +- `n_ftoa.c::printsep` and `n_ftoa.c::getnumsep`: identity verified; behavior inspected; proposed `inspected/inactive-for-JNtoA` because `PRINT_F_QUOTE` is not set. +- `n_ftoa.c::getexponent`, `convert`, `cast`, `myround`, `mypow10`, and `OUTCHAR`: identity verified; behavior and call relationships inspected; proposed `finalized` candidates for this slice. +- `n_cjson.c::_print_number`: identity verified; behavior, callees, callers, ownership/error/bounds inspected; focused JSON marshalling tests observed; proposed `finalized` candidate with confidence high. +- `n_helpers.c::NoteSetEnvDefaultNumber` and `n_helpers.c::NoteGetEnvNumber`: direct caller identities and basic behavior inspected; focused tests observed; proposed `inspected`. + +Suggested graph/status edges for conductor merge only: `JNtoA calls fmtflt`; `fmtflt calls {fmtstr,getexponent,mypow10,cast,myround,convert,getnumsep,printsep}`; `myround calls cast`; `_print_number calls JNtoA` and `JItoA`; `_print_value calls _print_number`; public `JPrint*` entries and recursive array/object printers reach `_print_value`; environment helpers call `JNtoA`. diff --git a/source-research/worker-reports/high-level-helpers.md b/source-research/worker-reports/high-level-helpers.md new file mode 100644 index 00000000..d3c139ce --- /dev/null +++ b/source-research/worker-reports/high-level-helpers.md @@ -0,0 +1,53 @@ +# High-Level Helper APIs Worker Report + +## Scope + +- Worker: `019f1417-f92e-7322-b4f1-06db54f24019` +- Report status: merged as source-backed inspected evidence +- Source policy: source-only; no tests or source-research summaries +- Primary source inspected: `n_helpers.c:1-2592`, `n_ua.c:1-223`, `n_request.c`, `n_hooks.c`, `note.h`, `n_lib.h`, and selected JSON source used by helpers. + +## Helper Families + +- Request primitives: `NoteNewRequest` builds `{ "req": ... }`; `NoteNewCommand` builds `{ "cmd": ... }`; `NoteRequestResponse*` free the request; `NoteTransaction` does not. `NoteResponseError` and `NoteDeleteResponse` are macros over `JIsNullString` and `JDelete`. +- Product/service/upload/sync: `NoteSetProductID`, `NoteSetSerialNumber`, `NoteSetUploadMode`, and `NoteSetSyncMode` build `hub.set`; `NoteGetServiceConfig*` reads `hub.get` with a 4-hour cache for the `ST` form. +- Env: `NoteSetEnvDefault*` builds `env.default`; `NoteGetEnv*` builds `env.get`, initializes output buffer to the default first, then copies `"text"` if present. `NoteGetEnvInt` parses with `atoi`. +- Time/region: `NoteTimeST` polls `card.time` behind suppression and refresh timers; `NoteTime` and `NoteTimeValid` reset the suppression timer. `NoteTimeSet(0, ...)` returns to Notecard time; nonzero manual time disables automatic fetch. +- Location/status: wrappers for `card.location`, `card.location.mode`, `hub.status`, `card.status`, `card.version`, `card.voltage`, and `card.temp` mostly default outputs to empty or zero and return `false` on null/error response. `NoteGetLocation` defines success by presence of `lat` and `lon`, not only by `NoteResponseError`. +- Contact: `NoteGetContact` reads `card.contact`; `NoteSetContact` writes only non-null fields to `card.contact`. +- Note/template/route: `NoteTemplate` builds `note.template`; `NoteAdd` builds `note.add`; `NoteSend` is only `#define NoteSend NoteAdd`; `NoteSendToRoute` first converts a body via `note.event`, detaches response `"body"`, then sends `web.`. +- Binary store: codec helpers wrap COBS encode/decode. Store helpers use `card.binary`, `card.binary.get`, `card.binary.put`, raw `_ChunkedReceive`/`_ChunkedTransmit`, MD5 status verification, and explicit Notecard locking. +- Payload/sleep: `NotePayloadSaveAndSleep` base64-encodes descriptor data then calls `NoteSleep`; `NoteSleep` sends `cmd:"card.attn"` with a string-reference payload; wake/retrieve uses `req:"card.attn"` with `start:true`. + +## Caller And Callee Evidence + +- Source-only `rg` over production C/header files found inspected helper symbols only in `note.h`, `n_helpers.c`, internal helper-to-helper calls, and one user-agent call in `n_request.c`. +- `NoteSend` exact search found only `note.h:2033` aliasing `NoteAdd` and `n_helpers.c:2083` defining `NoteAdd`; no production caller. +- `NoteUserAgent` exact search found only declaration/definition plus `n_request.c:481`. +- `JPrintUnformatted(req)` exact search found `n_request.c:437` before user-agent body insertion at `n_request.c:481-483`, with no later reserialization of that request. + +## Ownership And Error Behavior + +- `JAddItemToObject` consumes the child on success and deletes it on failure; helpers use this for `body` ownership. +- `JDetachItemFromObject` transfers ownership out of the parent. +- `JGetString` returns a borrowed pointer or empty string; `JGetObject` returns a borrowed child; `JGetNumber`, `JGetInt`, and `JGetBool` default to `0` or `false`. +- Most helpers ignore `JAdd*` return values, so allocation failure while adding fields can produce partial requests rather than immediate local failure. +- `NotePayloadSet` does not copy the buffer, but `NotePayloadFree` always frees `desc->data`; model the descriptor as owning the pointer after set/retrieve/add. +- `NotePayloadSaveAndSleep` dereferences `desc` before null checking, despite nearby comments describing payload as optional. +- Binary helpers return `const char *` error-or-NULL; most other helpers return `bool`. + +## Conditionals + +- `NOTE_C_LOW_MEM` is auto-defined when float/double exponent sizes match, can be enabled by CMake, and is also enabled by legacy `NOTE_LOWMEM`. +- Under low memory, `n_lib.h` defines `NOTE_DISABLE_USER_AGENT`; CMake omits `n_ua.c` from the target. Low memory also disables request CRC paths and malloc debug logging. +- `n_ua.c` weakly defines `NoteUserAgent` and `NoteUserAgentUpdate` outside MSVC and outside `NOTE_C_LOW_MEM`; setters retain caller-provided string pointers, not copies. +- Current source attempts user-agent insertion for `hub.set` with `product` and no `body`, but insertion happens after request serialization. Evidence does not support a claim that the UA body reaches the wire in this path. + +## Recommended Claims + +- Record `n_helpers.c` as the high-level request-wrapper layer over `NoteNewRequest`, `NoteRequest`, and `NoteRequestResponse`. +- Record request/response/body ownership exactly, including `NoteTransaction` not freeing requests and `NoteRequestResponse*` freeing them. +- Mark user-agent behavior carefully as attempted post-serialization insertion unless source changes or contrary source evidence is found. +- Record low-memory boundaries: UA disabled/omitted, CRC disabled, compact `ERRSTR`, and smaller allocation chunk. +- Record static cache/suppression behavior for time, location-validity, connectivity, service config, and status helpers. +- Record binary store as a mixed JSON-plus-raw-transfer subsystem with locking, COBS, MD5, offset alignment, and reset-on-integrity-error behavior. diff --git a/source-research/worker-reports/hooks-and-adapter-layer.md b/source-research/worker-reports/hooks-and-adapter-layer.md new file mode 100644 index 00000000..ba634a1a --- /dev/null +++ b/source-research/worker-reports/hooks-and-adapter-layer.md @@ -0,0 +1,28 @@ +# Hook And Adapter Layer Worker Report + +## Scope + +- Worker: `019f1417-8364-73c3-b948-4b10f429319a` +- Report status: merged as source-backed inspected evidence +- Source policy: source-only; focused test evidence only +- Primary files inspected: `note.h`, `n_lib.h`, `n_hooks.c` +- Additional exact-call-site files inspected: `n_request.c`, `n_helpers.c`, `n_ua.c`, `n_printf.c`, `test/integration/link_test.c` + +## Evidence Summary + +- `note.h` defines the public hook ABI: interface constants, hook typedefs, hook registration/getter APIs, and runtime wrappers such as `NoteMalloc`, `NoteFree`, `NoteGetMs`, `NoteDelayMs`, `NoteLockI2C`, `NoteUnlockI2C`, `NoteI2CAddress`, and `NoteI2CMax`. +- `n_lib.h` declares internal hook wrappers and macro aliases. Important aliases include `_LockNote -> _noteLockNote`, `_TransactionStart -> _noteTransactionStart`, `_Transaction -> _noteJSONTransaction`, `_Reset -> _noteHardReset`, `_Malloc -> NoteMalloc`, `_GetMs -> NoteGetMs`, and `_LockI2C -> NoteLockI2C`. +- `n_hooks.c` owns the hook registry through global function pointers and active-interface dispatch state. +- `_noteSetActiveInterface` selects transport implementation pointers: serial maps to `_serialNoteReset`, `_serialNoteTransaction`, `_serialChunkedReceive`, `_serialChunkedTransmit`; I2C maps to `_i2cNoteReset`, `_i2cNoteTransaction`, `_i2cNoteChunkedReceive`, `_i2cNoteChunkedTransmit`; invalid/NONE clears the active dispatch pointers. +- Request paths call internal aliases around transaction startup, Notecard locking, transport dispatch, reset, unlock, and transaction stop. +- Binary helper paths call chunked receive/transmit aliases while holding `_LockNote`, then call `_noteTransactionShouldLock(..., false)` to avoid re-locking. +- Registration setters store raw function pointers. Default setters only fill NULL slots; non-default setters overwrite existing values and may set NULL. +- Runtime wrappers are null-tolerant: missing malloc returns NULL; free/delay/locks/debug no-op; missing millis returns 0; transaction start defaults true; transaction stop no-op; serial reset and I2C reset default true; serial available defaults false; serial receive returns `'\0'`; inactive I2C transmit/receive and JSON/chunked dispatch return error strings. +- Hook targets are caller-owned raw function pointers. Getters copy current raw pointers into non-NULL out parameters. Heartbeat is the only hook with a context pointer and is compiled only under `NOTE_C_HEARTBEAT_CALLBACK`. +- Concurrency is global-state based. Many setters/getters take `_LockNote`, but mutex setters/getters, debug getter, I2C address/MTU setters/getters, and `NoteGetActiveInterface` do not all take that lock. Locking itself is a no-op until mutex hooks have been registered. + +## Source-Truth Gaps + +- `n_lib.h` declares `_noteActiveInterface(void)` at line 140, but exact source search found no implementation or caller. +- `NoteSetFnDisabled` only sets the active interface to NONE through `_noteSetActiveInterface`; it does not clear registered serial, I2C, mutex, debug, or system hook pointers. +- Dynamic hook targets registered through `NoteSetFn*` are external adapter functions and cannot be resolved inside this repository. diff --git a/source-research/worker-reports/json-core.md b/source-research/worker-reports/json-core.md new file mode 100644 index 00000000..28d6a58b --- /dev/null +++ b/source-research/worker-reports/json-core.md @@ -0,0 +1,55 @@ +# JSON Core Worker Report + +## Scope + +- Worker: `019f1417-c7a1-7a30-8fb0-a2d49cf83c83` +- Report status: merged as source-backed inspected evidence +- Source policy: source-only; no tests, generated summaries, or artifacts +- Primary source inspected: `n_cjson.h:43-326`, `n_cjson.c:91-2851`, `n_cjson_helpers.c:19-467`, `n_atof.c:70-293`, `n_ftoa.c:52-510`, `note.h`, allocator/build support in `n_lib.h`, `n_hooks.c`, and `CMakeLists.txt` + +## Key Symbols + +- `J`: linked JSON node with `next`, `prev`, `child`, type flags, `valuestring`, `valueint`, `valuenumber`, and object-key `string`. +- `_jNew_Item`, `JDelete`, `JMalloc`, `JFree`: allocate/free via `_Malloc`/`_Free`, which map to `NoteMalloc`/`NoteFree`; `NoteSetFn` and `NoteSetFnDefault` install allocator hooks. +- `JInitHooks`: declared in `n_cjson.h:183`, but exact production search found no definition or use. +- `JParseWithOpts`, `JParse`, `JGetErrorPtr`: parse root value, optional null-termination enforcement, global parse-error pointer. +- `JPrint`, `JPrintUnformatted`, `JPrintUnformattedOmitEmpty`, `JPrintBuffered`, `JPrintPreallocated*`: render trees to allocator-owned or caller-owned buffers. +- `JAddItemToArray/Object`, `JAdd*ToObject`, `JDetach*`, `JDeleteItem*`, `JReplace*`: tree ownership/mutation APIs. +- `JGetString`, `JGetNumber`, `JGetInt`, `JGetBool`, `JGetObject`, `JGetArray`, `JGetItemType`, `JBaseItemType`: typed helper layer. +- `JAtoN`, `JNtoA`, `JItoA`, `JAtoI`: custom numeric conversion helpers. + +## Verified Searches + +- `JAtoN` is called by `_parse_number` in `n_cjson.c`, helper string classification in `n_cjson_helpers.c`, and env helpers in `n_helpers.c`. `JNtoA` and `JItoA` are used by `_print_number` in `n_cjson.c`. +- `JParse` and `JPrintUnformatted` production callers are in `n_request.c` for request/response JSON parsing and request serialization. +- `JAddItemToObject` and `JAdd*ToObject` have high fanout in `n_helpers.c`, `n_request.c`, and `n_ua.c`; direct ownership-transfer comments appear near `n_helpers.c:2094`. +- Low-level `JGetObjectItem` is mostly wrapped by `n_cjson_helpers.c`; production code generally uses typed helpers. +- `JDetachItemFromObject` is used in `n_helpers.c:2146`; `JDelete` is used widely in `n_helpers.c` and `n_request.c`. +- `JInitHooks` exact search found the header declaration only. + +## Ownership And Lifetime + +- `JParse*` returns a tree owned by the caller; free with `JDelete`. +- `JPrint*` allocating variants return `_Malloc` memory; free with `JFree` or `NoteFree`. `JPrintPreallocated*` writes into caller-owned buffers. +- `JAddItemToArray/Object` transfers ownership to the parent on success and deletes the item on invalid input/failure. +- `JDetach*` unlinks and returns a node with `next` and `prev` cleared; caller owns it. Delete variants detach then `JDelete`. +- `JDelete` recursively deletes children unless `JIsReference`; frees `valuestring` unless reference; frees object key `string` unless `JStringIsConst`. +- `JCreateString` copies input. `JCreateStringReference` does not own/free `valuestring`. `JCreateStringValue` stores the pointer without copying and without `JIsReference`, so `JDelete` frees it; `JAddBinaryToObject` uses this to transfer an `_Malloc` buffer into the tree. + +## Errors And Bounds + +- `JParse` does not require trailing null termination. `JParseWithOpts(..., require_null_terminated=true)` rejects trailing garbage. +- `N_CJSON_NESTING_LIMIT` defaults to 100; arrays/objects fail beyond it. +- String parse rejects invalid escapes, malformed UTF-16 surrogate pairs, and unexpected end; failures clean partial child lists. +- Number parse uses a 64-byte temporary token, `JAtoN`, then saturates `valueint` to `JINTEGER_MIN/MAX`; very long numeric tokens can leave unconsumed input unless the caller enforces full consumption. +- `JAtoN` keeps at most 18 mantissa digits and caps decimal exponent processing at `MAX_EXPONENT` 511. +- `JNtoA` default precision is `JNTOA_PRECISION` 16 with `JNTOA_MAX` 44; internal precision is clamped by `uintmax_t` width. Core JSON printing emits `null` for NaN/Inf. +- Helper field getters return defaults on missing/wrong type: empty string, `0`, `false`, or `NULL`. Some item-level helpers do not type-check (`JStringValue`, `JNumberValue`, `JIntValue`). + +## Recommended Claims + +- Record JSON as a cJSON-derived linked-node core exposed through `n_cjson.h` and included by `note.h`. +- Record allocator reality as `NoteMalloc`/`NoteFree` hook path; mark `JInitHooks`/`JHooks` as declared but not implemented in production source. +- Record ownership transfer rules for add/detach/delete/replace and the `JCreateStringValue` implementation nuance. +- Record parse/print boundaries: prefix parsing by default, optional full-consumption mode, nesting limit, global parse-error state, custom number conversion limits. +- Record helper layer as borrowed-access/default-value wrappers over core `J` APIs, with binary helpers allocating/freeing through the JSON allocator. diff --git a/source-research/worker-reports/json-printing-closure.md b/source-research/worker-reports/json-printing-closure.md new file mode 100644 index 00000000..43cae684 --- /dev/null +++ b/source-research/worker-reports/json-printing-closure.md @@ -0,0 +1,103 @@ +# JSON Printing Closure Evidence Report + +Scope: source-only sidecar inspection of the JSON printing closure around `n_cjson.c:983` `_print` and `n_cjson.c:1051` `JPrintUnformatted`. Canonical artifacts were not edited. Existing architecture docs, README files, and changelogs were not used as evidence. + +## Source Locations + +- `n_cjson.c:351` `_ensure`: printbuffer capacity check/growth helper. +- `n_cjson.c:400` `_update_offset`: advances `printbuffer.offset` by `strlen(buffer + offset)`. +- `n_cjson.c:412` `_print_number`: serializes `JNumber`. +- `n_cjson.c:744` `_print_string_ptr`: serializes and escapes C strings. +- `n_cjson.c:856` `_print_string`: item wrapper around `_print_string_ptr`. +- `n_cjson.c:981` `cjson_min`: local min macro used during final copy. +- `n_cjson.c:983` `_print`: allocator-owned print entry used by public wrappers. +- `n_cjson.c:1051` `JPrintUnformatted`: public unformatted wrapper. +- `n_cjson.c:1179` `_print_value`: type dispatcher for printable `J` values. +- `n_cjson.c:1341` `_print_array`: recursive array printer. +- `n_cjson.c:1507` `_last_non_omitted_object`: lookahead for omit-empty comma placement. +- `n_cjson.c:1523` `_print_object`: recursive object printer. +- `n_cjson_helpers.c:387` `JGetItemType`: detailed type classifier used by omit-empty object printing. +- `n_atof.c:71` `JAtoN`: string-to-number conversion used by `JGetItemType` string classification. +- `n_cjson.h:185-203`: public memory/printing ownership contract and declarations. +- `n_cjson.h:310`: `JConvertToJSONString` macro alias to `JPrintUnformatted`. +- `note.h:1400-1413`, `note.h:1431`, `note.h:1464`: detailed `JTYPE_*` constants and helper declarations. + +## Dependency Shape + +- `JPrintUnformatted(item)` rejects `NULL`, then calls `_print(item, false, false)`. +- `_print` allocates a 128-byte printbuffer with `_Malloc`, calls `_print_value`, calls `_update_offset`, allocates an exact result buffer, copies `min(buffer.length, offset + 1)`, forces a trailing NUL, frees the working buffer, and returns caller-owned text. +- `_print_value` dispatches by `item->type & 0xFF`: + - null/false/true/raw write directly through `_ensure`. + - number calls `_print_number`. + - string calls `_print_string` -> `_print_string_ptr`. + - array calls `_print_array`. + - object calls `_print_object`. +- `_print_array` writes delimiters and separators, calls `_print_value` for each child, and then `_update_offset`. +- `_print_object` writes delimiters, optional formatting indentation, key strings via `_print_string_ptr`, values via `_print_value`, comma placement via `_last_non_omitted_object`, and `_update_offset` after key/value writes. +- Omit-empty object printing is conditional on `printbuffer.omitempty`; `JPrintUnformatted` sets this false, while `JPrintUnformattedOmitEmpty` and `JPrintPreallocatedOmitEmpty` set it true. +- `_last_non_omitted_object` and `_print_object` omit only fields classified as `JTYPE_BOOL_FALSE`, `JTYPE_NUMBER_ZERO`, or `JTYPE_STRING_BLANK`. String values like `"0"` and `"false"` are classified by `JGetItemType` but are not omitted. + +## Cycles + +- Recursive data cycle: `_print_value -> _print_array -> _print_value` for nested arrays. +- Recursive data cycle: `_print_value -> _print_object -> _print_value` for nested objects. +- Omit-empty side path: `_print_object -> _last_non_omitted_object -> JGetItemType -> JAtoN` only when omit-empty logic inspects string siblings. +- No source-level call cycle was observed through `JGetItemType` or `JAtoN`. + +## Direct Callers + +- `_print`: `JPrint` (`n_cjson.c:1032`), `JPrintUnformatted` (`n_cjson.c:1051`), `JPrintUnformattedOmitEmpty` (`n_cjson.c:1059`), plus test-only access through `test/include/test_static.h:27` and `test/src/NoteRequestResponseJSON_test.cpp:55`. +- `JPrintUnformatted`: production callers at `n_request.c:365`, `n_request.c:437`, and `n_request.c:869`; macro alias declaration at `n_cjson.h:310`; focused tests in `test/src/JPrintUnformatted_test.cpp`, `test/src/JSON_number_handling_test.cpp`, `test/src/NotePing_test.cpp`, and faked request tests. +- `_print_value`: `_print`, `JPrintBuffered`, `_printPreallocated`, `_print_array`, and `_print_object`. +- `_ensure`: `_print_number`, `_print_string_ptr`, `_print_value`, `_print_array`, and `_print_object`. +- `_update_offset`: `_print`, `_print_array`, and `_print_object`. +- `_print_number`, `_print_string`, `_print_array`, `_print_object`: direct caller is `_print_value`. +- `_print_string_ptr`: `_print_string` and `_print_object`. +- `_last_non_omitted_object`: `_print_object`. +- `JGetItemType`: `JGetType`, `_last_non_omitted_object`, and `_print_object`. +- `JAtoN`: `_parse_number`, `JGetItemType`, `NoteGetEnvNumber`, and focused `JAtoN` tests. + +## Ownership, Errors, and Bounds + +- Returned `JPrintUnformatted` text is allocator-owned. Header comments state callers free printed results with stdlib free, hook free, or `JFree`; production callers observed use `_Free` after use. +- `_print` owns the temporary buffer and the exact result buffer until success. On any failure it frees both if allocated and returns `NULL`. +- `_ensure` rejects null buffers, invalid offsets, sizes above `INT_MAX`, and growth requests when `noalloc` is true. On growth allocation failure it frees the old buffer, zeros length, nulls the buffer pointer, and returns `NULL`. +- `_update_offset` assumes the fragment at the current offset is NUL-terminated. The inspected print helpers write a terminating NUL after each fragment that requires later offset discovery. +- `_print_number` prints non-finite values as `null`, uses `JNtoA` for non-integral numbers and `JItoA` for integral values, normalizes the locale decimal point to `.`, and checks the temporary number buffer length before copying. +- `_print_string_ptr` handles `NULL` input as `""`, escapes quotes, backslashes, JSON control characters, and other bytes below 32 as `\u00XX`. It requires NUL-terminated input and does not independently cap the first-pass scan length. +- `_print_array` and `_print_object` are recursive and have no print-time nesting limit in this closure; deeply nested in-memory trees can consume stack. +- `_print_object` default formatted indentation uses `PRINT_TAB_CHARS 4`. The `PRINT_TAB_CHARS == 0` branch references `output_buffer_offset`, which is not declared, but that branch is dead under the current source definition. +- Formatted object indentation computes `int needed` from `output_buffer->depth`; this is irrelevant for `JPrintUnformatted` but is a bounds/variant point for formatted printing on very deep objects. + +## Focused Tests Observed + +- `test/src/JPrintUnformatted_test.cpp:24-58`: parses a mixed object and verifies `JPrintUnformatted` returns non-null, non-empty output; it does not assert exact JSON text. +- `test/src/JSON_number_handling_test.cpp:220-412`: exact or approximate assertions for unformatted numeric marshalling, including zero, integer boundaries, rounded large values, small floating point, and a Unix timestamp. +- `test/src/JGetType_test.cpp:20-148`: validates detailed `JTYPE_*` classifications used by omit-empty logic, including false, numeric zero, blank string, numeric strings, boolean strings, object, array, and invalid item. +- `test/src/NoteRequestResponseJSON_test.cpp:27-55` fakes `JPrintUnformatted` and maps the fake to `_print(json, false, false)` for request-flow tests; later tests cover `NULL` print output and allocation failure around error-document serialization. +- `test/src/NotePing_test.cpp:116-123` uses `JPrintUnformatted` in a response helper; production `NotePing` uses it for request serialization and overwrites the returned NUL with newline before transport. +- No focused test was found for `JPrintUnformattedOmitEmpty`, `JPrintPreallocatedOmitEmpty`, exact object comma placement under omitted fields, or string escaping exact output in this closure. + +## Graph Gaps / Artifact Notes + +- Candidate graph facts to ensure in canonical artifacts: `JConvertToJSONString -> JPrintUnformatted` macro alias; test-only `_print` exposure through `NOTE_C_STATIC`/`test_static.h`; recursive mutual edges through `_print_value`/`_print_array` and `_print_value`/`_print_object`; conditional omit-empty edges from `_print_object` to `JGetItemType` and from `JGetItemType` to `JAtoN`. +- Exact source search found no production use of `JConvertToJSONString`; it should be modeled as a public alias even when uncalled. +- Existing canonical graph files were not reconciled in this sidecar pass because the task constrained the evidence policy to source files and focused tests and forbade canonical artifact edits. + +## Uncertainty / Gaps + +- No compiler or AST substrate was run for this sidecar report; caller/callee coverage is exact-source-search based. +- Allocation-failure paths in `_ensure` and `_print` were inspected from source but not executed here. +- Omit-empty semantics were inspected from source and adjacent `JGetType` tests, but no direct omit-empty print test was found. +- Very large string length overflow behavior in `_print_string_ptr` was not exhaustively bounded beyond the later `_ensure` `INT_MAX` cap. +- Formatted-printing behavior was included only where it shares closure code; `JPrintUnformatted` itself uses `format=false`. + +## Recommended Finalization Order + +1. Finalize leaf/bounds helpers: `cjson_min`, `_ensure`, `_update_offset`, `_get_decimal_point`, `JNtoA`, `JItoA`, and the limited `JAtoN` facts needed by classification. +2. Finalize classification side path: `JGetItemType` with `JGetType` focused tests, then `_last_non_omitted_object`. +3. Finalize scalar printers: `_print_number`, `_print_string_ptr`, and `_print_string`. +4. Finalize `_print_value` primitive dispatch and raw-value handling. +5. Finalize recursive containers as a paired slice: `_print_array`, `_print_object`, and their `_print_value` back edges. +6. Finalize allocator-owned entry points: `_print`, `JPrintUnformatted`, `JPrint`, `JPrintUnformattedOmitEmpty`, `JPrintBuffered`, and preallocated variants. +7. Finalize public fanout: `n_request.c` serialization/error-document/ping callers, `JConvertToJSONString` alias exposure, and focused test evidence batches. diff --git a/source-research/worker-reports/request-orchestration.md b/source-research/worker-reports/request-orchestration.md new file mode 100644 index 00000000..c95db6c6 --- /dev/null +++ b/source-research/worker-reports/request-orchestration.md @@ -0,0 +1,49 @@ +# Request Orchestration Worker Report + +## Scope + +- Worker: `019f1417-99a2-7212-8bef-20b835e606dc` +- Report status: merged as source-backed inspected evidence +- Source policy: source-only; focused support evidence only +- Primary file inspected: `n_request.c:1-1167` +- Supporting source inspected: `note.h:320-524`, `note.h:1038-1057`, `note.h:1178-1210`, `note.h:1258-1270`, `note.h:1308-1339`, `n_lib.h:38-45`, `n_lib.h:84-98`, `n_lib.h:120-150`, `n_lib.h:168-246`, `n_hooks.c:657-700`, `n_hooks.c:1024-1048`, `n_helpers.c:376-430`, `n_helpers.c:636-686`, `n_cjson_helpers.c:152-214`, `n_cjson.h:185-205`. + +## Evidence Summary + +- `NoteNewRequest` and `NoteNewCommand` allocate a `J` object and add `"req"` or `"cmd"` respectively. Allocation failure returns `NULL`; request string content is not explicitly validated at construction. +- `NoteRequest` calls `NoteRequestResponse`, returns `false` for `NULL`, otherwise succeeds only when response field `"err"` is null, missing, or empty, then deletes the response. +- `NoteRequestResponse` returns `NULL` for null input, otherwise calls `NoteTransaction(req)`, always deletes `req`, and returns the response object. +- `NoteRequestResponseWithRetry` repeats `NoteTransaction(req)` until it gets a non-null response without retryable `{io}` error or until the timeout expires. It deletes interim retry responses and deletes the request at the end. +- `NoteTransaction` delegates to `_noteTransactionShouldLock(req, true)`. +- `_noteTransactionShouldLock` serializes the request, validates that exactly one of `"req"` or `"cmd"` is present, extracts `"id"`, starts a transaction, calculates timeout, optionally locks the Notecard, captures the current CRC sequence number, optionally adds CRC for requests, resets if required, sends newline-terminated JSON through `_Transaction`, parses response JSON, classifies retryable errors, advances `seqNo` before unlock, and returns a parsed response, error object, empty command response object, or `NULL`. +- `NoteRequestResponseJSON` is a separate raw string path. The caller retains request-string ownership. The function starts a transaction, locks once, tokenizes newline-delimited command pipelines, sends commands without response capture, sends requests with `char **response`, builds newline-terminated JSON error strings on transport error, unlocks/stops, and returns a caller-owned response string or `NULL`. + +## Verified Searches + +- `_noteTransactionShouldLock` production callers: `n_request.c:413`, `n_helpers.c:392`, and `n_helpers.c:653`. The helper callers already hold `_LockNote()` and pass `false`. +- `NoteTransaction` production callers: `n_request.c:228`, `n_request.c:250`, plus declaration/definition. +- Retry/raw JSON APIs `NoteRequestWithRetry`, `NoteRequestResponseWithRetry`, `NoteRequestResponseJSON`, and `NoteSetRequestTimeout` have no non-test production callers beyond declarations, definitions, and wrappers. +- `_Transaction` maps to `_noteJSONTransaction` via `n_lib.h:238`. `_noteJSONTransaction` dispatches to active `notecardTransaction` or returns `"a valid interface must be selected"` at `n_hooks.c:1042`. +- No `NoteDeleteRequest` symbol was found; request deletion is performed through `JDelete(req)` or wrapper ownership. + +## Ownership And Error Boundaries + +- `NoteRequestResponse` and `NoteRequestResponseWithRetry` consume and delete their input `J *req`. +- `NoteTransaction` and `_noteTransactionShouldLock` do not delete `req`; caller retains ownership. +- `NoteRequest` and `NoteRequestWithRetry` delete returned response objects internally. +- `NoteRequestResponse` returns caller-owned `J *rsp`; public deletion macro is `NoteDeleteResponse(rsp) -> JDelete(rsp)`. +- `NoteRequestResponseJSON` does not free caller `reqJSON`; it frees only temporary newline copies. Returned response strings are dynamically allocated and caller-owned. +- `NoteResponseError(NULL)` evaluates true because `JIsNullString(NULL, ...)` returns false; callers generally check `rsp` first. +- `NoteResponseErrorContains(NULL, ...)` evaluates false through `JContainsString`. +- `NoteErrorContains` and `NoteErrorClean` have no null guards. +- `NoteSetRequestTimeout` stores a global override; `CARD_INTER_TRANSACTION_TIMEOUT_SEC` is 30 unless overridden. +- `_noteTransaction_calculateTimeoutMs` defaults to the inter-transaction timeout, honors `"milliseconds"` or `"seconds"` on `note.add` and `web.*`, then adds 1000 ms. A source comment says `web.*` defaults to 90 seconds, but the implementation does not set 90 seconds. +- `hub.set` user-agent body is added after serialization, so the inspected source does not show that body being sent on the wire. + +## Recommended Claims + +- Record the main request chain: `NoteRequest -> NoteRequestResponse -> NoteTransaction -> _noteTransactionShouldLock -> _noteJSONTransaction`. +- Record `NoteRequestResponseJSON` as a separate raw JSON/string API path with caller-owned response strings. +- Record request ownership split: `NoteRequest*` wrappers consume `J *req`; `NoteTransaction` does not. +- Record binary helper lock-bypass callers as intentional `_noteTransactionShouldLock(..., false)` uses. +- Record caveats for unimplemented `web.*` 90-second default and `hub.set` user-agent serialization ordering. diff --git a/source-research/worker-reports/transports.md b/source-research/worker-reports/transports.md new file mode 100644 index 00000000..57f40e1a --- /dev/null +++ b/source-research/worker-reports/transports.md @@ -0,0 +1,49 @@ +# Transport Implementations Worker Report + +## Scope + +- Worker: `019f1417-b041-7841-a250-b5a6286f4c95` +- Report status: merged as source-backed inspected evidence +- Source policy: source-only; no tests or source-research summaries +- Primary source inspected: `n_i2c.c:1-513`, `n_serial.c:1-335`, `n_lib.h:1-266`, `note.h:1-100`, `note.h:150-280`, `note.h:640-890`, `note.h:980-1020`, `note.h:1060-1110` +- Focused support inspected: `n_hooks.c`, `n_request.c`, `n_helpers.c`, `n_cobs.c`, `n_const.c`, `CMakeLists.txt` + +## I2C Path + +- `_i2cNoteTransaction` locks I2C, transmits nonzero requests through `_i2cChunkedTransmit`, exits early if `response == NULL`, delays via `_delayIO`, then queries response length with `_i2cNoteQueryLength` before allocating a rounded `ALLOC_CHUNK` buffer and reading until `available == 0`. +- `_i2cNoteQueryLength` repeatedly calls `_I2CReceive(_I2CAddress(), dummy, 0, available)` as a priming query, sleeping 50 ms between tries, until bytes are available or `timeoutMs` expires with a timeout error. +- `_i2cChunkedReceive` requests `min(*available, 0xffff, _I2CMax())`, drains even after newline if the Notecard still reports bytes, warns on newline-before-drain-complete, resets timeout to 1 s after any nonzero request, and returns an incomplete transaction timeout on idle timeout. +- `_i2cChunkedTransmit` chunks by `min(size, 0xffff, _I2CMax())`, calls `_delayIO` before each chunk when requested, calls `_I2CTransmit`, resets I2C on transmit error, delays 20 ms per chunk and 250 ms after the accumulated segment exceeds 250 bytes. +- `_i2cNoteReset` locks I2C, delays 250 ms, calls `_I2CReset`, then up to 10 times sends bare LF, drains for 500 ms, and succeeds only if received data is present and all bytes are CR/LF. No response triggers another `_I2CReset`; non-control data warns and retries. + +## Serial Path + +- `_serialNoteTransaction` strips trailing LF and optional CR, transmits body segments, then sends CRLF with flush. It returns immediately for `response == NULL`, otherwise waits for `_SerialAvailable()` with optional timeout and 10 ms sleeps unless `cardTurboIO` is true. +- Serial receive allocates one `ALLOC_CHUNK`, calls `_serialChunkedReceive`, grows by rounded `ALLOC_CHUNK` when `available` is set, and returns the newline-terminated response buffer. +- `_serialChunkedReceive` reads one byte at a time until newline or buffer overflow. On overflow before newline it sets `*available = 1` as a synthetic continuation signal. It delays only while waiting for the first byte, then spins greedily; after any byte it resets timeout to the 1 s intra-transaction timeout. +- `_serialChunkedTransmit` segments at 250 bytes, calls `_SerialTransmit(..., flush=false)`, and delays 250 ms between segments. Serial transmit hooks are `void`, so this path cannot surface platform transmit errors. +- `_serialNoteReset` delays 250 ms, calls `_SerialReset`, sends bare LF up to 10 times, drains for 500 ms, and succeeds only on CR/LF-only data. Failure logs unrecognized data or no response, delays 500 ms, resets serial, and retries. + +## Call And Hook Evidence + +- Exact all-source searches verified dispatcher edges in `_noteSetActiveInterface`: serial maps to `_serialNoteReset`, `_serialNoteTransaction`, `_serialChunkedReceive`, `_serialChunkedTransmit`; I2C maps to `_i2cNoteReset`, `_i2cNoteTransaction`, `_i2cNoteChunkedReceive`, `_i2cNoteChunkedTransmit`. +- Public request callers go through `_Transaction -> _noteJSONTransaction` in `n_request.c` transaction and ping paths. +- Binary helpers are the only production `_ChunkedReceive`/`_ChunkedTransmit` callers found, at `n_helpers.c:420` and `n_helpers.c:683`. +- `n_lib.h` macro-dispatches transport hook names: `_I2CReceive -> _noteI2CReceive`, `_SerialTransmit -> _noteSerialTransmit`, `_I2CMax -> NoteI2CMax`, and related aliases. +- Dynamic call edges are platform hooks. `_noteSerial*` calls `hookSerial*` only when active interface is serial; `_noteI2C*` calls `hookI2C*` only when active interface is I2C. Actual hook implementations are external and registered through `NoteSetFnSerial*` and `NoteSetFnI2C*`; no production in-repo setter caller was found in non-doc source. +- COBS is not used inside `n_i2c.c` or `n_serial.c`. Binary helpers encode/decode COBS using EOP `'\n'`, then send/receive raw bytes through chunked transport. + +## State And Boundaries + +- `cardTurboIO` defaults false and suppresses only selected delay loops. +- I2C address/MTU globals are `i2cAddress` and `i2cMax`, defaulting through `NOTE_I2C_ADDR_DEFAULT` (`0x17`) and `NOTE_I2C_MTU_DEFAULT` (`30`), clamped to max `253`. +- `ERRSTR(x,y)` returns verbose strings normally, but low-memory builds return terse constants such as `c_iotimeout = "timeout {io}"`, `c_iobad = "bad {io}"`, and `c_mem = "mem"`. +- Transports do not validate `request` when `reqLen > 0`. +- Serial has a potential underflow if called with `reqLen == 1` before checking `request[reqLen - 1]`. +- `timeoutMs == 0` disables timeout checks. +- If timing hooks are unset, `NoteGetMs()` returns 0 and `NoteDelayMs()` is a no-op. + +## Recommended Claims + +- Record active-interface function-pointer dispatch, I2C priming query, I2C drain-after-newline behavior, serial CRLF normalization, reset sync loops, timeout layering, chunk/MTU limits, turbo delay suppression, and COBS framing being owned by binary helpers rather than transports. +- Model hook calls as `possible_dynamic_call` or `dispatches_via_hook` edges to platform callbacks, with uncertainty noting implementations are downstream-supplied.