rookiestar28
|
d589717f5a
|
feat(stage3): add 35 community error patterns with i18n support
STAGE 3: F12 Pattern Expansion Complete
Changes:
1. Added 7 community pattern JSON files (35 patterns total)
- patterns/community/controlnet.json (8 ControlNet patterns)
- patterns/community/lora.json (6 LoRA patterns)
- patterns/community/vae.json (5 VAE patterns)
- patterns/community/animatediff.json (4 AnimateDiff patterns)
- patterns/community/ipadapter.json (4 IPAdapter patterns)
- patterns/community/facerestore.json (3 FaceRestore patterns)
- patterns/community/misc.json (5 misc patterns)
2. Updated ERROR_KEYS in i18n.py
- Added 35 new error keys
- Total patterns: 57 (22 builtin + 35 community)
3. Added translations for all new patterns
- English (en): Complete ✅
- 繁體中文 (zh_TW): Complete ✅
- 简体中文 (zh_CN): Complete ✅
- Other languages (ja, de, fr, it, es, ko): Fallback to English
Pattern Categories:
- ControlNet: 8 patterns (model loading, preprocessing, sizing)
- LoRA: 6 patterns (loading, compatibility, memory)
- VAE: 5 patterns (encoding/decoding, precision, tiling)
- AnimateDiff: 4 patterns (model, frames, context, memory)
- IPAdapter: 4 patterns (model, encoding, compatibility)
- FaceRestore: 3 patterns (model, detection, memory)
- Miscellaneous: 5 patterns (checkpoint, image format, sampler, scheduler, CLIP)
Testing:
- ✅ All 9 PatternLoader unit tests pass
- ✅ 57 patterns load successfully
- ✅ Pattern matching works correctly
- ✅ Translations verified for en/zh_TW/zh_CN
|
2026-01-03 04:56:10 +08:00 |
|
rookiestar28
|
096692eb23
|
feat: add missing_input error pattern and fix ERROR_KEYS mapping
Changes:
1. Added new pattern for "Required input is missing" error
- Pattern ID: missing_input
- Regex: "Required input is missing: (.+)"
- Priority: 80 (workflow-level)
- Captures input name dynamically
2. Updated i18n.py for all 9 languages
- Added ERROR_KEYS["MISSING_INPUT"]
- Added translations: en, zh_TW, zh_CN, ja, de, fr, it, es, ko
- Format: "輸入源資訊遺失:{0}。請檢查上游節點輸出是否正常連接。"
3. Fixed analyzer.py ERROR_KEYS mapping bug (CRITICAL)
- PatternLoader returns uppercase keys (e.g., "MISSING_INPUT")
- get_suggestion() expects lowercase keys (e.g., "missing_input")
- Added mapping: suggestion_key = ERROR_KEYS.get(error_key, error_key)
- This fix applies to ALL patterns, not just missing_input
Testing:
- PatternLoader tests: ✅ All 9 tests pass (22 patterns total)
- Manual test: ✅ Pattern matches "text_int_float" correctly
- Analyzer test: ✅ Returns correct suggestion with captured group
|
2026-01-03 04:55:37 +08:00 |
|
rookiestar28
|
12d3b8e285
|
feat(patterns): implement PatternLoader with JSON-based pattern management (STAGE 2)
Integrate PatternLoader into analyzer.py to enable JSON-based error pattern
management with hot-reload capability, while preserving fallback to hardcoded
patterns for reliability.
Features:
- JSON-based pattern definitions with schema validation
- Hot-reload capability without restart
- Priority-based pattern matching (higher priority checked first)
- Multi-directory support (builtin, community, custom)
- Backward compatible with fallback to hardcoded PATTERNS
Implementation:
- pattern_loader.py: Core PatternLoader class (309 lines)
- load(): Load patterns from JSON files with schema validation
- match(): Match error against patterns (priority-sorted)
- reload_if_changed(): Hot-reload on file modification
- get_stats(): Pattern statistics and categorization
- patterns/schema.json: JSON schema definition
- Required fields: id, regex, error_key, priority, category
- Optional fields: has_groups, tags, notes
- Validation: unique IDs, valid priority range (0-100), valid categories
- patterns/builtin/core.json: Migrated 21 existing patterns
- Priority distribution: 9 high (80-100), 12 medium (50-79)
- Category distribution: 7 data_type, 3 memory, 3 workflow, 2 model_loading, etc.
- tests/test_pattern_loader.py: Comprehensive test suite (9 tests)
- All tests passed ✅
Integration with analyzer.py:
- Updated ErrorAnalyzer.analyze():
- Try PatternLoader first (JSON patterns)
- Fallback to hardcoded PATTERNS on any error
- Ensures error analysis always works
- Added ErrorAnalyzer.reload_patterns():
- Public API for hot-reload
- Returns True if patterns reloaded
Test Results:
✅ All 9 unit tests passed
✅ Manual integration test passed
✅ 21 patterns loaded from core.json
✅ Error detection working correctly (CUDA OOM, validation errors)
✅ Hot-reload functionality verified
✅ Zero performance regression (<1ms pattern matching)
Architecture:
- Preserves fallback mechanism (learned from STAGE 1)
- Priority-based sorting prevents false positives
- Schema validation catches errors early
- Graceful error handling (never crashes)
Next Steps:
- STAGE 3: F12 Pattern Expansion (35+ community patterns)
- After STAGE 1+2 stable for 3+ days
References:
- Planning: .planning/STAGE2_F2_INTEGRATION_PLAN.md
- Implementation Record: .planning/STAGE2_IMPLEMENTATION_RECORD.md
- Original F2 Design: .planning/FAILURE-F12_F2_T8_IMPLEMENTATION_PLAN.md
|
2026-01-03 04:55:18 +08:00 |
|