@bash0816/copilot-termux 1.0.73 → 1.0.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "manifest_version": 1,
3
3
  "package_name": "@bash0816/copilot-termux",
4
- "copilot_version": "1.0.73",
5
- "latest_audited_version": "1.0.72",
4
+ "copilot_version": "1.0.75",
5
+ "latest_audited_version": "1.0.73",
6
6
  "latest_candidate_version": null,
7
- "previous_stable_version": "1.0.71",
7
+ "previous_stable_version": "1.0.72",
8
8
  "candidate_state": "none",
9
9
  "canonical_package_status": "not_published",
10
10
  "public_distribution_status": "staged",
11
11
  "nodejs_glibc_version": "node-glibc-v24.15.0",
12
12
  "build_run_id": null,
13
- "last_updated": "2026-07-21",
13
+ "last_updated": "2026-07-26",
14
14
  "manifest_url": "https://raw.githubusercontent.com/bash0816/Github-Copilot-Termux/main/packages/copilot-termux/config/copilot-termux-release-manifest.json"
15
15
  }
@@ -2,8 +2,8 @@
2
2
  "wrapperVersion": "2.0.0",
3
3
  "copilot": {
4
4
  "package": "@github/copilot-linuxmusl-arm64",
5
- "version": "1.0.73",
6
- "integrity": "sha512-HJWzhfD3oaiIgfRAHkNWzp17fELtshqM9HVN5n+lFEmSO2EETCEh0P1lhJc4m+FYfXSJnL0raAqVuyaNMuPoPw=="
5
+ "version": "1.0.75",
6
+ "integrity": "sha512-4cbjjR/laL+4a0VjMkzjIsprRUxiAHAefWVTppFitKiqNxfgyRuOhfSUPUA5TVxPwfyYXknsxeYSNRL8zu9YDA=="
7
7
  },
