Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
86657a5
docs: propose OS-level computer use tools
tmoonlight Aug 27, 2026
e1d11b9
docs: add Agent Browser performance plan benchmarked against jev-ultr…
tmoonlight Sep 18, 2026
6d45f1c
Preserve verified UTF-8 update API fixes
tmoonlight Oct 4, 2026
8d64540
Preserve verified update diagnostics deduplication
tmoonlight Oct 4, 2026
f661f12
Recover v1.0.5 macOS ARM64 ticket delivery
tmoonlight Oct 14, 2026
c061dd9
Recover v1.0.6 platform assets from immutable release source
tmoonlight Oct 14, 2026
a534a14
Scope immutable-source Git check to Deepin container workspace
tmoonlight Oct 14, 2026
3f5740e
Support Buster Git safe.directory configuration in recovery container
tmoonlight Oct 14, 2026
6a4b1b0
Verify and cache exact Clang dependency around stale archive CDN 404
tmoonlight Oct 14, 2026
efd0327
Retry Apple ticket transport during every production macOS packaging …
tmoonlight Oct 14, 2026
dc69239
Recover Windows x64 on a fresh runner with bounded compiler concurrency
tmoonlight Oct 14, 2026
0ac075d
Use generator-independent parallel limit for Windows Ninja recovery
tmoonlight Oct 14, 2026
dcb8e4c
Recover v1.0.7 Deepin ARMv7 asset from the immutable release tag
tmoonlight Oct 15, 2026
53609cd
Fall back to snapshot.debian.org when the runner CDN keeps a stale 404
tmoonlight Oct 15, 2026
be97ea1
Use the debian-archive snapshot that also holds late buster-security …
tmoonlight Oct 15, 2026
240a212
Recover v1.0.7 macOS x64 assets with Apple ticket retries on every st…
tmoonlight Oct 15, 2026
414993a
Companion pets: hit area follows the visible silhouette
tmoonlight Oct 16, 2026
d7ae285
Companion pets: Clippy and Rover peek from screen edges; tidy small w…
tmoonlight Oct 16, 2026
760f1ec
Fix macOS pointer feedback and verify native overlay
Oct 16, 2026
c690007
Integrate agent sampling, runtime naming, and companion hit area fixes
tmoonlight Oct 16, 2026
1b63d84
Merge remote-tracking branch 'origin/master'
tmoonlight Oct 16, 2026
48cc68f
Merge remote-tracking branch 'origin/claude/ios-simulator-hardening'
tmoonlight Oct 16, 2026
a4f0250
Keep companion resize grip stable and clear of session cards
tmoonlight Oct 16, 2026
8a74e6f
Merge branch 'claude/clippy-rover-edge-peek'
tmoonlight Oct 16, 2026
190a5f6
Merge remote-tracking branch 'origin/claude/browser-improvement-ideas…
tmoonlight Oct 16, 2026
281d380
Merge remote-tracking branch 'origin/claude/ui-tars-computer-use-inte…
tmoonlight Oct 16, 2026
96de0dc
Merge remote-tracking branch 'origin/codex/recover-v1.0.5-macos-arm64'
tmoonlight Oct 16, 2026
578ea90
Merge remote-tracking branch 'origin/codex/recover-v1.0.6-platform-as…
tmoonlight Oct 16, 2026
088d676
Merge remote-tracking branch 'origin/claude/recover-v1.0.7-platform-a…
tmoonlight Oct 16, 2026
f8f2ce9
Merge branch 'shz_vide/cranky-jemison-14c349'
tmoonlight Oct 16, 2026
08ff478
Merge branch 'shz_vide/ecstatic-dirac-7e2088'
tmoonlight Oct 16, 2026
b2ceb46
Update merged browser performance documentation to the current source…
tmoonlight Oct 16, 2026
6277603
Detect both legacy and underscore daemon directories before rebuilding
tmoonlight Oct 16, 2026
b39b813
Check canonical underscore filenames in the subprocess session regres…
tmoonlight Oct 16, 2026
318cc87
Preserve both redirect filenames when migrating and cleaning data dir…
tmoonlight Oct 16, 2026
b58a1b4
Align integration regressions with generated filenames and record Win…
tmoonlight Oct 16, 2026
d28a1ea
Correct consolidated Windows validation counts
tmoonlight Oct 16, 2026
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
901 changes: 901 additions & 0 deletions .github/workflows/recover-v1.0.5-macos-arm64.yml

