✓ FIX LANDED · v0.2.1
復号の O(n²) を BFS で線形に
n=32,000 で 296 ms → 2.4 ms(124×)。アンカーから BFS で 1 パス解決する実装に置き換え、暗号文フォーマットは変更なし。
REPORT
報告内容
### 何が起きましたか? / What happened?
expected: 暗号化と同じようにO(N)で複合できる
actual: n=5,000 で 26ms の復号時間,入力2倍で復号時間4倍増
### 再現手順 / Steps to reproduce
releaseビルドで鍵生成して,その鍵で適当に5000文字入れて暗号化,復号化
### バージョン / Version
git 560d375
### 影響箇所 / Component
musubi-core
### 環境 / Environment
rustc 1.92 / macOS 14.6(ARM64)
### 補足 / Additional context
```rust
while remaining > 0 {
let mut progress = false;
for i in 0..n {
if chars[i].is_some() {
continue;
}
let rel =
cipher.relations[i]
...
```
多分ここで,remainingでN回,その中のforでN回回すからn^2になってる
直し方は知らんこのバグには 4 件のコメントが付いています。GitHub で続きを確認してください。
PROGRESS · 進行状況
- ✓報告された(2026/4/27)
- ✓開発者が確認・対応開始
- ✓修正がマージされた