fix: 装备属性面板避让逻辑 + 多项功能更新
- item_tooltip_view.gd: 新增 avoid_rect 属性,tooltip 与装备窗口重叠时自动推到左侧 - inventory_ui.gd: 悬停装备时传入窗口矩形作为避让区域 - 包含其他累积的功能开发和测试文件
This commit is contained in:
@@ -15,6 +15,7 @@ The audit ledger is the source of truth:
|
||||
- `audit/history.jsonl`: append-only state-change history.
|
||||
- `audit/contracts/`: detailed evidence for individual contracts.
|
||||
- `audit/reports/`: generated summaries; never treat these as the source of truth.
|
||||
- `audit/remediation-roadmap.md`: current repair order, anti-repeat rules, and the next primary contract.
|
||||
|
||||
Before auditing, fixing, or claiming parity:
|
||||
|
||||
@@ -23,8 +24,32 @@ Before auditing, fixing, or claiming parity:
|
||||
3. Read the relevant existing contract and tests. Do not repeat a still-valid `TEST_VERIFIED` audit unless the user explicitly requests revalidation.
|
||||
4. If no contract exists, add one with a stable behavior ID before marking work complete.
|
||||
|
||||
Before selecting the next repair target, read `audit/remediation-roadmap.md` and the
|
||||
latest relevant history entries. Select by the documented priority and end-to-end
|
||||
user flow, not by whichever local difference is easiest to patch. A contract may not
|
||||
be used to repeat an already completed issue or branch. Every round must select an
|
||||
explicit issue/branch ID using the roadmap's stable format and compare it with
|
||||
`audit/history.jsonl` before editing. Older contract-level history entries do not
|
||||
prove that every branch in that contract is complete; create the branch-level ID
|
||||
when first selecting it.
|
||||
The same issue/branch ID may be revisited only for a new regression, a substantive
|
||||
implementation change, or new evidence that invalidates the earlier conclusion.
|
||||
The same contract may be selected in a later round when a different `remaining`
|
||||
branch is selected; contract IDs group behavior and are not deduplication keys. A
|
||||
`PARTIAL` contract is not permission to repeat already verified work.
|
||||
|
||||
Read [references/audit-schema.md](references/audit-schema.md) whenever creating or changing ledger entries. Read [references/project-map.md](references/project-map.md) when locating reference code, current implementation, existing gap documents, or test runners.
|
||||
|
||||
## Full-client inventory gate
|
||||
|
||||
This skill covers the complete reachable 40250 client behavior surface, not only the first few reported bugs. Before claiming the audit is broadly complete:
|
||||
|
||||
1. Inventory active 40250 runtime areas across `UserInterface`, `GameLib`, `EffectLib`, `EterLib`, `EterGrnLib`, `PRTerrainLib`, `MilesLib`, `EterPack`, and `EterLocale`, then map each externally meaningful behavior to `project/`, `extension/`, `formats/`, resources, and tests.
|
||||
2. Keep one stable contract ID per externally meaningful behavior, not one per source file. Group helper files under the behavior they implement, but do not omit a reachable behavior because its implementation is spread across several libraries.
|
||||
3. Put every mapped behavior in `audit/manifest.json`, including behaviors not yet checked. Use `UNMAPPED` when no current implementation or reference mapping is established, `MAPPED` when both entry points are located, and `PARTIAL` when a material gap is known.
|
||||
4. Record current-client-only features as `EXCLUDED` only with an explicit reason that they have no 40250 counterpart and are outside the parity target. Never silently omit them from the inventory.
|
||||
5. The inventory is incomplete while any active runtime area has no contract entry. A clean test suite or a high percentage of mapped files does not waive this gate.
|
||||
|
||||
## Audit method
|
||||
|
||||
For each behavior:
|
||||
@@ -39,6 +64,13 @@ For each behavior:
|
||||
8. Run the narrow test first, then related subsystem tests, then `git diff --check`.
|
||||
9. Update the contract's implementation-equivalence matrix, manifest, fingerprints, and history in the same change. Never mark `STATIC_VERIFIED` or `TEST_VERIFIED` without complete equivalence evidence.
|
||||
|
||||
For classic network phase audits, run `scripts/audit_packet_registry.py` together
|
||||
with `scripts/audit_phase_dispatch.py`. The former compares registered wire
|
||||
header values and static/dynamic kinds; the latter compares Login/Select/Loading/
|
||||
Game phase branches by numeric value while explicitly reporting transport-control
|
||||
and observer-stream exclusions. A PASS from either script is structural evidence,
|
||||
not proof that handler side effects are equivalent.
|
||||
|
||||
## Implementation-equivalence gate
|
||||
|
||||
Source text and engine-facing APIs do not need to be identical, but the implementation must be semantically unified with 40250. Before verification, prove all of these independently:
|
||||
@@ -75,3 +107,9 @@ Permitted differences are limited to documented platform adapters such as C++ co
|
||||
## Completion report
|
||||
|
||||
Report the contract IDs changed, reference and implementation call chains, discrepancies fixed, tests run, remaining unverified branches, and resulting ledger status. A subsystem is complete only when its in-scope contracts have no unexplained `UNMAPPED`, `PARTIAL`, `STALE`, or `REGRESSION` entries.
|
||||
|
||||
Also report whether the round followed `audit/remediation-roadmap.md`, the selected
|
||||
issue/branch ID, why it was not already completed in `audit/history.jsonl`, and the
|
||||
next priority candidate. Do not claim that a single subsystem is complete merely
|
||||
because its focused tests pass while its ledger contract still has material
|
||||
`remaining` branches.
|
||||
|
||||
Reference in New Issue
Block a user