Run the state-space exploration on pack import in a Web Worker
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript, web-dev
調査の方向性
Start with apps/web/src/screens/create.ts and packages/engine/src/explore.ts, then read packages/cli/src/exploration.ts to understand the existing check passes. Run the dead-end fixture at packages/engine/test/fixtures/runtime/dead-end.yaml and inspect the verification table in docs/architecture.md section 6. Done means imports are verified in both the PWA and offline page, failures block adding the pack, cancellation keeps the screen responsive, and the main chunk does not grow.
索引モデルが issue の本文から書いたものです。
説明
Context
The import screen compiles a pack, replays its walkthrough and estimates its play time, all on the main thread (SECURITY.md, Known limitations), but does not explore the state space. A pack whose walkthrough fails is still stored, with a warning. An imported pack can therefore contain dead ends or losing endings that lexvm check would reject, which breaks the forgiving promise for packs created with the in-app flow. The engine has no DOM or Node dependencies, so explore can run unchanged in a worker. Memory is the constraint: about 1.8 KB per state, so the CLI default of 200,000 states (about 400 MB) is too much for a phone.
Scope
- A module worker that compiles the pack and runs the walkthrough,
exploreandestimatePlaytime, reports progress (states explored) and can be cancelled. - The same two passes as
lexvm check(main exploration, then the drop pass); move packages/cli/src/exploration.ts into the engine so CLI, generator and player share it. - A phone-safe state limit for the player, defined in one place. The CLI treats
explore.incompleteas an error; the player reports it as a warning that says the pack was not fully verified. - Create screen: exploration results next to the other diagnostics (dead ends with their command path, losing endings, not winnable, incomplete), included in "Copy messages".
- Walkthrough and exploration errors block the import like compile errors; an incomplete exploration is a warning.
- Works in the PWA and in lexvm-offline.html (inline worker, or a main-thread fallback that yields between batches).
- The worker and the exploration code stay out of the main chunk.
- Update the verification table in docs/architecture.md section 6 and remove the main-thread limitation from SECURITY.md.
Acceptance criteria
- Importing packages/engine/test/fixtures/runtime/dead-end.yaml shows
explore.dead-endwith its command path and does not add the pack to the library. - A pack whose walkthrough fails is not added to the library.
- The Cancel button stops a running exploration within one second, and the screen stays responsive while it runs.
- Import with exploration works in the PWA and in lexvm-offline.html (end-to-end tests for both).
- The main chunk does not grow.
References
- apps/web/src/screens/create.ts
- packages/engine/src/explore.ts
- packages/cli/src/exploration.ts
- packages/engine/test/fixtures/runtime/dead-end.yaml
- docs/architecture.md (sections 6 and 8)
- docs/adr/0005-forgiving-policy-verified-by-exploration.md
- 主要言語
- TypeScript
- スター
- 0
- フォーク
- 0
- 平均マージ
- 28分
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nullthrone/lexvm のほかの issue
-
area: web good first issue priority: low type: bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
nullthrone/lexvm#49 ·
-
area: infra good first issue priority: low type: chore
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
nullthrone/lexvm#41 ·
-
area: engine good first issue priority: low type: feature
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
nullthrone/lexvm#27 ·
-
area: web priority: low type: research
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
nullthrone/lexvm#63 ·
-
area: infra area: web priority: medium type: chore
難易度 5/5 1週間以上 初心者へのやさしさ 38/100
nullthrone/lexvm#62 ·
nullthrone/lexvm の issue をすべて見る
似ている issue
-
area: server priority: P3 type: bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
appandflow/stim#4538 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] Published Docker images lack the redis extra: HEADROOM_COMPRESS_SESSION_STORE stops startup対応中かも @AlessandroSpallina が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
headroomlabs-ai/headroom#4513 ·
メンテナーはふだん 1 日以内に返信
-
bug extension extension: obsidian platform: Windows
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
raycast/extensions#32838 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
copy design-review mac P3
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
tosunlab/hisarapp-core#510 ·
-
bug priority-medium to-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信