jeo-code 0.11.3 → 0.11.4
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.
- package/CHANGELOG.md +17 -1
- package/README.ja.md +3 -6
- package/README.ko.md +3 -6
- package/README.md +3 -6
- package/README.zh.md +3 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,21 @@ The README mirrors the latest 5 entries — regenerate with `bun run changelog:s
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [0.11.4] - 2026-10-01
|
|
13
|
+
_The release pipeline could not actually release: 13 tests failed on Linux CI only, and the stored npm token no longer authenticated. Both are fixed at the root — the suite is order-independent, and publishing no longer depends on a secret that can expire._
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **CI test gate was order-dependent** (`test/stdio-override.ts`, `test/launch-flags.test.ts`, `test/review-fixes.test.ts`, `test/terminal-restore.test.ts`, `test/tui-app.test.ts`, `test/tui-renderer.test.ts`) — three files redefined `process.stdout.isTTY`/`columns`/`rows` with a bare `Object.defineProperty` (non-writable) and restored only when an own descriptor had existed, so on a non-TTY stdout the property stayed read-only; the next file to assign it threw "Attempted to assign to readonly property", and `terminal-restore`'s stranded fake stdin then broke every later launch test (12 failures, Linux CI only, since Bun runs files in readdir order). Overrides now restore the exact prior descriptor or delete the property.
|
|
17
|
+
- **`npm-publish.yml`** — the browser tool tests run in their own `bun test` process (`JEO_SKIP_BROWSER_TESTS=1` for the main suite, `JEO_REQUIRE_BROWSER=1` for `test/browser-tool.test.ts`): in-process Chromium launch/teardown intermittently made the first later CLI spawn exit 0 with empty stdout on GitHub runners. `test/launch-oneshot-slash.test.ts` now asserts the child's exit code and includes its stderr in the failure. Actions bumped to `checkout@v7`/`setup-node@v7`/`upload-artifact@v7`, runner pinned to `ubuntu-24.04`.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- **npm publishing moved to trusted publishing (OIDC)** (`.github/workflows/npm-publish.yml`) — the workflow no longer reads an `NPM_TOKEN` secret (the stored one no longer authenticates: CI's `npm whoami` failed, so the token path could not publish anyway). It upgrades npm to ≥ 11.5.1, checks the OIDC prerequisites (`id-token: write`), and publishes with provenance. npm's registered trusted publisher for `jeo-code` is GitHub Actions / `akillness/jeo-code` / `npm-publish.yml` (`npm trust list jeo-code`). npm is restricting bypass-2FA tokens from Aug 2026 and ending direct publishing with them in Jan 2027, so the token path had a shelf life regardless.
|
|
21
|
+
- **`pack:check` reads npm 12's `pack --json` output** (`scripts/check-package.ts`) — npm ≥ 12 prints `{ "<name>": manifest }` where npm ≤ 11 printed `[manifest]`, so the gate reported every required file as missing once CI upgraded npm. Both shapes are accepted and pinned by a test.
|
|
22
|
+
- **A dry run on an already-released ref** reports "already published" instead of failing on npm's cannot-publish-over check.
|
|
23
|
+
|
|
24
|
+
### Verified
|
|
25
|
+
- Full publish workflow dry run on GitHub runners: browser hard gate, typecheck, main suite (3622 pass), browser-tool suite (15 pass), `pack:check`, packed-tarball boot smoke, OIDC prerequisites — all green, zero error/warning annotations.
|
|
26
|
+
|
|
12
27
|
## [0.11.3] - 2026-10-01
|
|
13
28
|
_Remote control grew from one Telegram bot into one shared daemon serving Telegram, Discord, and Slack — and the workflow gates that were meant to block unverified work (`approve`/`team` plan identity, `done` re-checks, the autopilot ratchet) now actually block it._
|
|
14
29
|
|
|
@@ -2457,7 +2472,8 @@ _Initial release._
|
|
|
2457
2472
|
### Added
|
|
2458
2473
|
- Initial jeo-code agent and CLI.
|
|
2459
2474
|
|
|
2460
|
-
[Unreleased]: https://github.com/akillness/jeo-code/compare/v0.11.
|
|
2475
|
+
[Unreleased]: https://github.com/akillness/jeo-code/compare/v0.11.4...HEAD
|
|
2476
|
+
[0.11.4]: https://github.com/akillness/jeo-code/releases/tag/v0.11.4
|
|
2461
2477
|
[0.11.3]: https://github.com/akillness/jeo-code/releases/tag/v0.11.3
|
|
2462
2478
|
[0.11.2]: https://github.com/akillness/jeo-code/releases/tag/v0.11.2
|
|
2463
2479
|
[0.11.1]: https://github.com/akillness/jeo-code/releases/tag/v0.11.1
|
package/README.ja.md
CHANGED
|
@@ -336,12 +336,9 @@ bun run dev:doctor # グローバル `jeo` がこのソースを実行
|
|
|
336
336
|
|
|
337
337
|
## 公開 (Publishing)
|
|
338
338
|
|
|
339
|
-
CI は `.github/workflows/npm-publish.yml` で公開します — GitHub リリース公開時に自動、または `workflow_dispatch` の手動実行(ドライラン可)
|
|
339
|
+
CI は `.github/workflows/npm-publish.yml` で公開します — GitHub リリース公開時に自動、または `workflow_dispatch` の手動実行(ドライラン可)。ワークフローはブラウザのハードゲート・型チェック・テスト(ブラウザツールのテストは別プロセス)・`pack:check`・パック済み tarball の起動スモークを経て `npm publish --provenance` を実行します。
|
|
340
340
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
- `jeo-code` パッケージへの Read/Write 権限を持つ **Granular Access Token**、またはクラシック **Automation** トークン
|
|
344
|
-
- 「公開時の **bypass 2FA**」許可が必須 — Automation トークンは常にバイパス、granular トークンはオプションの有効化が必要
|
|
341
|
+
公開には **npm trusted publishing(OIDC)** を使います — ローテーション・漏洩・2FA 免除が必要な `NPM_TOKEN` シークレットは存在しません(npm は 2026 年 8 月から 2FA バイパストークンを制限し、2027 年 1 月にそのトークンによる直接公開を終了します)。npmjs.com での一度きりの設定: パッケージ `jeo-code` → Settings → Trusted Publisher → GitHub Actions、owner `akillness`、repository `jeo-code`、workflow `npm-publish.yml`、environment は空欄。ジョブには `permissions.id-token: write` と npm ≥ 11.5.1 が必要です(ワークフローが npm 自体を更新します)。
|
|
345
342
|
|
|
346
343
|
## 謝辞 (Acknowledgements)
|
|
347
344
|
|
|
@@ -351,10 +348,10 @@ CI は `.github/workflows/npm-publish.yml` で公開します — GitHub リリ
|
|
|
351
348
|
|
|
352
349
|
<!-- CHANGELOG:START (auto-generated from CHANGELOG.md — run `bun run changelog:sync`) -->
|
|
353
350
|
- **[Unreleased]**
|
|
351
|
+
- **[0.11.4]** (2026-10-01) — The release pipeline could not actually release: 13 tests failed on Linux CI only, and the stored npm token no longer authenticated. Both are fixed at the root — the suite is order-independent, and publishing no longer depends on a secret that can expire.
|
|
354
352
|
- **[0.11.3]** (2026-10-01) — Remote control grew from one Telegram bot into one shared daemon serving Telegram, Discord, and Slack — and the workflow gates that were meant to block unverified work (`approve`/`team` plan identity, `done` re-checks, the autopilot ratchet) now actually block it.
|
|
355
353
|
- **[0.11.2]** (2026-09-30) — OpenAI model pickers now follow the authenticated API and Codex catalogs, including subscription-only models, without hidden or stale entries.
|
|
356
354
|
- **[0.11.1]** (2026-08-25) — Every non-interactive `jeo` run hung forever once Telegram notifications were configured — `echo "..." | jeo`, `jeo -p "..."` in CI, any scripted use. The work completed and the command returned; the process just never exited.
|
|
357
|
-
- **[0.11.0]** (2026-08-25) — One bad boundary check was corrupting agent context, subagent fan-out, and the Telegram daemon's kill safety at the same time — and none of the three looked related from the outside.
|
|
358
355
|
|
|
359
356
|
See [CHANGELOG.md](CHANGELOG.md) for the full history.
|
|
360
357
|
<!-- CHANGELOG:END -->
|
package/README.ko.md
CHANGED
|
@@ -338,12 +338,9 @@ bun run dev:doctor # 전역 `jeo`가 이 소스를 실행하는지 보
|
|
|
338
338
|
|
|
339
339
|
## 배포 (Publishing)
|
|
340
340
|
|
|
341
|
-
CI는 `.github/workflows/npm-publish.yml`로 배포합니다 — GitHub 릴리즈 게시 시 자동, 또는 `workflow_dispatch` 수동 실행(드라이런 옵션). 워크플로는
|
|
341
|
+
CI는 `.github/workflows/npm-publish.yml`로 배포합니다 — GitHub 릴리즈 게시 시 자동, 또는 `workflow_dispatch` 수동 실행(드라이런 옵션). 워크플로는 브라우저 하드 게이트·타입체크·테스트(브라우저 도구 테스트는 별도 프로세스)·`pack:check`·패키징된 tarball 부팅 스모크를 거친 뒤 `npm publish --provenance`를 실행합니다.
|
|
342
342
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
- `jeo-code` 패키지에 Read/Write 권한이 있는 **Granular Access Token**, 또는 클래식 **Automation** 토큰
|
|
346
|
-
- "배포 시 **bypass 2FA**" 허용 필수 — Automation 토큰은 항상 우회, granular 토큰은 옵션 활성화 필요
|
|
343
|
+
배포는 **npm trusted publishing(OIDC)** 을 사용합니다 — 교체·유출·2FA 예외가 필요한 `NPM_TOKEN` 시크릿이 없습니다(npm은 2026년 8월부터 2FA 우회 토큰을 제한하고 2027년 1월에 해당 토큰의 직접 배포를 종료합니다). npmjs.com에서 1회 설정: 패키지 `jeo-code` → Settings → Trusted Publisher → GitHub Actions, owner `akillness`, repository `jeo-code`, workflow `npm-publish.yml`, environment 비움. 잡에는 `permissions.id-token: write`와 npm ≥ 11.5.1이 필요합니다(워크플로가 npm을 직접 업그레이드).
|
|
347
344
|
|
|
348
345
|
## 감사의 말 (Acknowledgements)
|
|
349
346
|
|
|
@@ -353,10 +350,10 @@ CI는 `.github/workflows/npm-publish.yml`로 배포합니다 — GitHub 릴리
|
|
|
353
350
|
|
|
354
351
|
<!-- CHANGELOG:START (auto-generated from CHANGELOG.md — run `bun run changelog:sync`) -->
|
|
355
352
|
- **[Unreleased]**
|
|
353
|
+
- **[0.11.4]** (2026-10-01) — The release pipeline could not actually release: 13 tests failed on Linux CI only, and the stored npm token no longer authenticated. Both are fixed at the root — the suite is order-independent, and publishing no longer depends on a secret that can expire.
|
|
356
354
|
- **[0.11.3]** (2026-10-01) — Remote control grew from one Telegram bot into one shared daemon serving Telegram, Discord, and Slack — and the workflow gates that were meant to block unverified work (`approve`/`team` plan identity, `done` re-checks, the autopilot ratchet) now actually block it.
|
|
357
355
|
- **[0.11.2]** (2026-09-30) — OpenAI model pickers now follow the authenticated API and Codex catalogs, including subscription-only models, without hidden or stale entries.
|
|
358
356
|
- **[0.11.1]** (2026-08-25) — Every non-interactive `jeo` run hung forever once Telegram notifications were configured — `echo "..." | jeo`, `jeo -p "..."` in CI, any scripted use. The work completed and the command returned; the process just never exited.
|
|
359
|
-
- **[0.11.0]** (2026-08-25) — One bad boundary check was corrupting agent context, subagent fan-out, and the Telegram daemon's kill safety at the same time — and none of the three looked related from the outside.
|
|
360
357
|
|
|
361
358
|
See [CHANGELOG.md](CHANGELOG.md) for the full history.
|
|
362
359
|
<!-- CHANGELOG:END -->
|
package/README.md
CHANGED
|
@@ -344,12 +344,9 @@ bun run dev:doctor # report whether global `jeo` runs this source (link
|
|
|
344
344
|
## Publishing
|
|
345
345
|
|
|
346
346
|
|
|
347
|
-
CI publishes via `.github/workflows/npm-publish.yml` — triggered by a published GitHub release, or manually with `workflow_dispatch` (optional dry-run). The workflow
|
|
347
|
+
CI publishes via `.github/workflows/npm-publish.yml` — triggered by a published GitHub release, or manually with `workflow_dispatch` (optional dry-run). The workflow runs the browser hard gate, typecheck, the test suite (browser tool tests in their own process), `pack:check`, a packed-tarball boot smoke, then `npm publish --provenance`.
|
|
348
348
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
- A **Granular Access Token** with Read/Write access to the `jeo-code` package, or a classic **Automation** token
|
|
352
|
-
- "**bypass 2FA** for publishing" must be allowed — Automation tokens always bypass; granular tokens need the option enabled
|
|
349
|
+
Publishing uses **npm trusted publishing (OIDC)** — there is no `NPM_TOKEN` secret to rotate, leak, or exempt from 2FA (npm restricts bypass-2FA tokens from Aug 2026 and ends direct publishing with them in Jan 2027). One-time setup on npmjs.com: package `jeo-code` → Settings → Trusted Publisher → GitHub Actions, owner `akillness`, repository `jeo-code`, workflow `npm-publish.yml`, environment blank. The job needs `permissions.id-token: write` and npm ≥ 11.5.1 (the workflow upgrades npm itself).
|
|
353
350
|
|
|
354
351
|
## Acknowledgements
|
|
355
352
|
|
|
@@ -359,10 +356,10 @@ Huge thanks to [gajae-code](https://github.com/Yeachan-Heo/gajae-code) for the i
|
|
|
359
356
|
|
|
360
357
|
<!-- CHANGELOG:START (auto-generated from CHANGELOG.md — run `bun run changelog:sync`) -->
|
|
361
358
|
- **[Unreleased]**
|
|
359
|
+
- **[0.11.4]** (2026-10-01) — The release pipeline could not actually release: 13 tests failed on Linux CI only, and the stored npm token no longer authenticated. Both are fixed at the root — the suite is order-independent, and publishing no longer depends on a secret that can expire.
|
|
362
360
|
- **[0.11.3]** (2026-10-01) — Remote control grew from one Telegram bot into one shared daemon serving Telegram, Discord, and Slack — and the workflow gates that were meant to block unverified work (`approve`/`team` plan identity, `done` re-checks, the autopilot ratchet) now actually block it.
|
|
363
361
|
- **[0.11.2]** (2026-09-30) — OpenAI model pickers now follow the authenticated API and Codex catalogs, including subscription-only models, without hidden or stale entries.
|
|
364
362
|
- **[0.11.1]** (2026-08-25) — Every non-interactive `jeo` run hung forever once Telegram notifications were configured — `echo "..." | jeo`, `jeo -p "..."` in CI, any scripted use. The work completed and the command returned; the process just never exited.
|
|
365
|
-
- **[0.11.0]** (2026-08-25) — One bad boundary check was corrupting agent context, subagent fan-out, and the Telegram daemon's kill safety at the same time — and none of the three looked related from the outside.
|
|
366
363
|
|
|
367
364
|
See [CHANGELOG.md](CHANGELOG.md) for the full history.
|
|
368
365
|
<!-- CHANGELOG:END -->
|
package/README.zh.md
CHANGED
|
@@ -334,12 +334,9 @@ bun run dev:doctor # 报告全局 `jeo` 是否运行的是本源码(lin
|
|
|
334
334
|
|
|
335
335
|
## 发布 (Publishing)
|
|
336
336
|
|
|
337
|
-
CI 通过 `.github/workflows/npm-publish.yml` 发布 — GitHub 发布 release 时自动触发,或手动 `workflow_dispatch`(可选 dry-run)
|
|
337
|
+
CI 通过 `.github/workflows/npm-publish.yml` 发布 — GitHub 发布 release 时自动触发,或手动 `workflow_dispatch`(可选 dry-run)。工作流依次执行浏览器硬门禁、类型检查、测试(浏览器工具测试在独立进程中)、`pack:check`、打包 tarball 的启动冒烟,然后运行 `npm publish --provenance`。
|
|
338
338
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
- 对 `jeo-code` 包具有 Read/Write 权限的 **Granular Access Token**,或经典 **Automation** 令牌
|
|
342
|
-
- 必须允许"发布时 **bypass 2FA**" — Automation 令牌始终绕过,granular 令牌需启用该选项
|
|
339
|
+
发布使用 **npm trusted publishing(OIDC)** — 不存在需要轮换、可能泄露或需豁免 2FA 的 `NPM_TOKEN` secret(npm 自 2026 年 8 月起限制绕过 2FA 的令牌,并于 2027 年 1 月终止用其直接发布)。在 npmjs.com 上一次性设置: 包 `jeo-code` → Settings → Trusted Publisher → GitHub Actions,owner `akillness`,repository `jeo-code`,workflow `npm-publish.yml`,environment 留空。该 job 需要 `permissions.id-token: write` 和 npm ≥ 11.5.1(工作流会自行升级 npm)。
|
|
343
340
|
|
|
344
341
|
## 致谢 (Acknowledgements)
|
|
345
342
|
|
|
@@ -349,10 +346,10 @@ CI 通过 `.github/workflows/npm-publish.yml` 发布 — GitHub 发布 release
|
|
|
349
346
|
|
|
350
347
|
<!-- CHANGELOG:START (auto-generated from CHANGELOG.md — run `bun run changelog:sync`) -->
|
|
351
348
|
- **[Unreleased]**
|
|
349
|
+
- **[0.11.4]** (2026-10-01) — The release pipeline could not actually release: 13 tests failed on Linux CI only, and the stored npm token no longer authenticated. Both are fixed at the root — the suite is order-independent, and publishing no longer depends on a secret that can expire.
|
|
352
350
|
- **[0.11.3]** (2026-10-01) — Remote control grew from one Telegram bot into one shared daemon serving Telegram, Discord, and Slack — and the workflow gates that were meant to block unverified work (`approve`/`team` plan identity, `done` re-checks, the autopilot ratchet) now actually block it.
|
|
353
351
|
- **[0.11.2]** (2026-09-30) — OpenAI model pickers now follow the authenticated API and Codex catalogs, including subscription-only models, without hidden or stale entries.
|
|
354
352
|
- **[0.11.1]** (2026-08-25) — Every non-interactive `jeo` run hung forever once Telegram notifications were configured — `echo "..." | jeo`, `jeo -p "..."` in CI, any scripted use. The work completed and the command returned; the process just never exited.
|
|
355
|
-
- **[0.11.0]** (2026-08-25) — One bad boundary check was corrupting agent context, subagent fan-out, and the Telegram daemon's kill safety at the same time — and none of the three looked related from the outside.
|
|
356
353
|
|
|
357
354
|
See [CHANGELOG.md](CHANGELOG.md) for the full history.
|
|
358
355
|
<!-- CHANGELOG:END -->
|