This report summarizes scanner evidence for jomjol/AI-on-the-edge-device. SynthScan examined 70,944 lines of code across 365 source files, recording 113 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 1.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 112 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 3 finding(s).
Which changes need focused human review? 113 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 113 distinct pattern matches across 5 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | code/test/test_suite_flowcontroll.cpp | 1 | #include <unity.h> | COMMENT |
| LOW | …omponents/jomjol-flowcontroll/test_cnnflowcontroll.cpp | 101 | // the 4.5 (Digit100) is not above 5 and the previous digit (analog) not over Zero (9.5) | COMMENT |
| LOW | …mjol-flowcontroll/test_PointerEvalAnalogToDigitNew.cpp | 21 | void test_analogToDigit_Standard() { | COMMENT |
| LOW | …mjol-flowcontroll/test_PointerEvalAnalogToDigitNew.cpp | 41 | // Offset = no | COMMENT |
| LOW | …mjol-flowcontroll/test_PointerEvalAnalogToDigitNew.cpp | 61 | void test_analogToDigit_Transition() { | COMMENT |
| LOW | …mjol-flowcontroll/test_PointerEvalAnalogToDigitNew.cpp | 81 | // transition = yes | COMMENT |
| LOW | code/include/defines.h | 1 | #pragma once | COMMENT |
| LOW | code/include/defines.h | 41 | //need CONFIG_HEAP_TRACING_STANDALONE=y or #define CONFIG_HEAP_TRACING_STANDALONE | COMMENT |
| LOW | code/include/defines.h | 61 | //ClassControllCamera | COMMENT |
| LOW | code/include/defines.h | 81 | COMMENT | |
| LOW | code/include/defines.h | 101 | COMMENT | |
| LOW | code/include/defines.h | 121 | #define READOUT_TYPE_PREVALUE 1 | COMMENT |
| LOW | code/include/defines.h | 141 | //CImageBasis | COMMENT |
| LOW | code/include/defines.h | 181 | COMMENT | |
| LOW | code/include/defines.h | 201 | COMMENT | |
| LOW | code/include/defines.h | 221 | #define CAM_PIN_RESET GPIO_NUM_NC //software reset will be performed | COMMENT |
| LOW | code/include/defines.h | 241 | //ClassControllCamera | COMMENT |
| LOW | code/include/defines.h | 261 | #define CAM_PIN_HREF GPIO_NUM_26 | COMMENT |
| LOW | code/include/defines.h | 281 | #define GPIO_SDCARD_D3 GPIO_NUM_13 | COMMENT |
| LOW | code/include/defines.h | 301 | #define CAM_PIN_D0 GPIO_NUM_5 | COMMENT |
| LOW | code/include/defines.h | 321 | #define LEDC_TIMER LEDC_TIMER_1 // LEDC_TIMER_0 | COMMENT |
| LOW | code/components/jomjol_time_sntp/time_sntp.h | 1 | #pragma once | COMMENT |
| LOW | code/components/jomjol_time_sntp/time_sntp.cpp | 1 | #include "time_sntp.h" | COMMENT |
| LOW | code/components/jomjol_helper/esp_sys.h | 1 | #pragma once | COMMENT |
| LOW | code/components/jomjol_helper/statusled.cpp | 1 | #include "statusled.h" | COMMENT |
| LOW | code/components/jomjol_helper/himem_memory_check.h | 21 | #include <stdbool.h> | COMMENT |
| LOW | code/components/jomjol_helper/Helper.cpp | 1 | // #pragma warning(disable : 4996) | COMMENT |
| LOW | code/components/jomjol_helper/Helper.cpp | 21 | #ifdef __cplusplus | COMMENT |
| LOW | code/components/jomjol_logfile/ClassLogFile.cpp | 1 | #include "ClassLogFile.h" | COMMENT |
| LOW | code/components/jomjol_controlGPIO/server_GPIO.cpp | 1 | #include <string> | COMMENT |
| LOW | code/components/jomjol_controlGPIO/SmartLeds.h | 61 | #include <driver/gpio.h> | COMMENT |
| LOW | code/components/jomjol_controlGPIO/RmtDriver.h | 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | COMMENT |
| LOW | code/components/jomjol_image_proc/CImageBasis.h | 1 | #pragma once | COMMENT |
| LOW | code/components/jomjol_image_proc/bitmap_image.hpp | 21 | COMMENT | |
| LOW | code/components/jomjol_image_proc/CImageBasis.cpp | 1 | #include "CImageBasis.h" | COMMENT |
| LOW | code/components/jomjol_image_proc/make_stb.cpp | 1 | #include <stdint.h> | COMMENT |
| LOW | code/components/jomjol_image_proc/make_stb.cpp | 21 | #define STB_IMAGE_IMPLEMENTATION | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/server_ota.cpp | 1 | #include "server_ota.h" | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/server_ota.cpp | 21 | #include "nvs_flash.h" | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/server_help.cpp | 1 | #include "server_help.h" | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/server_file.cpp | 21 | #include <iostream> | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.c | 3101 | free(wPath); | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.c | 3121 | #ifndef MINIZ_NO_TIME | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.c | 3141 | #define MZ_FCLOSE fclose | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.c | 3161 | #define MZ_FSEEK64 fseeko64 | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.c | 3181 | #define MZ_FREOPEN(p, m, s) freopen(p, m, s) | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 161 | #endif | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 181 | /* Set MINIZ_LITTLE_ENDIAN only if not set */ | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 201 | #endif | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 461 | #define Z_FINISH MZ_FINISH | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 481 | #define Z_FIXED MZ_FIXED | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 501 | #ifndef MINIZ_NO_INFLATE_APIS | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 521 | #define ZLIB_VER_SUBREVISION MZ_VER_SUBREVISION | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 561 | #define MZ_MACRO_END while (0) | COMMENT |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 581 | COMMENT | |
| LOW | code/components/jomjol_fileserver_ota/miniz/miniz.h | 601 | #define MZ_READ_LE16(p) *((const mz_uint16 *)(p)) | COMMENT |
| LOW | …onents/jomjol_fileserver_ota/miniz/examples/example6.c | 1 | // example6.c - Demonstrates how to miniz's PNG writer func | COMMENT |
| LOW | …onents/jomjol_fileserver_ota/miniz/examples/example2.c | 1 | // example2.c - Simple demonstration of miniz.c's ZIP archive API's. | COMMENT |
| LOW | …onents/jomjol_fileserver_ota/miniz/examples/example5.c | 1 | // example5.c - Demonstrates how to use miniz.c's low-level tdefl_compress() and tinfl_inflate() API's for simple file t | COMMENT |
| LOW | …onents/jomjol_fileserver_ota/miniz/examples/example5.c | 21 | COMMENT | |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | sd-card/html/jquery-3.6.0.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sd-card/html/edit_analog.html | 61 | After definition of digit ROIs is completed don't forget to save with the <b>"Save Config"</b> button!<br> | CODE |
| LOW | sd-card/html/edit_alignment.html | 125 | After definition of both alignment marker is completed don't forget to save with the <b>"Save New Marker"</b | CODE |
| LOW | sd-card/html/edit_config_template.html | 239 | Don't forget to save the changes with the button <b>"Save Config"</b> at the bottom of this page.<br> | CODE |
| LOW | sd-card/html/edit_digits.html | 60 | After definition of digit ROIs is completed don't forget to save with the <b>"Save Config"</b> button!<br> | CODE |
| LOW | sd-card/html/edit_reference.html | 147 | After setting up your reference image don't forget to save with the <b>"Save new Reference Image and Camera | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sd-card/html/info.html | 434 | function loadSDCardFreePartitionSpace() | CODE |
| LOW | sd-card/html/info.html | 447 | function loadSDCardPartitionAllocationSize() | CODE |
| LOW | sd-card/html/edit_digits.html | 355 | function changeLockSpaceEquidistant() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …onents/jomjol_fileserver_ota/miniz/examples/example2.c | 62 | // A more robust way to add a file to an archive would be to read it into memory, perform the operation, then write | COMMENT |