Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ All notable changes are documented here. The project follows semantic versioning

### Changed

- **Satoru Gojo (五条 悟)** `1.2.0` remains the Featured package under the stable `satoru-gojo` slug. It is attempted on every numeric Codex Desktop version and marks `26.707.*` and `26.715.*` as live-verified.
- **Satoru Gojo (五条 悟)** `1.2.1` keeps the Featured `satoru-gojo` slug, moves decorative status chrome away from profile actions, and gives keyboard focus the sole strong rail when Codex exposes combined skill filters as simultaneously pressed.
- Skills reuse the plugin collection treatment in Chinese and English Codex interfaces.
- Renderer maintenance now verifies the active theme before reapplying, while component-role reconciliation avoids redundant DOM writes and keeps the home/Composer layout stable through transient typing rerenders.
- The theme remains attempted on every numeric Codex Desktop version and marks `26.707.*` and `26.715.*` as live-verified.
- Four early engineering study themes and the temporary intake-slot scaffolding were removed from the release candidate.
- Theme submissions use an explicit provenance and necessary-rights declaration.

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ After an official Codex update, the agent attempts the shared adapter again. If

## Current status

Version `0.4.3` includes the engine, twelve complete local theme packages, self-contained user installation, opt-in bounded login takeover, LaunchAgent persistence, conflict diagnostics, safe restore, and a static Gallery.
Version `0.4.4` includes the engine, twelve complete local theme packages, self-contained user installation, opt-in bounded login takeover, verification-first renderer maintenance, LaunchAgent persistence, conflict diagnostics, safe restore, and a static Gallery.

