Analyzer安定化完了: NYASH_DISABLE_PLUGINS=1復元 + plugin無効化根治

## 修正内容
1. **hako_check.sh/run_tests.sh**: NYASH_DISABLE_PLUGINS=1 + NYASH_BOX_FACTORY_POLICY=builtin_first追加
2. **src/box_factory/plugin.rs**: NYASH_DISABLE_PLUGINS=1チェック追加
3. **src/box_factory/mod.rs**: plugin shortcut pathでNYASH_DISABLE_PLUGINS尊重
4. **tools/hako_check/render/graphviz.hako**: smart quotes修正(parse error解消)

## 根本原因
- NYASH_USE_PLUGIN_BUILTINS=1が自動設定され、ArrayBox/MapBoxがplugin経由で生成を試行
- bid/registry.rsで"Plugin loading temporarily disabled"の状態でも試行されエラー
- mod.rs:272のshortcut pathがNYASH_DISABLE_PLUGINSを無視していた

## テスト結果
- 10/11 PASS(HC011,13-18,21-22,31)
- HC012: 既存issue(JSON安定化未完)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-11-08 15:49:25 +09:00
parent cef820596f
commit 772149c86d
26 changed files with 508 additions and 62 deletions

View File

@ -581,32 +581,61 @@ get = { method_id = 1 }
set = { method_id = 2 }
fini = { method_id = 4294967295 }
# ------------------------------------------------------------
# Builtin/Core Boxes (slot config via central tables)
# These entries allow method_id resolution for core boxes
# without requiring a dynamic library. Execution remains
# handled by built-in handlers; this mapping is for MIR slot
# injection and consistency only.
# ArrayBox Plugin (Core Box)
[libraries."libnyash_array_plugin.so"]
boxes = ["ArrayBox"]
path = "target/release/libnyash_array_plugin.so"
[box_types]
# Assign type IDs for core boxes (reserved range)
ArrayBox = 5
MapBox = 6
[libraries."libnyash_array_plugin.so".ArrayBox]
type_id = 5
abi_version = 1
singleton = false
[box_methods.ArrayBox.methods]
[libraries."libnyash_array_plugin.so".ArrayBox.methods]
birth = { method_id = 0 }
push = { method_id = 4 }
get = { method_id = 5 }
set = { method_id = 6 }
size = { method_id = 7 }
length = { method_id = 7 }
len = { method_id = 7 }
fini = { method_id = 4294967295 }
[box_methods.MapBox.methods]
# MapBox Plugin (Core Box)
[libraries."libnyash_map_plugin.so"]
boxes = ["MapBox"]
path = "target/release/libnyash_map_plugin.so"
[libraries."libnyash_map_plugin.so".MapBox]
type_id = 6
abi_version = 1
singleton = false
[libraries."libnyash_map_plugin.so".MapBox.methods]
birth = { method_id = 0 }
set = { method_id = 4 }
get = { method_id = 5 }
size = { method_id = 6 }
length = { method_id = 6 }
len = { method_id = 6 }
has = { method_id = 6 }
size = { method_id = 7 }
length = { method_id = 7 }
len = { method_id = 7 }
fini = { method_id = 4294967295 }
# ConsoleBox Plugin (Core Box)
[libraries."libnyash_console_plugin.so"]
boxes = ["ConsoleBox"]
path = "target/release/libnyash_console_plugin.so"
[libraries."libnyash_console_plugin.so".ConsoleBox]
type_id = 7
abi_version = 1
singleton = false
[libraries."libnyash_console_plugin.so".ConsoleBox.methods]
birth = { method_id = 0 }
log = { method_id = 4 }
print = { method_id = 4 }
fini = { method_id = 4294967295 }
"tools.hako_check.analysis_consumer" = "tools/hako_check/analysis_consumer.hako"
"tools.hako_check.rules.rule_include_forbidden" = "tools/hako_check/rules/rule_include_forbidden.hako"
"tools.hako_check.rules.rule_using_quoted" = "tools/hako_check/rules/rule_using_quoted.hako"