Files
hcie-rust-v3.05/project_manifest.json
T

266 lines
13 KiB
JSON
Raw Normal View History

2026-07-09 02:59:53 +03:00
{
"project_name": "hcie-rust-v4",
"generated_at": "2026-06-12T22:52:00+03:00",
"semantic_mapping_version": "1.0.0",
"total_crates": 29,
"files": [
{
"file_path": "hcie-engine-api/src/lib.rs",
"description": "Public ENGINE API (~20 functions). Sole boundary between engine and GUI/AI. staticlib output.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-ai/src/lib.rs",
"impact_description": "AI executor calls engine API functions to modify document state. Changing Engine method signatures or semantics breaks AI agent actions."
},
{
"target_file": "hcie-vision/src/lib.rs",
"impact_description": "Vision module sends processed images into engine via open_image or layer pixel injection. API contract changes break vision pipeline."
},
{
"target_file": "hcie-egui-app/crates/hcie-gui-egui/src/app/mod.rs",
"impact_description": "Main app holds Engine instance and calls nearly every public method. Signature changes require massive GUI refactoring."
},
{
"target_file": "hcie-egui-app/crates/hcie-gui-egui/src/canvas/render.rs",
"impact_description": "Canvas render calls render_composite_region/get_composite_pixels. Render pipeline changes break viewport updates."
},
{
"target_file": "hcie-egui-app/crates/egui-panel-adapter/src/lib.rs",
"impact_description": "Adapter bridges Engine API outputs (ModulePanel, WidgetDescription) to egui widgets. Engine API output format changes break adapter rendering."
}
]
},
{
"file_path": "hcie-blend/src/lib.rs",
"description": "30+ blend mode pixel compositing engine. Core hot path for every visible pixel.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-draw/src/lib.rs",
"impact_description": "draw_brush_stamp, draw_filled_circle, and all draw ops call blend_pixels. Changing blend math silently changes every brush stroke appearance."
},
{
"target_file": "hcie-composite/src/lib.rs",
"impact_description": "Composite pipeline calls blend_pixels per pixel for every visible layer. Blend correctness changes alter final image globally."
},
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "Engine API compositing pipelines rely on blend_pixels for all canvas output. No alternative blend path exists."
}
]
},
{
"file_path": "hcie-color/src/lib.rs",
"description": "Color space conversions: gamma encode/decode, sRGB linearity, HSL conversions.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-blend/src/lib.rs",
"impact_description": "Every blend mode calls gamma_encode/gamma_decode. Changing gamma curves or removing clamp behavior shifts the entire color output of the compositor."
},
{
"target_file": "hcie-filter/src/lib.rs",
"impact_description": "Brightness/contrast and hue/saturation filters depend on srgb_to_linear and linear_to_srgb. Any color math change produces different filter results."
},
{
"target_file": "hcie-draw/src/lib.rs",
"impact_description": "Drawing engine alpha blending assumptions about linearity must match color crate; otherwise anti-aliased edges look wrong."
},
{
"target_file": "hcie-composite/src/lib.rs",
"impact_description": "Compositing uses blend_pixels which internally delegates to color crate gamma functions; gamma changes shift final canvas colors."
}
]
},
{
"file_path": "hcie-document/src/lib.rs",
"description": "Document state manager: layers, active layer, history, dirty bounds, selection, zoom/pan.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "Engine API contains a Document instance and forwards nearly all ops to it. Changing Document semantics breaks engine render correctness."
},
{
"target_file": "hcie-history/src/lib.rs",
"impact_description": "Document pushes concrete UndoableAction implementations into HistoryManager. Trait or action struct changes break undo/redo."
},
{
"target_file": "hcie-io/src/lib.rs",
"impact_description": "IO save_native serializes Document.layers. Changing Vec<Layer> structure or adding fields requires IO schema migration."
},
{
"target_file": "hcie-selection/src/lib.rs",
"impact_description": "Document stores selection_mask and uses selection crate ops. Mask lifecycle changes cause selection desync."
},
{
"target_file": "hcie-tile/src/lib.rs",
"impact_description": "Document resize_canvas and crop change layer dimensions. If tile caches are not invalidated after dimension changes, TiledLayer reads stale width/height causing index out-of-bounds."
}
]
},
{
"file_path": "hcie-draw/src/lib.rs",
"description": "Low-level pixel drawing: brush stamp application, line, circle, rect, ellipse, flood fill.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "Engine API delegates all raster drawing (brush strokes, lines, rects, ellipses, flood fill) to this crate. Any pixel-level bug corrupts user content silently."
},
{
"target_file": "hcie-brush-engine/src/lib.rs",
"impact_description": "draw_brush_stroke generates stamps via generate_brush_stamp. Changing stamp algorithm changes brush silhouette globally."
},
{
"target_file": "hcie-egui-app/crates/hcie-gui-egui/src/canvas/render.rs",
"impact_description": "Canvas texture is the direct output of draw+composite pipeline. Draw math changes reflect immediately in viewport."
}
]
},
{
"file_path": "hcie-brush-engine/src/lib.rs",
"description": "Procedural brush stamp generation and specialized brush implementations (oil, charcoal, watercolor, spray, etc.).",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-draw/src/lib.rs",
"impact_description": "draw_brush_stroke generates stamps via generate_brush_stamp and uses brush_spacing_pixels and jitter_offset. Changing stamp algorithm changes brush silhouette globally."
},
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "Engine stroke_to / draw_stroke dispatch to draw_specialized_stroke and draw_brush_stroke. Brush algorithm changes affect all user drawing tools."
},
{
"target_file": "hcie-egui-app/crates/hcie-gui-egui/src/app/brushes_panel.rs",
"impact_description": "Brush panel presets must match brush-engine defaults; mismatch causes UI preview vs actual brush divergence."
},
{
"target_file": "hcie-brush-engine/src/dynamics.rs",
"impact_description": "draw_specialized_stroke passes RAW pressure to each specialized brush function. If dynamics.rs changes pressure mapping curves, all specialized brush appearances shift silently."
}
]
},
{
"file_path": "hcie-fx/src/shadow.rs",
"description": "Layer effects: drop shadow, inner shadow, outer glow, inner glow, bevel emboss, satin, color overlay, gradient overlay, pattern overlay, stroke.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-filter/src/lib.rs",
"impact_description": "Layer effects depend on filter primitives (blur, color adjustments). Effects pipeline changes break filter contracts."
},
{
"target_file": "hcie-vector/src/lib.rs",
"impact_description": "Bevel emboss uses vector shape edges. Edge softness depends on exact blend math."
},
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "Engine apply_layer_effects calls the effects pipeline. API changes affect all layer style UI."
}
]
},
{
"file_path": "hcie-fx/src/stroke.rs",
"description": "Layer style stroke effect: generates stroke pixels around shape boundaries using EDT distance transform.",
"blast_radius": "MEDIUM",
"semantic_dependencies": [
{
"target_file": "hcie-fx/src/shadow.rs",
"impact_description": "Stroke effect is called from apply_layer_effects in shadow.rs. Stroke positioning logic changes affect all layer styles."
}
]
},
{
"file_path": "hcie-ai/src/lib.rs",
"description": "AI action executor and Ollama/LMStudio client. Translates AI-generated JSON actions to Engine commands.",
"blast_radius": "MEDIUM",
"semantic_dependencies": [
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "AI actions are translated into EngineCommand JSON and executed via Engine API. If Engine API changes command schema, AI actions silently fail."
},
{
"target_file": "hcie-egui-app/crates/egui-panel-ai-chat/src/lib.rs",
"impact_description": "AI chat UI displays AI responses and triggers AI actions. Changing AI response format breaks chat rendering and action parsing."
},
{
"target_file": "hcie-ai/src/tools.rs",
"impact_description": "AI executor dispatches AI actions by matching hardcoded strings against tool schema names. Schema name changes break executor dispatch with silent no-ops."
}
]
},
{
"file_path": "hcie-ai/src/tools.rs",
"description": "Canvas tool schemas exported to the LLM as JSON function definitions. Defines the ENTIRE AI→Canvas API contract.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "execute_ai_actions parses hardcoded JSON keys ('CreateLayer', 'PaintStroke', 'set_brush', etc.) that originate from tool schemas here. Any parameter name change causes silent 'Unknown AI action variant' failures at runtime."
},
{
"target_file": "hcie-protocol/src/lib.rs",
"impact_description": "Tool schemas reference protocol enums (BlendMode, BrushStyle, VectorShape, LayerType) by name. Protocol enum variant renames break AI-generated JSON without compile-time errors."
}
]
},
{
"file_path": "hcie-egui-app/crates/hcie-gui-egui/src/app/mod.rs",
"description": "Main App state machine: event handling, engine command dispatch, update loop.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "App sends EngineCommand variants to Engine and handles EngineEvent responses. Adding a new command variant without app handling makes the feature unreachable from UI."
},
{
"target_file": "hcie-egui-app/crates/hcie-gui-egui/src/app/toolbox.rs",
"impact_description": "Toolbox sets current Tool in App state; App then configures Engine brush/vector/text mode. Tool enum changes desync toolbox and engine."
},
{
"target_file": "hcie-egui-app/crates/egui-panel-ai-chat/src/lib.rs",
"impact_description": "AI chat module sends async AI events to App. App must handle AiActionCompleted/AiActionFailed events and update UI state."
}
]
},
{
"file_path": "hcie-egui-app/crates/hcie-gui-egui/src/canvas/render.rs",
"description": "Canvas rendering: composites engine output into egui texture, handles zoom/pan/viewport.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "Calls render_composite_region / get_composite_pixels. If engine pixel output format changes (e.g., premultiplied alpha), canvas displays corrupted colors."
}
]
},
{
"file_path": "hcie-egui-app/crates/hcie-gui-egui/src/canvas/mod.rs",
"description": "Canvas input event routing (mouse, tablet, pressure), tool dispatch, coordinate transformation.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-engine-api/src/lib.rs",
"impact_description": "Canvas input translates to engine stroke_to, begin_stroke, end_stroke. Coordinate mapping (zoom, pan, dpi) must match engine pixel space exactly or strokes land in wrong locations."
}
]
},
{
"file_path": "hcie-io/src/lib.rs",
"description": "Document serialization: PSD, KRA, native format import/export.",
"blast_radius": "HIGH",
"semantic_dependencies": [
{
"target_file": "hcie-document/src/lib.rs",
"impact_description": "IO save_native serializes Document.layers. Changing Vec<Layer> structure or adding fields requires IO schema migration."
},
{
"target_file": "hcie-protocol/src/lib.rs",
"impact_description": "Layer struct definition determines serialization format. Adding Layer fields without IO updates causes data loss on save."
}
]
}
]
}