diff --git a/README.md b/README.md index b525daf..0b4997c 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ TokenStep 是一个 macOS 菜单栏 App,用来本地统计你在 Codex、Claud 下载最新版 DMG,打开后把 `TokenStep.app` 拖进「应用程序」即可使用: -[下载 TokenStep 最新版](https://github.com/Backtthefuture/TokenStep/releases/latest/download/TokenStep-0.2.9.dmg) +[下载 TokenStep 最新版](https://github.com/Backtthefuture/TokenStep/releases/latest/download/TokenStep-0.2.10.dmg) 也可以从 Release 页面查看所有版本: @@ -32,6 +32,16 @@ TokenStep 已使用 Developer ID 签名并通过 Apple 公证。首次打开时 Windows版本由十七做了移植,欢迎大家前往使用:https://github.com/canyexuanfan/TokenStep-Windows/releases +## 0.2.10 更新:坠入黑洞的运镜方向 + +0.2.10 修正了坠落模式的逼近方向:膨胀锚点从画面中部移到**黑洞本体**(左上视界阴影处),让黑洞成为整个画面的放射原点——所有元素从它向外流走,右侧弧线不断放大、冲出画面右缘,弧顶顺流右移,读起来就是"视角正在被吸进去",而不是画面整体向上顶。 + +

+ TokenStep 0.2.10 坠落模式:视角被吸向黑洞 +

+ +速度与强度维持 0.2.9 的节奏(9 秒吞没、亮度渐强 +16%),帧差指标进一步提升:前 3 秒全画面 31.5%、全程 69.1% 的像素发生明显变化。其余模式、主题与数据口径不变。完整说明见 [0.2.10 发布说明](docs/RELEASE_NOTES_0.2.10.md)。 + ## 0.2.9 重大更新:引力动效实验室 0.2.9 给「引力边界」主题装上了真正的引力动效。黑洞不再是一张静态壁纸:打开浮层或仪表盘的瞬间,你就在朝它坠落。 @@ -128,7 +138,7 @@ TokenStep 第一次从“更换配色”升级为完整的**主题皮肤包系 - 新增奥德赛弓箭阶梯 Logo;用量采用骨金、冷金或余烬橙,绿色只保留给同步成功等状态反馈。 - 关闭排行榜后浮层会自动收短,多来源额度则使用紧凑布局完整展示。 -打开 `设置 → 通用 → 主题皮肤包` 即可切换。完整说明见 [0.2.4 发布说明](docs/RELEASE_NOTES_0.2.4.md),或直接[下载已签名并通过 Apple 公证的最新版](https://github.com/Backtthefuture/TokenStep/releases/latest/download/TokenStep-0.2.9.dmg)。 +打开 `设置 → 通用 → 主题皮肤包` 即可切换。完整说明见 [0.2.4 发布说明](docs/RELEASE_NOTES_0.2.4.md),或直接[下载已签名并通过 Apple 公证的最新版](https://github.com/Backtthefuture/TokenStep/releases/latest/download/TokenStep-0.2.10.dmg)。 ## TokenStep 适合谁? @@ -187,7 +197,7 @@ TokenStep 默认只做本地统计。 ## 安装方式 -1. 下载 [TokenStep 最新版 DMG](https://github.com/Backtthefuture/TokenStep/releases/latest/download/TokenStep-0.2.9.dmg)。 +1. 下载 [TokenStep 最新版 DMG](https://github.com/Backtthefuture/TokenStep/releases/latest/download/TokenStep-0.2.10.dmg)。 2. 打开 DMG。 3. 把 `TokenStep.app` 拖到「应用程序」。 4. 启动 TokenStep。 @@ -247,7 +257,7 @@ TokenStepSwift/dist/TokenStep.app Developer ID 签名: ```bash -TOKENSTEP_VERSION=0.2.9 \ +TOKENSTEP_VERSION=0.2.10 \ CODE_SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \ ./script/package_release.sh ``` @@ -255,7 +265,7 @@ CODE_SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \ 签名 + Apple 公证: ```bash -TOKENSTEP_VERSION=0.2.9 \ +TOKENSTEP_VERSION=0.2.10 \ CODE_SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \ TOKENSTEP_NOTARY_PROFILE="tokenstep-notary" \ ./script/package_release.sh --notarize @@ -270,7 +280,7 @@ release/TokenStep-.dmg 维护者说明见 [docs/RELEASE.md](docs/RELEASE.md)。 -0.2.9 发布说明见 [docs/RELEASE_NOTES_0.2.9.md](docs/RELEASE_NOTES_0.2.9.md);0.2.8 发布说明见 [docs/RELEASE_NOTES_0.2.8.md](docs/RELEASE_NOTES_0.2.8.md);0.2.7 发布说明见 [docs/RELEASE_NOTES_0.2.7.md](docs/RELEASE_NOTES_0.2.7.md);引力边界实现说明见 [docs/INTERSTELLAR_THEME_PACK_0.2.7.md](docs/INTERSTELLAR_THEME_PACK_0.2.7.md);0.2.6 更新闭环说明见 [docs/RELEASE_NOTES_0.2.6.md](docs/RELEASE_NOTES_0.2.6.md);0.2.4 奥德赛主题包说明见 [docs/ODYSSEY_THEME_PACK_0.2.4.md](docs/ODYSSEY_THEME_PACK_0.2.4.md)。 +0.2.10 发布说明见 [docs/RELEASE_NOTES_0.2.10.md](docs/RELEASE_NOTES_0.2.10.md);0.2.9 发布说明见 [docs/RELEASE_NOTES_0.2.9.md](docs/RELEASE_NOTES_0.2.9.md);0.2.8 发布说明见 [docs/RELEASE_NOTES_0.2.8.md](docs/RELEASE_NOTES_0.2.8.md);0.2.7 发布说明见 [docs/RELEASE_NOTES_0.2.7.md](docs/RELEASE_NOTES_0.2.7.md);引力边界实现说明见 [docs/INTERSTELLAR_THEME_PACK_0.2.7.md](docs/INTERSTELLAR_THEME_PACK_0.2.7.md);0.2.6 更新闭环说明见 [docs/RELEASE_NOTES_0.2.6.md](docs/RELEASE_NOTES_0.2.6.md);0.2.4 奥德赛主题包说明见 [docs/ODYSSEY_THEME_PACK_0.2.4.md](docs/ODYSSEY_THEME_PACK_0.2.4.md)。 ## 开源协议 diff --git a/TokenStepSwift/Sources/TokenStepSwift/Views/InterstellarMotionLab.swift b/TokenStepSwift/Sources/TokenStepSwift/Views/InterstellarMotionLab.swift index 3603d7d..174b9b3 100644 --- a/TokenStepSwift/Sources/TokenStepSwift/Views/InterstellarMotionLab.swift +++ b/TokenStepSwift/Sources/TokenStepSwift/Views/InterstellarMotionLab.swift @@ -120,14 +120,14 @@ struct InterstellarMotionSample: Equatable { /// Approach travel range over `approachDuration`; free-floating layers ride at 1.7x. /// The arc-glued hotspot scales with the plate so it never detaches from the disk. - /// The pivot sits at the heart of the baked structure so the hole swells in - /// place — edges rush out of frame while the arc crest climbs toward the top, - /// which reads as the camera falling in rather than the plate sliding away. - /// A gentle brightness swell rides along: closing in on a blazing disk. + /// The pivot sits on the black hole itself (upper-left, near the shadow), so the + /// dive reads as the camera falling INTO the hole: every feature streams outward + /// from that vanishing point, and the right-hand arc — the dominant landmark — + /// swells and rushes past the right edge of the frame. static let approachScaleRange: CGFloat = 0.36 static let approachEaseExponent: CGFloat = 1.2 static let approachBrightnessRange: Double = 0.16 - static let approachAnchor = UnitPoint(x: 0.46, y: 0.28) + static let approachAnchor = UnitPoint(x: 0.30, y: 0.05) var primaryPhase: CGFloat var secondaryPhase: CGFloat diff --git a/docs/RELEASE_NOTES_0.2.10.md b/docs/RELEASE_NOTES_0.2.10.md new file mode 100644 index 0000000..2d3d657 --- /dev/null +++ b/docs/RELEASE_NOTES_0.2.10.md @@ -0,0 +1,26 @@ +# TokenStep 0.2.10 + +TokenStep 0.2.10 reworks the plunge approach of the Event Horizon gravity motion so it reads as falling into the black hole rather than the frame drifting upward. + +## The pivot now sits on the black hole + +- The approach zoom pivot moves from mid-canvas to the hole itself — the event-horizon shadow in the upper-left — making the hole the vanishing point of the dive. +- Every feature streams radially outward from the hole: the right-hand arc, the dominant landmark, swells and rushes past the right edge of the frame; the arc crest flows rightward along the top band (measured +256 px within 6 seconds); the lower arcs sweep out of frame. +- There is no whole-frame translation in any direction; the region that barely moves is the hole itself, because that is what the camera is falling toward. + +## Speed and intensity unchanged + +- The dive keeps the 0.2.9 rhythm: 9 seconds to full closest approach with a hold at the end, up to 36% scale travel and a 16% brightness swell. +- Frame-diff perceptibility improves to 31.5% of the frame beyond an 8/255 delta within the first 3 seconds and 69.1% across the full dive (0.2.9: 26.9% / 64.0%). + +## Compatibility and scope + +- Quiet and Orbit modes, the hotspot orbit, the token plunge pulse, and the popover selector are unchanged. +- Classic and Odyssey theme packs are unchanged. +- Token, cost, quota, leaderboard, updater, and local collection behavior are unchanged. + +## Validation + +- Swift unit suite: 113 tests, 0 failures. +- Deterministic motion-lab renders re-measured at 1800 × 1118; direction verified by patch tracking (crest flows right, right-arc exits the frame by the end of the dive). +- Developer ID signing, Apple notarization, stapling, DMG validation, and isolated installer verification remain release gates. diff --git a/docs/images/tokenstep-0.2.10-motion-lab-plunge.gif b/docs/images/tokenstep-0.2.10-motion-lab-plunge.gif new file mode 100644 index 0000000..370b6af Binary files /dev/null and b/docs/images/tokenstep-0.2.10-motion-lab-plunge.gif differ diff --git a/script/build_swiftui_and_run.sh b/script/build_swiftui_and_run.sh index 9656927..fe1b455 100755 --- a/script/build_swiftui_and_run.sh +++ b/script/build_swiftui_and_run.sh @@ -23,7 +23,7 @@ HELPER_EXECUTABLE="$BUILD_DIR/$HELPER_NAME" ICON_FILE="$ROOT_DIR/TokenUsageMenuApp/assets/TokenStepIcon.icns" ODYSSEY_ASSET_DIR="$ROOT_DIR/TokenUsageMenuApp/assets/odyssey" INTERSTELLAR_ASSET_DIR="$ROOT_DIR/TokenUsageMenuApp/assets/interstellar" -VERSION="${TOKENSTEP_VERSION:-0.2.9}" +VERSION="${TOKENSTEP_VERSION:-0.2.10}" LAUNCH=true VERIFY=false