Large diffs are not rendered by default.

876 changes: 876 additions & 0 deletions .github/workflows/recover-v1.0.6-platform-assets.yml

Large diffs are not rendered by default.

919 changes: 919 additions & 0 deletions .github/workflows/recover-v1.0.7-platform-assets.yml

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion assets/desktop_pet/agent_office_pet.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
.ov{position:absolute;inset:0;pointer-events:none;line-height:1.4}
.scene canvas.up{position:absolute;inset:0;image-rendering:auto;pointer-events:none}
.grip{position:absolute;left:calc(11 / 344 * 100%);top:calc(112 / 252 * 100%);width:16px;height:16px;cursor:nwse-resize;opacity:0;transition:opacity .15s;z-index:3}
.scene:hover .grip{opacity:.95}
/* The resize handle stays hidden (but hit-testable) until the pointer is on it. */
.grip:hover{opacity:.95}
.grip svg{display:block;width:100%;height:100%}
.zoom-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#27324f;color:#fff;font-weight:700;border-radius:6px;padding:2px 9px;font-size:13px;pointer-events:none;z-index:4}
.bub{position:absolute;left:0;top:0;z-index:2;display:flex;align-items:center;gap:3px;max-width:min(64vw,calc(var(--k) * 150px));background:#fff;color:#1b2540;border:2px solid #27324f;border-radius:6px;padding:1px 6px 2px;font-size:max(10px,calc(var(--k) * 6.2px));font-weight:700;white-space:nowrap;box-shadow:2px 2px 0 rgba(20,24,40,.28)}
Expand Down
4 changes: 4 additions & 0 deletions assets/desktop_pet/classic/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@

Clippy(43 个动作)与 Rover(29 个动作)原始 PNG 精灵图和动作数据来自 [clippyjs/clippy.js](https://github.com/clippyjs/clippy.js),固定提交和 SHA-256 见 `sources.json`。`preview.png` 直接裁取原图的 RestPose 首帧,仅用于设置中的预览。

## 趴边偷看(clippy/peek.png、rover/peek.png)

宠物拖到屏幕左/右边缘吸附后改用各自目录下的 `peek.png`:两帧并排(左睁眼、右闭眼),透明背景,画面右缘就是它躲着的那条屏幕边(贴左边时页面水平镜像)。不来自上游项目,2026-10-16 用 Codex 的内置图像生成(codex-cli 0.162)绘制,以本目录精灵图的整张图与 RestPose / Idle 首帧作为风格参考,要求同一角色设计与画风:回形针把上半截钢丝和两只大眼睛从画面右缘探进来,rover 探出脑袋、两只前爪扒着右缘。闭眼帧由同一张图做「只闭眼、其余不变」的编辑,再只把眼睛区域贴回睁眼图,眨眼时其余像素不动。处理:纯绿背景抠成透明并去绿边,两帧同裁,按眼睛大小与原帧一致缩到精灵分辨率(回形针 29×75、rover 41×56 每帧),alpha 只留全透明 / 不透明,颜色映射到对应 `map.png` 实际用到、且不偏绿的调色板颜色,所以和原帧一样是不平滑放大的像素画。换图时要按眼睛重新量缩放,页面里的倍数见 `classic_pet.js` 的 `PEEK` 表。

角色由 Microsoft 创作;上游代码许可保存在 `MIT-LICENSE.txt`。ACECode 自有播放器不依赖上游 jQuery 播放器,不播放原始音效。素材随本地程序打包,运行时没有 CDN 请求。
Binary file added assets/desktop_pet/classic/clippy/peek.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/desktop_pet/classic/rover/peek.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 12 additions & 5 deletions assets/desktop_pet/classic_pet.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@
box, and Windows clips painting to it, so a shadow running past it is cut off hard. */
/* Card text is the ACECode transcript body text: same family, size and line height (the main
window sends its live values with every snapshot, following its font-size setting). */
.stack{position:absolute;left:0;right:0;bottom:calc(58% - 10px);z-index:3;padding:12px max(4%,16px) 26px;font:var(--pet-font-size)/1.6 var(--pet-font)}
/* In a small window the cards would run past the top edge: --stack-fit (set by fitStack) shrinks
them, down to 9px text, and .pinned holds them at the top edge when even that is too tall. */
.stack{position:absolute;left:0;right:0;bottom:calc(58% - 10px);z-index:3;padding:calc(12px * var(--stack-fit, 1)) max(4%,16px) calc(26px * var(--stack-fit, 1));
font:calc(var(--pet-font-size) * var(--stack-fit, 1))/1.6 var(--pet-font)}
.stack.collapsed.pinned{bottom:auto;top:0}
.stack.expanded{bottom:auto;top:0;max-height:100%;overflow-y:auto;scrollbar-width:thin}
.deck{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:6px}
.stack.collapsed .card:not(:first-child){display:none}
Expand All @@ -34,7 +38,8 @@
.text{flex:1;min-width:0}
.head{display:flex;align-items:center;gap:.4em;font-weight:700}
.name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.body{margin-top:.1em;color:var(--card-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* A block box: on an inline span the ellipsis does nothing and long text runs under the stop button. */
.body{display:block;margin-top:.1em;color:var(--card-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.icon{flex:none;width:1.1em;height:1.1em;display:grid;place-items:center}
.icon svg{width:100%;height:100%}
.spinner{width:.9em;height:.9em;border:2px solid var(--card-button);border-top-color:var(--idle);border-radius:50%;animation:spin .9s linear infinite}
Expand All @@ -46,8 +51,10 @@
box-shadow:0 1px 3px rgba(0,0,0,.25);display:none;place-items:center;cursor:pointer;padding:0;font:inherit;font-weight:700;line-height:1}
.card:hover .dismiss,.card:focus-within .dismiss{display:grid}
.stack.collapsed.layers .card .dismiss{display:none}
.grip{position:absolute;left:calc(11 / 344 * 100%);top:calc(112 / 252 * 100%);width:16px;height:16px;cursor:nwse-resize;opacity:0;z-index:2}
.scene:hover .grip,.scene:focus-within .grip{opacity:1}
/* The resize handle sits at the top-left of the visible pet (placed by reportRegions) and stays
hidden, though still hit-testable, until the pointer is on it. */
.grip{position:absolute;width:16px;height:16px;cursor:nwse-resize;opacity:0;transition:opacity .15s;z-index:2}
.grip:hover{opacity:1}
.grip svg{width:100%;height:100%;fill:none;stroke:var(--pet-ink);stroke-width:2}
.badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--pet-ink);color:#fff;padding:3px 8px;border-radius:5px;pointer-events:none}
[hidden]{display:none!important}
Expand All @@ -57,7 +64,7 @@
<div class="scene" id="scene">
<div class="stack collapsed" id="stack" role="list" aria-label="会话动态" hidden><div class="deck" id="deck"></div></div>
<canvas id="cv" width="344" height="252" aria-label="桌面宠物,双击打开 ACECode"></canvas>
<div class="grip" id="grip" title="拖动调整大小,双击恢复默认大小"><svg viewBox="0 0 16 16" aria-hidden="true"><path d="M2 7L7 2M2 11L11 2M2 15L15 2"/></svg></div>
<div class="grip" id="grip" title="拖动调整大小,双击恢复默认大小" hidden><svg viewBox="0 0 16 16" aria-hidden="true"><path d="M2 7L7 2M2 11L11 2M2 15L15 2"/></svg></div>
<div class="badge" id="badge" hidden></div>
</div>
<script>window.ClassicPetAgents={};window.clippy={ready:(name,data)=>{window.ClassicPetAgents[name.toLowerCase()]=data;}};</script>
Expand Down
Loading
Loading