-
-
Notifications
You must be signed in to change notification settings - Fork 70
Test Status
Last updated: 2026-06-07 (formal test-pass dates inline) | Version: 0.18.1 (Beta)
Legend: PASS = Verified working | UNTESTED = Not yet verified | SKIP = Stub/unimplemented
Current baseline is approximate: 1,400+ in-tree actions across 25+ namespaces (public, in-tree only; all active by default, plus +45 experimental town-gen actions when registered). Query monolith_discover() for the exact live figure. Live monolith_status reports a higher total when extension plugins outside the release zip are loaded — those advisory totals do not affect the public baseline. The per-namespace tables below capture the formal test results from the 2026-04-01 audit pass — most have not been re-tested since, but the underlying action counts are now updated to v0.17.0 reality. CommonUI (51 actions) shipped v0.14.0 (2026-04-19) and was tested M0.5.1 (2026-04-25) with 8 bugs fixed. MonolithGAS: 53/53 PASS (12 bugs fixed). MonolithMesh: action-level testing in progress. MonolithUI: 36/42 PASS for the UMG baseline; CommonUI tested M0.5.1; 0.15.0 gap-closure actions PIE-smoke-tested at release. MonolithAI / LogicDriver / ComboGraph: functional through integration testing, per-action matrices in progress. 1 Editor action SKIP (trigger_build). 2 Animation actions UNTESTED (no AnimComposite assets in the test project). v0.14.9 added 4 new actions PIE-smoke-tested at release. v0.14.10 added 12 MetaSound document introspection actions in audio_query (all 12 happy-path + 11 negative-path tests PASS) plus FMetaSoundIndexer. v0.15.0 added the bulk_fill + describe ergonomics framework, the blueprint dataset read/edit pack, UI/Blueprint gap-closure actions, and monolith_guide — smoke-tested at release. v0.16.0 added 4 editor preview/inspection actions plus 3 new capture_scene_preview asset types — 9 automation tests, all PASS at release; plus persistence fixes (Issue #63) and the MCP initialize schema-discovery hint (Issue #62) — non-blocking smoke at release.
v0.17.0 — Reflection Intelligence automation tests: Monolith.ReflectionIntel.Decision.* (4 tests — SchemaBootstrap, HeuristicAccuracy, SupersessionChain, StalenessFlag) PASS. Monolith.ReflectionIntel.Risk.* (6 tests — RiskSchemaBootstrap, ChurnAggregation, CoChangePairSymmetry, HotspotScoreFormula, ConditionalGateSweep, MonsterCommitSuppression) PASS. Monolith.ReflectionIntel.ModuleDepReality.* (tests covering Build.cs parsing, symbol resolution, implicit-deps whitelist, template extraction) PASS. Monolith.ReflectionIntel.CppReflect.* (4 tests — CppReflectSchemaBootstrap, UClassFixtureExtraction, InterfaceImplResolution, AssetGraphJoin) PASS. Phase 4a (network + pipeline + 4 cross-namespace audits) — manual smoke only, automation tests deferred.
Reflection Intelligence — network-completeness workstream: new reflect namespace with reflect_query("rebuild_reflection_index") (WRITE/maintenance, no params) — manual smoke. list_replicated_classes bare-Replicated capture (via CPF_Net) verified E2E against a real project's replicated character/attribute classes (15 replicated classes with project plugins in scope). list_rpc_functions switched to specifier-based detection and, with the plugin scan-scope expansion (IPluginManager-driven, project plugins default-on), now verified E2E — returned the project's project-plugin Server RPCs. The prior "empty because game-module-only" status is resolved. E2E artefact counts: game module alone ~30 → with project plugins on 337 → with marketplace flag also on 927 (745 UClasses).
v0.17.0 — MCP LLM Ergonomics Pack automation tests: Phase 1.0 added +11 tests under Monolith.ResponseShaping.* and Monolith.ParamKind.* PASS. Phase 2 added +10 under Monolith.FuzzyMatch.* and Monolith.CursorPagination.* PASS. Phase 1.1 (87-file AssetPath/DiskPath sweep) verified by UBT clean exit + manual smoke at release. Niagara temporal-control surface (9 actions) + stateless-emitter factory (1 action) PIE-smoke-tested at release.
Note on counts in the per-module tables below. The action counts in the table headers reflect the v0.17.0 ground truth. The PASS/UNTESTED/SKIP rows are from the 2026-04-01 test pass and may have been superseded by actions added in subsequent versions (Phase J F1/F4/F8/F11/F17/F18/F22 in particular added 5+ actions across
editor,gas,ai, andaudio; v0.14.8 added Editor +2 + LevelSequence module; v0.14.9 added Editor +2 + Animation +1; v0.14.10 added Audio +12 MetaSound document introspection; v0.15.0 added the bulk_fill/describe framework, blueprint dataset pack +20, UI gap-closure +5, describeaction_schema+1, andmonolith_guide; v0.16.0 added Editor +4 preview/inspection actions; v0.17.0 added 5 new namespaces —decision5,risk5,cppreflect5,network4,pipeline2 — plus Niagara +10, plus 4 cross-namespace audit actions onmaterial/niagara/blueprint/project, plus thesource_query("audit_module_dep_reality")cross-namespace audit; the [Unreleased]cppreflect_query("list_class_specifiers")follow-up then broughtcppreflectto 6; and the [Unreleased] network-completenessreflect_query("rebuild_reflection_index")added a 25th namespacereflect1).
| Action | Status | Notes |
|---|---|---|
discover |
PASS | 25 namespaces, 1387 in-tree actions. Terse by default (names + one-line descriptions); full schemas via detail=true or describe_query("action_schema")
|
discover(namespace) |
PASS | All 25 namespaces, correct action counts |
status |
PASS | Version, port 9316, action count, engine version, project name. Reports extension-plugin union when loaded |
update(check) |
PASS | GitHub Releases query with SHA256 marker verification |
update(install) |
PASS | Full end-to-end: download, verify SHA256, stage, swap on exit. Retry loop handles Defender file locks. |
reindex |
PASS | Triggers successfully |
| Action | Status | Notes |
|---|---|---|
list_graphs |
PASS | 700 bytes, 14 graphs. Clean overview with asset class, parent class |
get_graph_summary |
PASS | 29KB for EventGraph (5.7x smaller than get_graph_data). Returns all graphs when graph_name empty |
get_graph_data |
PASS | 164KB full, 8KB with node_class_filter. Filter works well |
get_variables |
PASS | 8KB, 40 vars. CDO defaults confirmed populated (37/40 non-trivial) |
get_execution_flow |
PASS | 0.7-2KB. Two-pass FindEntryNode: prefers events/functions, skips comments |
search_nodes |
PASS | 3.5KB. Case-insensitive across all graphs |
get_cdo_properties |
PASS | Reads UPROPERTY defaults from Blueprint CDO or UObject asset |
batch_execute |
PASS | Multiple Blueprint operations in a single call |
resolve_node |
PASS | Resolves node reference to target |
search_functions |
PASS | Search functions and events by name |
get_node_details |
PASS | Full detail dump for a single node |
add_nodes_bulk |
PASS | Add multiple nodes in one call |
connect_pins_bulk |
PASS | Connect multiple pin pairs in one call |
set_pin_defaults_bulk |
PASS | Set multiple pin defaults in one call |
scaffold_interface_implementation |
PASS | Auto-generate interface stub events |
add_timeline |
PASS | Add Timeline node to a graph |
add_event_node |
PASS | Add named event node to a graph |
add_comment_node |
PASS | Add comment box to a graph |
get_function_signature |
PASS | Param list and return type for a function |
get_blueprint_info |
PASS | Comprehensive Blueprint summary |
get_event_dispatcher_details |
PASS | Full detail for a single event dispatcher |
remove_event_dispatcher |
PASS | Remove event dispatcher from Blueprint |
set_event_dispatcher_params |
PASS | Change event dispatcher parameter signature |
promote_pin_to_variable |
PASS | Promote pin value to Blueprint variable |
add_replicated_variable |
PASS | Add replicated variable with RepNotify |
| Action | Status | Notes |
|---|---|---|
get_all_expressions |
PASS | 8.7K chars, 43 expressions with class, position, params |
get_expression_details |
PASS | Full property dump with inputs, outputs, UE properties |
get_full_connection_graph |
PASS | 10K chars, 60 connections |
disconnect_expression |
PASS | Disconnects material output pins (expr→material property + expr→expr). Tested on Metallic output |
build_material_graph |
PASS | FindObject→FindFirstObject fix. Short class names work. Tested: 2 nodes + 2 outputs |
begin_transaction |
PASS | Returns transaction name + status "begun" |
end_transaction |
PASS | Returns status "ended". Closes transaction cleanly |
export_material_graph |
PASS | 44K default, 13K with include_properties=false (71% reduction) |
import_material_graph |
PASS | Both modes: "overwrite" (4 nodes, 3 connections round-trip) and "merge" (adds without clearing) |
validate_material |
PASS | 0 false positive islands. Added MP_MaterialAttributes + 6 properties, MaterialAttributeLayers BFS seed |
render_preview |
PASS | Saves PNG to Saved/Monolith/previews/, 68KB at 256x256 |
get_thumbnail |
PASS | save_to_file=true returns path (164 chars vs 91K base64). Both modes work |
create_custom_hlsl_node |
PASS | 2 inputs (Time, Speed), output_type Float1, HLSL code, position. Returns expression_name |
get_layer_info |
PASS | Correctly rejects non-layer materials with clear error |
create_material |
PASS | Created /Game/Test/M_MonolithTest with Opaque/DefaultLit/Surface defaults |
create_material_instance |
PASS | Created MIC from test material parent |
set_material_property |
PASS | Changed blend_mode to Masked |
delete_expression |
PASS | Deleted custom HLSL expression by name |
get_material_parameters |
PASS | Returns scalar/vector/texture/static_switch arrays with values |
set_instance_parameter |
PASS | Set scalar parameter on MIC. Supports scalar, vector, texture, static switch |
recompile_material |
PASS | Forced recompile via UMaterialEditingLibrary |
duplicate_material |
PASS | Duplicated material to new asset path |
get_compilation_stats |
PASS | Returns sampler count, texture estimates, expression count |
set_expression_property |
PASS | Set DefaultValue on scalar param, verified via get_expression_details |
connect_expressions |
PASS | Wired expr-to-expr and expr-to-material-property |
auto_layout |
PASS | Auto-arrange expression nodes in material graph |
duplicate_expression |
PASS | Duplicate expression node in-place |
replace_expression |
PASS | Swap expression type, preserving connections |
list_expression_classes |
PASS | List all available expression class names |
get_expression_connections |
PASS | All connections into/out of an expression |
get_expression_pin_info |
PASS | Pin names, types, connection state |
move_expression |
PASS | Move expression to new graph position |
rename_expression |
PASS | Rename expression parameter name |
get_material_properties |
PASS | Material-level properties (blend mode, shading model, etc.) |
get_instance_parameters |
PASS | List all parameter overrides on material instance |
set_instance_parameters |
PASS | Set multiple parameters on material instance in one call |
set_instance_parent |
PASS | Reparent material instance to different material |
clear_instance_parameter |
PASS | Clear parameter override (revert to parent) |
list_material_instances |
PASS | Find all material instances derived from a material |
save_material |
PASS | Explicitly save a material asset |
update_custom_hlsl_node |
PASS | Update HLSL code on CustomHLSL expression |
create_material_function |
PASS | Create new UMaterialFunction asset |
build_function_graph |
PASS | Build material function node graph from spec |
get_function_info |
PASS | Inputs, outputs, description of material function |
batch_set_material_property |
PASS | Set property on multiple materials in one call |
batch_recompile |
PASS | Recompile multiple materials in one call |
import_texture |
PASS | Import image file as UTexture2D asset |
MonolithAnimation (119 actions: 96 baseline + 13 PoseSearch + 5 ABP write + 3 ControlRig write + 1 layout + 1 v0.14.9 copy_bone_pose_between_sequences)
| Action | Status | Notes |
|---|---|---|
add_montage_section |
PASS | Created "TestSection_Monolith" at index 1, time 0.5 |
delete_montage_section |
PASS | Deletes by index. Guards against deleting last section |
set_section_next |
PASS | Linked TestSection_Monolith → Default |
set_section_time |
PASS | Moved section time to 0.3 |
add_blendspace_sample |
PASS | Added sample at (99,99). Skeleton mismatch returns descriptive error |
edit_blendspace_sample |
PASS | Moved sample from (99,99) to (88,88) |
delete_blendspace_sample |
PASS | Invalid index returns descriptive error |
get_state_machines |
PASS | Clean names (no \n). from_type/to_type on transitions |
get_state_info |
PASS | Validates required params — clear error on empty machine_name |
get_transitions |
PASS | All from/to resolved. from_type/to_type distinguishes state vs conduit |
get_blend_nodes |
PASS | 6KB. 27 nodes with pin connections |
get_linked_layers |
PASS | Found self-layer correctly |
get_graphs |
PASS | 7KB. 66 graphs, clean names, node/anim_node/SM counts |
get_nodes |
PASS | 21KB unfiltered, 8KB with graph_name, 450B with class filter |
set_notify_time |
PASS | UAnimSequenceBase fix — montages now accepted. Tested on A_UE4_FP_Sprint |
set_notify_duration |
PASS | Same fix. Error message includes (total: N) |
set_bone_track_keys |
PASS | 2 keys written (position/rotation/scale arrays) |
add_bone_track |
PASS | Added "root" track successfully |
remove_bone_track |
PASS | Non-existent bone returns removed_count=0 gracefully |
add_virtual_bone |
PASS | Validates source/target bones exist. Previously crashed editor |
remove_virtual_bones |
PASS | Returns error for non-existent bone names |
get_skeleton_info |
PASS | 27KB. 262 bones + 12 virtual bones with parent chains |
get_skeletal_mesh_info |
PASS | 8KB. Materials, 181 morph targets, sockets, LODs |
get_sequence_info |
PASS | Duration, frames, sample rate, root motion, additive, compression |
get_sequence_notifies |
PASS | All notifies with name, time, duration, class, track |
get_bone_track_keys |
PASS | Position/rotation/scale key arrays |
get_sequence_curves |
PASS | Float/transform curves with key counts |
get_montage_info |
PASS | Sections, slots, blend in/out, rate scale |
get_blend_space_info |
PASS | Samples + axis config (min/max/name/grid) |
get_skeleton_sockets |
PASS | Socket name, bone, location/rotation/scale |
get_abp_info |
PASS | Skeleton, parent class, state machines, graphs, variables |
add_notify |
PASS | Added PlaySound at t=0.01s. Validates time range |
add_notify_state |
PASS | Creates state notify with duration |
remove_notify |
PASS | Removes by index, returns remaining count |
set_notify_track |
PASS | Moves notify to different track |
list_curves |
PASS | Full CRUD cycle verified |
add_curve |
PASS | Added float curve via IAnimationDataController |
remove_curve |
PASS | Removed test curve cleanly |
set_curve_keys |
PASS | Set 3 keys. Param is keys_json (string) |
get_curve_keys |
PASS | Returns time/value/interp_mode per key |
add_socket |
PASS | Created socket on hand_r. Full CRUD cycle verified |
remove_socket |
PASS | Removed test socket cleanly |
set_socket_transform |
PASS | Updated location and rotation |
get_skeleton_curves |
PASS | 15 curves on Manny skeleton |
set_blend_space_axis |
PASS | Changed X axis min/max, verified, restored |
set_root_motion_settings |
PASS | Toggled root motion on/off |
create_sequence |
PASS | Created asset with skeleton. Bad skeleton returns error |
duplicate_sequence |
PASS | Duplicated idle loop |
create_montage |
PASS | Created with Default section + DefaultSlot |
set_montage_blend |
PASS | Set blend_in=0.5, blend_out=0.3 |
add_montage_slot |
PASS | Added UpperBody slot. Duplicate name returns error |
set_montage_slot |
PASS | Renamed slot by index |
apply_anim_modifier |
PASS | Applied AnimationModifier base class |
list_anim_modifiers |
PASS | Found BP_CopyCurves_C on Idle_Loop |
get_composite_info |
PASS | Returns clear error on non-composite |
add_composite_segment |
UNTESTED | No AnimComposite assets in project |
remove_composite_segment |
UNTESTED | No AnimComposite assets in project |
get_pose_search_schema |
PASS | sample_rate 30, 2 channels, schema_cardinality 34 |
get_pose_search_database |
PASS | 2 sequences, schema ref, enabled/sampling data |
add_database_sequence |
PASS | Added sequence to PoseSearch database |
remove_database_sequence |
PASS | Removed sequence from PoseSearch database |
get_database_stats |
PASS | 368 poses, PCAKDTree mode, is_valid=true |
get_ikrig_info |
PASS | Chains, goals, solvers, retarget root |
add_ik_solver |
PASS | Added PBIK solver to IKRig |
get_retargeter_info |
PASS | Source/target rigs, chain mappings, auto-map status |
set_retarget_chain_mapping |
PASS | Set/update chain mapping on IK Retargeter |
get_control_rig_info |
PASS | Hierarchy: bones, controls, nulls, curves |
get_control_rig_variables |
PASS | Variables on Control Rig Blueprint |
add_control_rig_element |
PASS | Add bone, control, or null to hierarchy |
get_abp_variables |
PASS | Variables with type info and default values |
get_abp_linked_assets |
PASS | Assets linked to Animation Blueprint |
add_state_to_machine |
PASS | Add new state to AnimBP state machine |
add_transition |
PASS | Add transition between two states |
set_transition_rule |
PASS | Set condition expression on transition |
| Action | Status | Notes |
|---|---|---|
add_emitter |
PASS | Requires valid NiagaraEmitter asset path. Returns handle_id |
remove_emitter |
PASS | Removes by handle ID or name |
duplicate_emitter |
PASS | Duplicates with all settings (sim_target, renderers) |
set_emitter_enabled |
PASS | Enable/disable/re-enable cycle verified |
reorder_emitters |
PASS | Param is order. Verified reorder + restore |
set_emitter_property |
BUG | Bare JSON primitives fail UE's FJsonSerializer::Deserialize. Workaround: use object-wrapped values |
request_compile |
PASS | Triggers system recompile |
create_system |
PASS | Creates empty system at save_path
|
get_ordered_modules |
PASS | Usage filter + shorthands ("spawn", "update"). Invalid = error with valid list |
get_module_inputs |
PASS | All input types: floats, vectors, colors, DIs, enums, bools, positions, quaternions |
get_module_graph |
PASS | Full node graph with pins and links |
add_module |
PASS | Pre-call graph validation. Adds to specified stage |
remove_module |
PASS | Splice via ParameterMap pins |
move_module |
PASS | Remove+re-add strategy via ParameterMap pins |
set_module_enabled |
PASS | Enables/disables module in stack |
set_module_input_value |
PASS | Sets literal values. BreakAllPinLinks guard for bound inputs |
set_module_input_binding |
PASS | Binds inputs to parameters. Static switch guard. Accepts short names |
set_module_input_di |
PASS | Validates input exists and is DI type. Full input enumeration via engine API |
create_module_from_hlsl |
PASS | Creates .niagaraFunction asset. Inputs overridable via set_module_input_value. Dot validation rejects dotted I/O names with clear error |
create_function_from_hlsl |
PASS | Creates function-usage .niagaraFunction asset. Same param schema and HLSL body rules as create_module_from_hlsl |
get_all_parameters |
PASS | Filtering: scope, emitter, combined |
get_user_parameters |
PASS | Clean, compact output |
get_parameter_value |
PASS | Both User.X and X formats work |
get_parameter_type |
PASS | Returns size, primitiveness, is_di, is_enum |
trace_parameter_binding |
PASS | Both prefix formats work |
add_user_parameter |
PASS | Fallback param names + empty-name guard |
remove_user_parameter |
PASS | Case-insensitive comparison |
set_parameter_default |
PASS | Case-insensitive comparison |
set_curve_value |
PASS | All 3 DI curve types: float, color, vector2D |
add_renderer |
PASS | Rejects abstract base class |
remove_renderer |
PASS | Removes by index |
set_renderer_material |
PASS | Sets material on renderer |
set_renderer_property |
PASS | Sets property by name |
get_renderer_bindings |
PASS | Clean JSON: name/bound_to/type |
set_renderer_binding |
PASS | Binds renderer properties to parameters |
batch_execute |
PASS | All 23 write ops in dispatch table. Per-op results array |
create_system_from_spec |
PASS | Creates system with emitters from spec JSON. Validates emitter paths |
list_emitters |
PASS | Name, index, enabled, sim_target, renderer_count |
list_renderers |
PASS | Renderer class, index, enabled, material |
list_module_scripts |
PASS | Keyword search across available Niagara module scripts |
list_renderer_properties |
PASS | Editable properties on a renderer by emitter + renderer index |
set_system_property |
PASS | WarmupTime, bDeterminism, bFixedTickDelta, RandomSeed, MaxPoolSize. Snake_case aliases supported |
set_static_switch_value |
PASS | Bool, enum (by value name), or int static switch inputs on modules |
get_di_functions |
PASS | Simple name lookup works |
get_compiled_gpu_hlsl |
PASS | Auto-compiles if HLSL not cached |
get_system_summary |
PASS | Emitter count, renderer count, param count, compile status |
get_emitter_summary |
PASS | Module count, renderer count, sim target, module names |
list_emitter_properties |
PASS | Editable UPROPERTY fields grouped by category |
get_module_input_value |
PASS | Current value of a single module input |
configure_curve_keys |
PASS | Set full key list on curve DI in one call |
configure_data_interface |
PASS | Set multiple DI properties in one call |
duplicate_system |
PASS | Deep-copies system with override table |
set_fixed_bounds |
PASS | Fixed world-space bounds on Niagara system |
set_effect_type |
PASS | Assign effect type asset to system |
create_emitter |
PASS | Create standalone Niagara emitter from scratch |
export_system_spec |
PASS | Export system spec as JSON |
add_dynamic_input |
PASS | Add dynamic input module to module input slot |
set_dynamic_input_value |
PASS | Set value on dynamic input module |
search_dynamic_inputs |
PASS | Search available dynamic input scripts |
add_event_handler |
PASS | Add event handler stage to emitter, returns handler index |
validate_system |
PASS | GPU+Light conflicts, missing materials, bounds warnings |
add_simulation_stage |
PASS | Add simulation stage to GPU emitter |
| Action | Status | Notes |
|---|---|---|
trigger_build |
SKIP | Not tested to avoid disruption |
live_compile |
PASS | Compiled 3 modules |
get_build_errors |
PASS | error_count + warning list |
get_build_status |
PASS | Live coding status fields |
get_build_summary |
PASS | Summary with counts |
search_build_output |
PASS | Pattern search works |
get_recent_logs |
PASS | Default 100, max/count params work |
search_logs |
PASS | Pattern, category, verbosity filters |
tail_log |
PASS | Returns 50 formatted lines |
get_log_categories |
PASS | 134 categories |
get_log_stats |
PASS | Total/fatal/error/warning/log/verbose counts |
get_compile_output |
PASS | Structured compile report |
get_crash_context |
PASS | Returns recent_errors |
| Action | Status | Notes |
|---|---|---|
resolve_setting |
PASS | Engine/Game/Input categories |
explain_setting |
PASS | Convenience + explicit modes, layer breakdown |
diff_from_default |
PASS | Section filter, change_type |
search_config |
PASS | Category filter works |
get_section |
PASS | Category resolution works |
get_config_files |
PASS | 38 files, 3 hierarchy levels |
| Action | Status | Notes |
|---|---|---|
search |
PASS | FTS5 ranking, match highlighting, default limit 50 |
find_references |
PASS | Bidirectional deps/referencers |
find_by_type |
PASS | 5 types tested, pagination works |
get_stats |
PASS | 11 tables, 9,571 assets, 80,991 nodes |
get_asset_details |
PASS | Deep data: nodes, vars, refs |
| Action | Status | Notes |
|---|---|---|
read_source |
PASS | Full source, 137K chars for AActor |
read_source (members_only) |
PASS | Members with bodies omitted |
find_references |
PASS | 50+ type references |
find_callers |
PASS | 50+ callers with file/line info |
find_callees |
PASS | Call graph with function names |
search_source |
PASS | Symbol + source line matches |
get_class_hierarchy |
PASS | 62K definitions, 37K inheritance links |
get_module_info |
PASS | Path, type, file count, key classes |
get_symbol_context |
PASS | Implementation + 20 lines context |
read_file |
PASS | Relative path suffix matching |
trigger_project_reindex |
UNTESTED | New in v0.8.0 — incremental project C++ re-index |
53/53 tests PASS for the original suite. 12 bugs fixed across 8 commits. All 4 implementation phases complete. Phase J F4 added a baseline vitals AttributeSet template (untested at this writing — no formal coverage yet).
| Category | Actions | Status | Notes |
|---|---|---|---|
| Abilities | 14 | 53/53 PASS | Tested via PIE runtime. All activation policies verified |
| Attributes | 16 | C++ and Blueprint (GBA) attribute sets tested | |
| Effects | 18 | Duration, stacking, period, conditional application all verified | |
| ASC | 12 | Grant/revoke/apply/remove cycles tested | |
| Tags | 10 | Hierarchical queries, container ops verified | |
| Cues | 10 | Create, trigger, inspect verified | |
| Targeting | 12 | Trace and actor targeting verified | |
| Input | 8 | Enhanced Input binding verified | |
| Inspect | 16 | Runtime debugging tools verified | |
| Scaffold | 14 | Template generation verified |
Key bugs fixed: IGameplayTagsEditorModule API compatibility, EnsureAssetPathFree 3-tier guard, BS_BeingCreated suppression, Asset Registry pre-filter, GAS deep indexer registration. WITH_GBA=1 and WITH_GBA=0 compile clean.
Verified functional through integration testing. Per-action test matrix in progress. Phase J F1 hardened BT crash handling. Phase J F8 added add_perception_to_actor and get_bt_graph. Phase J F22 retrofit moved WITH_STATETREE and WITH_SMARTOBJECTS to proper conditional gating.
| Category | Actions | Status | Notes |
|---|---|---|---|
| Behavior Trees | ~30 | Functional | BT CRUD, node management, build_behavior_tree_from_spec verified |
| Blackboards | ~15 | Functional | Key CRUD with all types verified |
| State Trees | ~25 | Functional | ST CRUD, build_state_tree_from_spec verified. Requires WITH_STATETREE |
| EQS | ~20 | Functional | Query/generator/test CRUD verified |
| Smart Objects | ~15 | Functional | Definition/slot management verified. Requires WITH_SMARTOBJECTS |
| AI Controllers | ~15 | Functional | Controller creation, BT/BB assignment verified |
| Perception | ~20 | Functional | Sense configuration verified |
| Navigation | ~15 | Functional | Path queries, filter management verified |
| Runtime/PIE | ~20 | Functional | Start/stop BT, BB inspection verified in PIE |
| Scaffolding | ~20 | Functional | Template generation verified |
| Discovery | ~15 | Functional | Asset listing and search verified |
| Advanced | ~19 | Functional | Verified through usage |
Verified functional through integration testing. Per-action test matrix in progress. Conditional on #if WITH_LOGICDRIVER.
| Category | Actions | Status | Notes |
|---|---|---|---|
| SM CRUD | 7 | Functional | Create, inspect, compile, list verified |
| Graph Read/Write | 12 | Functional | State/transition management verified |
| Node Config | 8 | Functional | Property editing via reflection verified |
| Runtime/PIE | 6 | Functional | Start/stop, state queries verified in PIE |
| JSON Spec | 5 | Functional | build_sm_from_spec verified |
| Scaffolding | 10 | Functional | Template generation verified |
| Components | 5 | Functional | Component management verified |
| Text Graph | 3 | Functional | Visualization verified |
| Discovery | 10 | Functional | Asset listing verified |
Verified functional through integration testing. Per-action test matrix in progress. Conditional on #if WITH_COMBOGRAPH.
| Category | Actions | Status | Notes |
|---|---|---|---|
| Read | 4 | Functional | Graph inspection verified |
| Create | 5 | Functional | Node/edge creation verified |
| Scaffold | 4 | Functional | Ability scaffolding, auto_layout verified |
Core mesh functionality verified through integration testing. Per-action test matrix in progress.
| Tier | Actions | Status | Notes |
|---|---|---|---|
| Mesh Inspection | 12 | Functional | Verified through usage |
| Scene Manipulation | 8 | Functional | Verified through usage |
| Spatial Queries | 11 | Functional | Verified through usage |
| Level Blockout | 15 | Functional | Verified through usage |
| GeometryScript | 12 | Functional | Requires GeometryScriptingEditor plugin |
| Horror Analysis | 8 | Functional | Verified through usage |
| Accessibility | 6 | Functional | Verified through usage |
| Lighting | 5 | Functional | Verified through usage |
| Audio/Acoustics | 14 | Functional | Verified through usage |
| Performance | 5 | Functional | Verified through usage |
| Decals | 4 | Functional | Verified through usage |
| Level Design | 9 | Functional | Verified through usage |
| Volumes | 7 | Functional | Verified through usage |
| Horror Intelligence | 4 | Functional | Verified through usage |
| Tech Art | 7 | Functional | Verified through usage |
| Advanced Level Design | 8 | Functional | Verified through usage |
| Context Props | 8 | Functional | Verified through usage |
| Procedural Geometry | 8 | Functional | Verified through usage |
| Genre Presets | 8 | Functional | Verified through usage |
| Encounter Design | 8 | Functional | Verified through usage |
| Quality & Polish | 9 | Functional | Verified through usage |
| Town Gen (experimental) | 45 | EXPERIMENTAL | Known geometry issues — wall misalignment, room separation |
| Test | Status | Notes |
|---|---|---|
| WITH_BLUEPRINT_ASSIST=0 compile | PASS | Empty shell, no impact on core |
| WITH_BLUEPRINT_ASSIST=1 compile | PASS | BA formatter registered |
| auto_layout fallback | PASS | Uses Sugiyama when BA absent |
| Test | Status | Notes |
|---|---|---|
| Plugin loads without errors | PASS | No LogMonolith errors on startup |
| MCP server starts on configured port | PASS | tools/list returns 23 tools |
| All 19 namespaces register actions | PASS | discover returns all 19 in-tree namespaces |
| Project auto-indexes on first launch | PASS | Deferred to OnFilesLoaded, indexes 9,560+ assets |
| Stateless server | PASS | No session tracking |
| Cross-platform update extraction | PASS | Windows verified, macOS/Linux untested |
| Hot-swap plugin on editor exit | PASS | v0.4.0→v0.5.0 full cycle |
| editor.live_compile | PASS | Compiled 3 modules via MCP |
| Per-action param schemas | PASS | Lazy-fetch via describe_query("action_schema") or discover(detail=true); discover is terse by default |
| MCP proxy auto-reconnect | PASS | Survives editor restart, tools/list_changed sent |
| GAS PIE runtime tests | PASS | 53/53 pass, abilities activate and effects apply |
MONOLITH_RELEASE_BUILD=1 strips optional deps |
PASS | All WITH_* macros forced to 0; release zip loads cleanly without GBA/ComboGraph/LogicDriver/CommonUI/MetaSound/StateTree/SmartObjects/MassEntity/ZoneGraph/BlueprintAssist |
| MonolithAI module loads | PASS | 221 actions registered when WITH_STATETREE + WITH_SMARTOBJECTS |
| MonolithLogicDriver module loads | PASS | 66 actions registered when Logic Driver Pro installed |
| MonolithComboGraph module loads | PASS | 13 actions registered when ComboGraph installed |
| MonolithUI CommonUI actions register | PASS | 51 CommonUI actions (M0.5.1, 2026-04-25) when WITH_COMMONUI=1 |
| Extension plugin registry sharing | PASS | External extension plugins register into shared FMonolithToolRegistry |
| ReflectionIntel decision_query | PASS | 4 automation tests pass (SchemaBootstrap, HeuristicAccuracy, SupersessionChain, StalenessFlag) |
| ReflectionIntel risk_query | PASS | 6 automation tests pass (RiskSchemaBootstrap, ChurnAggregation, CoChangePairSymmetry, HotspotScoreFormula, ConditionalGateSweep, MonsterCommitSuppression) |
| ReflectionIntel cppreflect_query | PASS | 4 automation tests pass (CppReflectSchemaBootstrap, UClassFixtureExtraction, InterfaceImplResolution, AssetGraphJoin) |
| ReflectionIntel source audit | PASS | Build.cs parsing, EngineSource.db symbol resolution, implicit-deps whitelist, template-argument extraction all covered |
| ReflectionIntel network_query | UNTESTED | Phase 4a manual smoke at release; automation tests deferred |
| ReflectionIntel pipeline_query | UNTESTED | Phase 4a manual smoke at release; automation tests deferred |
| MCP LLM Ergonomics response shaping | PASS | 11 tests pass (Monolith.ResponseShaping.* + Monolith.ParamKind.*) |
| MCP LLM Ergonomics fuzzy match | PASS | 5 tests pass (Monolith.FuzzyMatch.*) |
| MCP LLM Ergonomics cursor pagination | PASS | 5 tests pass (Monolith.CursorPagination.*) |
| monolith_proxy.exe | PASS | Stdio proxy keeps session alive across editor restart |
| monolith_query.exe | PASS | All 14 offline actions return correct results |
| Module | Actions (v0.17.0) | PASS (2026-04-01 audit) | UNTESTED | BUG | SKIP |
|---|---|---|---|---|---|
Core (monolith meta) |
5 | 4 | 1 (guide) |
0 | 0 |
bulk_fill framework |
2 | — | — | 0 | 0 |
describe framework |
3 | — | — | 0 | 0 |
| Blueprint | 112 | 86 | 26 | 0 | 0 |
| Material | 64 | 57 | 7 | 0 | 0 |
| Animation | 125 | 113 | 12 | 0 | 0 |
| Niagara | 120 | 96 | 24 | 0 | 0 |
| Mesh | 194 core (+45 town gen experimental) | — | — | 0 | 0 |
| AI | 221 | — | — | 0 | 0 |
| Editor | 33 | 18 | 14 | 0 | 1 |
| Config | 6 | 6 | 0 | 0 | 0 |
| Project | 8 | 7 | 1 | 0 | 0 |
| Source | 12 | 11 | 1 | 0 | 0 |
| UI | 138 | 36 (UMG) + 51 (CommonUI M0.5.1) | 51 | 0 | 0 |
| GAS | 135 | 53 | — | 0 | 0 |
| LogicDriver | 66 | — | — | 0 | 0 |
| ComboGraph | 13 | — | — | 0 | 0 |
| Audio | 98 | — | — | 0 | 0 |
| LevelSequence | 8 | — | — | 0 | 0 |
| BA Bridge | 0 (integration) | — | — | 0 | 0 |
| ReflectionIntel: decision | 5 | 5 (4 automation + manual smoke) | 0 | 0 | 0 |
| ReflectionIntel: risk | 5 | 5 (6 automation + manual smoke) | 0 | 0 | 0 |
| ReflectionIntel: cppreflect | 6 | 5 (4 automation + manual smoke) | 1 (list_class_specifiers [Unreleased], untested) |
0 | 0 |
| ReflectionIntel: network | 4 |
list_replicated_classes (15 replicated classes) + list_rpc_functions (project-plugin RPCs) verified E2E ([Unreleased] plugin scan scope) |
2 (Phase 4a manual smoke — list_onrep_handlers, audit_unbalanced_onreps) |
0 | 0 |
| ReflectionIntel: pipeline | 2 | — | 2 (Phase 4a manual smoke only) | 0 | 0 |
| ReflectionIntel: reflect | 1 | manual smoke ([Unreleased] rebuild_reflection_index) |
0 | 0 | 0 |
| Total | 1387 in-tree | 578+ verified | growing | 0 | 1 |
Note: The 577+ formally verified PASS count is the union of the 2026-04-01 test audit (487) plus the M0.5.1 CommonUI test pass (50) plus the C++ tests landed for the bridge plugins plus the v0.14.9 PIE smoke tests (4 actions) plus the v0.14.10 PIE smoke matrix (12 MetaSound document introspection — 12 happy + 11 negative) plus the v0.16.0 automation suite (4 editor preview/inspection — 9 tests) plus v0.17.0's Reflection Intelligence Phase 1-3a automation suites (Decision 4 + Risk 6 + ModuleDepReality + CppReflect 4) plus the MCP LLM Ergonomics test suites (Response Shaping 11 + Fuzzy Match 5 + Cursor Pagination 5). UNTESTED counts grew because action counts grew between 0.12.0 (the audit baseline) and 0.17.0 — the new actions haven't all gone through formal test passes yet. MonolithMesh (194 core actions), MonolithAI (221 actions), MonolithLogicDriver (66 actions), MonolithComboGraph (13 actions), MonolithAudio (98 actions), and MonolithLevelSequence (8 actions) are verified functional through integration testing but per-action test matrices remain in progress. The v0.15.0–v0.17.0 additions are smoke-tested at release; full per-action matrices remain in progress. 1 Editor SKIP (
trigger_build— not tested to avoid build disruption). Town gen (45 actions) is experimental with known geometry issues — disabled by default. Phase 4a network + pipeline actions shipped with manual smoke only — automation tests deferred.