Repository navigation
cmux-tui: runtime-download npm launcher and cmux update, immune to the npx ENOTEMPTY bug
#10891
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
b786d57
cmux-tui: document the npx ENOTEMPTY cache failure and hint the fix i…
lawrencecchen 0477df2
cmux-tui: runtime-download npm launcher and cmux update, immune to th…
lawrencecchen 2a4a9d9
fix(tui): harden runtime npm launcher errors and version inputs
lawrencecchen 4736ddd
docs(tui): clarify npm launcher update and cache recovery
lawrencecchen e08716d
fix(tui): make npm cache updates bounded and version safe
lawrencecchen 5cebd61
fix(tui): bound package extraction and cache eviction
lawrencecchen dfae7e7
fix(tui): track active launcher cache leases
lawrencecchen c51645b
fix(tui): isolate npm cache by platform and preserve auth
lawrencecchen 1adf617
fix(tui): recover cache locks and scope npm auth
lawrencecchen f58ba87
fix(tui): keep cached binaries leased during updates
lawrencecchen 57eee36
test(tui): verify npm launcher in CI
lawrencecchen 5e493d5
fix(tui): preserve launcher overrides and clean stale staging
lawrencecchen b0dac56
fix(tui): hide override paths and stabilize launcher tests
lawrencecchen b93448c
fix(tui): preserve npm registry credentials safely
lawrencecchen 124dcf2
fix(tui): bound cache growth after launcher downloads
lawrencecchen 322d331
fix(tui): reject malformed npm tar entry sizes
lawrencecchen 1a4a6a0
fix(tui): verify launcher cache and scope registry auth
lawrencecchen f505be7
test(tui): cover launcher runtime and cache lock races
lawrencecchen 8fce94d
fix(tui): guard launcher runtime and cache leases
lawrencecchen 20949ce
fix(tui): make cache lock cleanup atomic
lawrencecchen 12dcf52
test(tui): fix concurrent launcher process setup
lawrencecchen 2bba772
fix(tui): recover interrupted cache lock acquisition
lawrencecchen 1987b8b
fix(tui): publish cache leases atomically
lawrencecchen 0af1bec
docs(tui): narrow npx cache recovery
lawrencecchen 0d42daa
fix(tui): release cache leases on launch errors
lawrencecchen bb40a12
fix(tui): lease installed and updating cache binaries
lawrencecchen 208d821
fix(tui): preserve runtime capability errors
lawrencecchen 59dc564
fix(tui): bound cache to current and previous versions
lawrencecchen ef32e41
test(tui): cover concurrent npm updates
lawrencecchen 133a1a7
fix(tui): serialize npm updates and guard npx recovery
lawrencecchen c1110ee
test(tui): cover cache lock and entry safety
lawrencecchen f9ee458
fix(tui): harden cache lock and entry validation
lawrencecchen e129a03
test(tui): cover executable mode repair
lawrencecchen 627c5fa
fix(tui): repair trusted cache executable mode
lawrencecchen c23df13
test(tui): keep launch failure coverage executable
lawrencecchen f731b90
test(tui): wait on launcher exit signal
lawrencecchen bbfe256
test(tui): cover stable and nightly launcher state
lawrencecchen 2977105
fix(tui): keep launcher update state channel-aware
lawrencecchen 2df9d81
test(tui): verify channel-specific update state
lawrencecchen b339840
fix(tui): update within launcher release channel
lawrencecchen 7ee68a0
docs(tui): recheck npx cache activity before quarantine
lawrencecchen 6e31cef
test(tui): cover read-only launcher cache
lawrencecchen 4c765df
fix(tui): launch verified binaries from read-only cache
lawrencecchen 5f98522
fix(tui): require fully read-only cache for unleased launch
lawrencecchen 0fa91ef
fix(tui): use read-only cache predicate
lawrencecchen 19cd6be
test(tui): cover channel state and npm network config
lawrencecchen 34e9de9
fix(tui): honor npm network config and isolate launcher state
lawrencecchen 7fb5b7b
test(tui): allow channel fixture rewrites
lawrencecchen bf90a7a
test(tui): cover npmrc registry and channel prune retention
lawrencecchen 9a2c2f4
fix(tui): honor npmrc registry and retain channel states
lawrencecchen 9880bdc
fix(tui): honor npm config precedence and auth
lawrencecchen db4f803
test(tui): cover reused cache lock PIDs
lawrencecchen f327b17
fix(tui): identify cache lock owner processes
lawrencecchen 938ef1c
test(tui): cover reused cache lease PIDs
lawrencecchen 61b5d5d
fix(tui): identify cache lease owner processes
lawrencecchen c19b4ff
fix(tui): snapshot cached binaries on Windows
lawrencecchen 12fc618
test(tui): reject tampered cache manifest and binary
lawrencecchen e5d58bf
fix(tui): bind writable cache hits to registry integrity
lawrencecchen b5632c7
test(tui): authenticate cache fixtures and document offline use
lawrencecchen c8dbdf4
test(tui): serve every cached fixture version
lawrencecchen e2b2c60
test(tui): support prefixed registry paths
lawrencecchen 1eb60dd
test(tui): cover Windows launcher cache path
lawrencecchen 49e8181
test(tui): keep Windows fixture registry alive
lawrencecchen 259944e
test(tui): isolate Windows fixture transport
lawrencecchen b6bf781
test(tui): serve npm packument fixtures
lawrencecchen 2fcc181
test(tui): expose Windows fixture request paths
lawrencecchen 59452c7
test(tui): use deterministic npm transport for Windows coverage
lawrencecchen 5cda05a
fix(tui): use authenticated metadata for cache hits
lawrencecchen ed15578
test(tui): cover read-only root and duplicate binaries
lawrencecchen 8a6150b
fix(tui): reject duplicate binaries and detect root read-only cache
lawrencecchen 382f98f
test(tui): reject symlinked cache paths
lawrencecchen deeafe3
fix(tui): reject symlinked cache write paths
lawrencecchen c03d307
ci: keep TUI launcher coverage in SDK workflow
lawrencecchen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # cmux-tui | ||
|
|
||
| tmux 風のターミナル TUI です。詳細な英語ドキュメントは | ||
| [README.md](README.md) を参照してください。 | ||
|
|
||
| ## npm パッケージのインストールと更新 | ||
|
|
||
| `cmux` npm パッケージは依存関係を持たない小さなランチャーです。初回起動時に | ||
| 現在のプラットフォーム用の `cmux-tui-<platform>` パッケージを npm レジストリから | ||
| ダウンロードし、sha512 整合性を確認してランチャー専用キャッシュに保存します。 | ||
|
|
||
| 書き込み可能なランチャーキャッシュは起動前に認証済みパッケージメタデータを取得し、 | ||
| 公開元のバイナリダイジェストと照合します。レジストリがダイジェストを提供しない場合は、 | ||
| 書き込み可能なキャッシュヒットごとに tarball 全体を検証します。管理者が用意した完全な読み取り専用 | ||
| キャッシュは、バイナリとマニフェストを検証済みならオフラインで起動できます。 | ||
|
|
||
| ```bash | ||
| npx cmux update | ||
| npx cmux update --check | ||
| ``` | ||
|
|
||
| `cmux update` はプラットフォーム用バイナリの通常更新に使います。npm ランチャー自体を | ||
| 更新する場合は `npx cmux@latest` を使います。`npx` は cmux の起動前に npm の `_npx` | ||
| キャッシュへアクセスすることがあり、古いキャッシュでは `ENOTEMPTY` が発生する場合が | ||
| あります。詳しい復旧手順は | ||
| [パッケージのインストールと更新](docs/getting-started.ja.md) を参照してください。 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Qualify the first-run download statement.
The launcher checks
CMUX_TUI_BIN, a matching installed platform package, and the launcher cache before downloading. This paragraph says that the first run always downloads from npm. State that the download occurs only when no matching installed package or cached binary is available.Proposed wording
📝 Committable suggestion
🤖 Prompt for AI Agents