| Capability | State |
| --- | --- |
Expand Down
2 changes: 1 addition & 1 deletion docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ The public CLI keeps `_watch` and `_agent` internal. The shell entrypoint finds
```text
Git clone (mutable source)
→ validated staging copy
→ ~/Library/Application Support/AwesomeCodexThemes/releases/0.4.3/
→ ~/Library/Application Support/AwesomeCodexThemes/releases/0.4.4/
→ atomic current symlink
→ ~/Library/LaunchAgents/io.github.awesome-codex-themes.agent.plist
→ current/bin/awesome-codex-themes _agent
Expand Down
4 changes: 2 additions & 2 deletions docs/RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,14 @@ Before approval is executed, verify:
- the repository description, topics, default branch, and security-advisory link are correct;
- the owner understands that forks, caches, and downloaded release assets cannot be recalled reliably after publication.

## 5. Main and `v0.4.3`
## 5. Main and `v0.4.4`

After the source, lifecycle, and visibility gates pass:

1. Land the reviewed release commit on `main` without overwriting unrelated local work.
2. Rerun `pnpm check` from the exact `main` commit.
3. Push `main` and confirm GitHub Actions succeeds on that SHA.
4. Create the annotated `v0.4.3` tag from the verified commit.
4. Create the annotated `v0.4.4` tag from the verified commit.
5. Publish a GitHub Release that links to [INSTALL.md](INSTALL.md), [MIGRATION.md](MIGRATION.md), [SAFETY.md](SAFETY.md), and the exact live-verified Codex ranges while explaining the best-effort fallback.
6. Confirm a fresh public clone can run `doctor`, `list`, an isolated `install-agent satoru-gojo --takeover-at-login` flow, and an `upgrade-agent` flow that preserves paused and takeover configuration.

Expand Down
8 changes: 4 additions & 4 deletions docs/STATUS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Implementation status

Last verified: 2026-07-20 (Asia/Shanghai)
Last verified: 2026-07-21 (Asia/Shanghai)

## State definitions

Expand All @@ -23,7 +23,7 @@ Last verified: 2026-07-20 (Asia/Shanghai)
| Full app exit/relaunch recovery | Integration verified | An unmanaged process transitioned through `restart-required` and was replaced by a verified CDP-managed official process without a second profile. |
| Login service bootstrap | Implemented and integration verified; physical reboot pending | `RunAtLoad`/`KeepAlive`, LaunchServices PID acquisition, and an opt-in one-shot 120-second login handoff have automated coverage. A real bootout/bootstrap and managed app restart were verified; a full physical reboot after this implementation is still pending. |
| Best-effort version fallback | Implemented | Automated coverage confirms every valid numeric app version selects the shared `codex-best-effort` adapter instead of being rejected. Live visual verification on an unverified future build remains pending. |
| Satoru Gojo (native Japanese name: 五条 悟) | Featured complete package, experimental compatibility | Version `1.2.0` is live-verified on 26.707/26.715 with current assets, owned-state behavior, and persistent lifecycle recovery. |
| Satoru Gojo (native Japanese name: 五条 悟) | Featured complete package, experimental compatibility | Version `1.2.1` is live-verified on 26.707/26.715 with current assets, owned-state behavior, persistent lifecycle recovery, stable typing geometry, and collision-safe status chrome. |
| Twelve-theme collection | Implemented and current-version verified | Satoru Gojo is Featured. Eleven additional Schema 2 packages include complete local backgrounds, previews, CSS, metadata, and component assets; all eleven passed the recorded 26.715 workspace, right-panel, home, plugins, scheduled, sites, pull-request, and narrow-window matrix. Compatibility remains experimental outside the recorded builds. |
| Static Gallery | Implemented | Catalog, search, native-name discovery, detail, copy, and production-build tests are present. |
| GitHub repository | Publicly released | The repository is public under `BeatAPI/Awesome-codex-themes`; no tagged GitHub Release has been created yet. |
Expand All @@ -42,12 +42,12 @@ Last verified: 2026-07-20 (Asia/Shanghai)

The active renderer was checked for owned style/chrome markers, theme variables, workspace classification, idempotent apply, renderer reload reapply, pointer-transparent decoration, and complete owned-state removal. Private screenshots with active workspace content and internal visual iteration labels remain local development evidence and are not public release assets. See the sanitized [26.715 lifecycle audit](audits/2026-07-17-satoru-gojo-26.715-lifecycle-audit.md).

The public source candidate is `0.4.3`. The current local service is separately verified as `active` on Codex `26.715.31925` with a literal-loopback endpoint and one owned `nocturne-lite` style; installing the final `0.4.3` local derivative and exercising a physical reboot remain separate gates.
The public source candidate is `0.4.4`. The current maintainer runtime is separately verified as `active` on Codex `26.715.52143` with a literal-loopback endpoint, one owned `satoru-gojo` style/chrome pair, stable Composer geometry during real text input, and no maintenance rewrites while the theme remains active. Installing the final `0.4.4` source candidate and exercising a physical reboot remain separate gates.

The legacy injector plist and script were backed up outside the repository before migration. The old plist is no longer present in `~/Library/LaunchAgents`; its source script was not deleted.

## Evidence boundary

The approved live session recorded the unmanaged `restart-required` transition, renderer reload reapply, pause and owned-state removal, paused-state upgrade, resume, managed relaunch, a real LaunchAgent bootout/bootstrap cycle, the former unknown-version safe mode before the policy changed, uninstall, and a successful reinstall with the original Codex profile preserved.

A clean release candidate passed `release:check`: 34 test files / 248 tests, all 12 theme packages, TypeScript, production Gallery build, production dependency audit, public-file hygiene, and diff whitespace. The public repository and anonymous clone path are live. Remaining tagged-release gates are a physical logout/reboot observation, the exact-commit CI result, and an explicit version-tag decision.
A clean release candidate passed `release:check`: 34 test files / 272 tests, all 12 theme packages, TypeScript, production Gallery build, production dependency audit, public-file hygiene, and diff whitespace. The public repository and anonymous clone path are live. Remaining tagged-release gates are a physical logout/reboot observation, the exact-commit CI result, and an explicit version-tag decision.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "awesome-codex-themes",
"version": "0.4.3",
"version": "0.4.4",
"packageManager": "pnpm@10.32.1",
"private": false,
"type": "module",
Expand Down
5 changes: 3 additions & 2 deletions src/cli/main.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import {
} from '../engine/macos.mjs';
import {
applyThemeAtPort,
maintainThemeAtPort,
removeThemeAtPort,
restoreThemeSession,
startThemeSession,
Expand Down Expand Up @@ -701,7 +702,7 @@ export function createDefaultDependencies() {
while (!stopping && processExists(appPid)) {
try {
await assertOfficialPortOwner(app, port);
await applyThemeAtPort({ themesRoot, themeSlug, port, appVersion: app.version });
await maintainThemeAtPort({ themesRoot, themeSlug, port, appVersion: app.version });
} catch (error) {
if (!RETRYABLE_CDP_ERRORS.has(error?.code)) throw error;
}
Expand Down Expand Up @@ -748,7 +749,7 @@ export function createDefaultDependencies() {
requestAppQuit: requestOfficialAppQuit,
waitForAppExit: waitForOfficialAppExit,
applyTheme: ({ themeSlug, port, app }) =>
applyThemeAtPort({ themesRoot, themeSlug, port, appVersion: app.version }),
maintainThemeAtPort({ themesRoot, themeSlug, port, appVersion: app.version }),
removeTheme: ({ port }) => removeThemeAtPort({ port }),
},
shouldStop: () => stopping,
Expand Down
Loading
Loading