8
8
  "glibcNode": {
9
9
  "version": "26.2.0",
@@ -189,7 +189,7 @@ Module._load = function (request, parent, isMain) {
189
189
  // jsonrpcServer* は拡張 JSON-RPC サーバー (ThreadsafeFunction)、
190
190
  // lspClient* は LSP クライアント (ThreadsafeFunction)。
191
191
  // featureFlagService* は同期 Rust のため除外(no-op にすると .handle クラッシュ)。
192
- const TOKIO_PATTERN = /^(ahpRelay|ahpRelayAuthenticate|ahpRelayCancelTurn|ahpRelayCompleteInput|ahpRelayCompletions|ahpRelayConfirmToolCall|ahpRelayConnect|ahpRelayCreate|ahpRelayCreateSession|ahpRelayDispose|ahpRelayGetPlan|ahpRelayListCheckpoints|ahpRelayListWorkspaceFiles|ahpRelayPendingRequiredResourcesJson|ahpRelayReadCheckpoint|ahpRelayRefreshSessions|ahpRelayReleaseSession|ahpRelayRemovePendingMessage|ahpRelaySelectAgent|ahpRelaySessionDiff|ahpRelaySetMode|ahpRelaySetModel|ahpRelaySetPendingMessage|ahpRelaySetSessionApproveAll|ahpRelaySetTitle|ahpRelayStartTurn|ahpRelayStateJson|ahpRelaySubscribeSession|ahpRelayTerminalDispose|ahpRelayTerminalEnsure|ahpRelayTerminalWrite|jsonrpcServer|jsonrpcServerAddConnection|jsonrpcServerBeginShutdown|jsonrpcServerConnectionClose|jsonrpcServerConnectionNotify|jsonrpcServerConnectionNotifyAfterResponse|jsonrpcServerConnectionRequest|jsonrpcServerConnectionWrite|jsonrpcServerCreate|jsonrpcServerDispatchComplete|jsonrpcServerRegisterHookCallback|jsonrpcServerRegisterSession|jsonrpcServerRemove|jsonrpcServerRemoveSession|jsonrpcServerStartTcpListener|jsonrpcServerStopTcpListener|jsonrpcServerUnregisterHookCallback|jsonrpcServerUnregisterSessionHookCallback|lspClient|lspClientCloseDocument|lspClientCreateOwned|lspClientCreateOwnedSandboxed|lspClientDispose|lspClientEnhanceStartupErrorMessage|lspClientFindSourceFile|lspClientInitialize|lspClientInitialized|lspClientOpenDocument|lspClientOwnedShutdown|lspClientRequest|lspClientTakeExitInfo|lspClientWaitForDiagnostics|lspClientWaitForProjectLoad|modelHttp|modelHttpCancelRequest|modelHttpRegisterCancellation|modelHttpResetNetworking|networkFetch|networkFetchGetExtraCaPems|networkFetchNextRequestId|networkFetchRequestCancel|networkFetchResetClients|sessionSqlite|sessionSqliteClose|sessionSqliteExec|sessionSqliteFileExists|sessionSqliteOpen|sessionSqliteQuery|sessionSqliteRun|sessionStore|sessionStoreBeginForgeSkillProposalGeneration|sessionStoreClose|sessionStoreCompleteForgeSkillProposalGeneration|sessionStoreDefaultPath|sessionStoreDeleteDynamicContextItem|sessionStoreEnsureSession|sessionStoreExec|sessionStoreExecuteReadOnly|sessionStoreExecuteReadOnlyAsync|sessionStoreExecuteReadOnlyWithCap|sessionStoreFailStaleGeneratingForgeSkillProposals|sessionStoreGetCheckpoints|sessionStoreGetDynamicContextBoard|sessionStoreGetDynamicContextItem|sessionStoreGetFiles|sessionStoreGetForgeSkillProposalByFingerprint|sessionStoreGetForgeSkillProposalById|sessionStoreGetForgeSkillProposalWorkspaceBefore|sessionStoreGetForgeTrajectoryEvents|sessionStoreGetForgeTrajectoryEventsForScope|sessionStoreGetMaxTurnIndex|sessionStoreGetRefs|sessionStoreGetSession|sessionStoreGetStats|sessionStoreGetTurns|sessionStoreIncrementDynamicContextCount|sessionStoreIncrementDynamicContextReadCount|sessionStoreIndexWorkspaceArtifact|sessionStoreInsertAssistantUsageEventWithRuntimeDefaults|sessionStoreInsertCheckpointWithRuntimeDefaults|sessionStoreInsertDynamicContextItem|sessionStoreInsertFileWithRuntimeDefaults|sessionStoreInsertForgeTrajectoryEventWithRuntimeDefaults|sessionStoreInsertRefWithRuntimeDefaults|sessionStoreInsertTurnWithRuntimeDefaults|sessionStoreListForgeSkillProposals|sessionStoreOpen|sessionStoreSearch|sessionStoreTrackingEventOperations|sessionStoreTrackingExtractFilePath|sessionStoreTrackingExtractForgeTrajectoryEvents|sessionStoreTrackingExtractRefsFromBash|sessionStoreTrackingExtractRefsFromMcpTool|sessionStoreTrackingExtractRepoFromMcpTool|sessionStoreTrackingFlushOperations|sessionStoreTrackingInitialState|sessionStoreTransitionForgeSkillProposalStatus|sessionStoreUpsertDynamicContextItem|sessionStoreUpsertSessionWithRuntimeDefaults|websocketResponses|websocketResponsesPersistent)/;
192
+ const TOKIO_PATTERN = /^(ahpRelay|ahpRelayAuthenticate|ahpRelayCancelTurn|ahpRelayCoerceCopilotUsage|ahpRelayCompleteInput|ahpRelayCompletions|ahpRelayConfirmToolCall|ahpRelayConnect|ahpRelayCreate|ahpRelayCreateSession|ahpRelayDispose|ahpRelayGetPlan|ahpRelayIsTurnAlreadyActiveRejection|ahpRelayListCheckpoints|ahpRelayListWorkspaceFiles|ahpRelayPendingRequiredResourcesJson|ahpRelayProjectHostSummary|ahpRelayReadCheckpoint|ahpRelayRefreshSessions|ahpRelayReleaseSession|ahpRelayRemovePendingMessage|ahpRelaySelectAgent|ahpRelaySessionDiff|ahpRelaySetMode|ahpRelaySetModel|ahpRelaySetPendingMessage|ahpRelaySetSessionApproveAll|ahpRelaySetTitle|ahpRelayStartTurn|ahpRelayStateJson|ahpRelaySubscribeSession|ahpRelayTerminalDispose|ahpRelayTerminalEnsure|ahpRelayTerminalWrite|jsonrpcServer|jsonrpcServerAddConnection|jsonrpcServerBeginShutdown|jsonrpcServerConnectionClose|jsonrpcServerConnectionNotify|jsonrpcServerConnectionNotifyAfterResponse|jsonrpcServerConnectionRequest|jsonrpcServerConnectionWrite|jsonrpcServerCreate|jsonrpcServerDispatchComplete|jsonrpcServerRegisterHookCallback|jsonrpcServerRegisterSession|jsonrpcServerRemove|jsonrpcServerRemoveSession|jsonrpcServerStartTcpListener|jsonrpcServerStopTcpListener|jsonrpcServerUnregisterHookCallback|jsonrpcServerUnregisterSessionHookCallback|lspClient|lspClientCloseDocument|lspClientCreateOwned|lspClientCreateOwnedSandboxed|lspClientDispose|lspClientEnhanceStartupErrorMessage|lspClientFindSourceFile|lspClientInitialize|lspClientInitialized|lspClientOpenDocument|lspClientOwnedShutdown|lspClientRequest|lspClientTakeExitInfo|lspClientWaitForDiagnostics|lspClientWaitForProjectLoad|modelHttp|modelHttpCancelRequest|modelHttpRegisterCancellation|modelHttpResetNetworking|networkFetch|networkFetchGetExtraCaPems|networkFetchNextRequestId|networkFetchRequestCancel|networkFetchResetClients|sessionSqlite|sessionSqliteClose|sessionSqliteExec|sessionSqliteFileExists|sessionSqliteOpen|sessionSqliteQuery|sessionSqliteRun|sessionStore|sessionStoreBeginForgeSkillProposalGeneration|sessionStoreClose|sessionStoreCompleteForgeSkillProposalGeneration|sessionStoreDefaultPath|sessionStoreDeleteDynamicContextItem|sessionStoreEnsureSession|sessionStoreExec|sessionStoreExecuteReadOnly|sessionStoreExecuteReadOnlyAsync|sessionStoreExecuteReadOnlyWithCap|sessionStoreFailStaleGeneratingForgeSkillProposals|sessionStoreGetCheckpoints|sessionStoreGetDynamicContextBoard|sessionStoreGetDynamicContextItem|sessionStoreGetFiles|sessionStoreGetForgeSkillProposalByFingerprint|sessionStoreGetForgeSkillProposalById|sessionStoreGetForgeSkillProposalWorkspaceBefore|sessionStoreGetForgeTrajectoryEvents|sessionStoreGetForgeTrajectoryEventsForScope|sessionStoreGetMaxTurnIndex|sessionStoreGetRefs|sessionStoreGetSession|sessionStoreGetStats|sessionStoreGetTurns|sessionStoreIncrementDynamicContextCount|sessionStoreIncrementDynamicContextReadCount|sessionStoreIndexWorkspaceArtifact|sessionStoreInsertAssistantUsageEventWithRuntimeDefaults|sessionStoreInsertCheckpointWithRuntimeDefaults|sessionStoreInsertDynamicContextItem|sessionStoreInsertFileWithRuntimeDefaults|sessionStoreInsertForgeTrajectoryEventWithRuntimeDefaults|sessionStoreInsertRefWithRuntimeDefaults|sessionStoreInsertTurnWithRuntimeDefaults|sessionStoreListForgeSkillProposals|sessionStoreOpen|sessionStoreSearch|sessionStoreTrackingEventOperations|sessionStoreTrackingExtractFilePath|sessionStoreTrackingExtractForgeTrajectoryEvents|sessionStoreTrackingExtractRefsFromBash|sessionStoreTrackingExtractRefsFromMcpTool|sessionStoreTrackingExtractRepoFromMcpTool|sessionStoreTrackingFinalizePostToolUseInput|sessionStoreTrackingFlushOperations|sessionStoreTrackingForgeAgentFeatureFlagName|sessionStoreTrackingInitSessionState|sessionStoreTrackingInitialState|sessionStoreTrackingIsForgeEnabledInEnvironment|sessionStoreTrackingIsForgeTrackingEnabled|sessionStoreTrackingPostToolUsePlan|sessionStoreTransitionForgeSkillProposalStatus|sessionStoreUpsertDynamicContextItem|sessionStoreUpsertSessionWithRuntimeDefaults|websocketResponses|websocketResponsesPersistent)/;
193
193
  for (const key of Object.keys(result)) {
194
194
  if (TOKIO_PATTERN.test(key) && typeof result[key] === 'function') {
195
195
  result[key] = () => undefined;
@@ -1257,38 +1257,20 @@ Module._load = function (request, parent, isMain) {
1257
1257
  }
1258
1258
  // glibc mode では native authResolveAuthInfoFromToken を使う(SSL_CERT_FILE で TLS 修正済み)
1259
1259
  // === end authManager* stubs ===
1260
- // === tokenStore* JS stubs (bionic: tokio ThreadsafeFunction crash) ===
1261
- // Verified tokens: set by authManagerLoginUser / _resolveOrCache after /user API check
1262
- const _loginTokens = new Map(); // "host:login" → oauthToken
1263
-
1264
- const _tokStore = new Map();
1265
- let _tokSeq = 9e6;
1266
- result.tokenStoreCreate = function() { const id = ++_tokSeq; _tokStore.set(id, new Map()); return id; };
1267
- result.tokenStoreDestroy = function(h) { _tokStore.delete(h); };
1268
- result.tokenStoreGetToken = async function(h, host, login) {
1269
- const m = _tokStore.get(h);
1270
- const key = `${(host || 'https://github.com').replace(/\/+$/, '')}:${login || ''}`;
1271
- if (m) { const v = m.get(key); if (v != null) return v; }
1272
- const lt = _loginTokens.get(key);
1273
- if (lt != null) { if (m) m.set(key, lt); return lt; }
1274
- if (login) return null; // login specified: refuse unverified fallback
1275
- return _readGhToken(null);
1276
- };
1277
- result.tokenStoreStoreToken = function(h, token, host, login) {
1278
- const m = _tokStore.get(h);
1279
- if (m && token) m.set(`${(host || 'https://github.com').replace(/\/+$/, '')}:${login || ''}`, token);
1280
- };
1281
- result.tokenStoreRemoveToken = function(h, host, login) {
1282
- const m = _tokStore.get(h);
1283
- if (m) m.delete(`${(host || 'https://github.com').replace(/\/+$/, '')}:${login || ''}`);
1284
- };
1285
- result.tokenStoreGetAnyToken = async function(h) {
1286
- const m = _tokStore.get(h);
1287
- if (m && m.size > 0) return [...m.values()][0];
1288
- return _readGhToken(null);
1289
- };
1290
- result.tokenStoreStoreCurrentTokenInConfig = async function() {};
1291
- // === end tokenStore* stubs ===
1260
+ // tokenStore*(Create/Destroy/GetToken/StoreToken/RemoveToken/GetAnyToken/
1261
+ // StoreCurrentTokenInConfig)はJS再実装せずnativeにそのまま委譲する
1262
+ // (2026-07-26、G1 3案目Conditional Go)。upstream 1.0.75でauthManager*が
1263
+ // OOPのAuthManagerHandleクラスへ完全移行し、tokenStoreGetTokenが唯一のトークン
1264
+ // 供給元になったが、native実装はbionic/glibc両モード・1.0.73/1.0.75両バージョンで
1265
+ // config.jsonの読み書き(read-modify-write、既存エントリ保持)が正しく機能し、
1266
+ // クラッシュしないことを実機検証済み(詳細はdocs/KNOWN-BUGS.md参照)。旧JS再実装は
1267
+ // _tokStore/_loginTokensという常に空のメモリキャッシュしか見ておらず、
1268
+ // config.jsonの実トークンに一切アクセスできていなかった(認証失敗の真因)
1269
+ //
1270
+ // _loginTokensは直前のauthManager*ブロック(_resolveOrCache/authManagerLoginUser/
1271
+ // authManagerSwitchToAuth)が読み書きするため、1.0.73(authManager*が生きたコード)
1272
+ // 互換のためここに残す。tokenStore*からは一切参照されない。
1273
+ const _loginTokens = new Map(); // "host:login" oauthToken (authManager*ブロック専用)
1292
1274
 
1293
1275
  if (!isGlibcMode) {
1294
1276
  // === urlManager* JS stubs ===
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash0816/copilot-termux",
3
- "version": "1.0.73",
3
+ "version": "1.0.75",
4
4
  "description": "GitHub Copilot CLI for Termux (Android aarch64)",
5
5
  "license": "GPL-3.0-only",
6
6
  "readme": "README.md",