74 Commits
Author SHA1 Message Date
xjxandgd-ops 0b5c7b8149 docs: distinguish requirements from implementation evidence (#64)
Agent guidance previously ranked existing implementation and tests ahead
of documented contracts without distinguishing observed behavior from
intended requirements. The root guidance and bilingual documentation
index now make that distinction and require investigating whether a
disagreement comes from a defect, stale documentation, or an unresolved
requirement. Existing product, delivery, and release constraints remain
intact.

Validation: the scoped local pre-push checks passed, including source
syntax and local Markdown links; the changelog-fragment policy also
passed.

## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `engineering-speedup`
- Base commit: `d2040c4922d4b021eedc4cd0eae953537c28d0fb`
- Release preparation: `no`
- Focused validation:
  - `python3 script/tests/test_validation_tooling.py`
  - `./script/validate_build_scripts_safety.sh --static-only`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":4,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-09-09T02:21:17Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-09-09 02:45:31 +00:00
xjxandlilei d2040c4922 docs: streamline Agent guidance and reconcile project documentation (#63)
AGENTS.md loaded detailed product and delivery procedures for every
repository task. It now keeps essential repository boundaries and
task-specific links to the owning documents, reducing the file from 15
KB to 5 KB. Missing navigation, placement, sizing, session identity, and
bundled-pet details are preserved in existing contracts; protected
worktrees, credentials, and exact-commit release acceptance remain
explicit.

The documentation review also removes repeated delivery instructions
from CONTRIBUTING, corrects the obsolete direct/train changelog policy
in the fragment README and documentation index, supplies the required
release-preparation/version/date arguments in the consume example, and
distinguishes the V3 two-second per-frame limit from current creation
defaults.

项目 AGENTS.md
精简为关键约束与按任务读取入口;补齐对应产品契约,收拢贡献流程,并修正变更片段、汇总命令与动画时长的旧说明。仅调整项目指令和文档。

Validation:
- Local pre-push gate: source syntax, local Markdown links, and diff
hygiene passed.
- Existing exact-commit Computer Use release-contract test passed.
- Six existing changelog fragment tests and development changelog policy
passed.
- Removed product requirements mapped to existing architecture,
connector, V3, and release documents; command flags and timing defaults
checked against implementation.

The broader review also identified an existing live Studio validator
assertion that requires canceled threads to stay unavailable, whereas
the runtime attempts to unarchive stopped transcripts for viewing. No
live generation was run and no validation script is changed by this
documentation PR.

---------

Co-authored-by: lilei <lilei@xmfunny.com>
2026-09-05 16:46:06 +00:00
xjxandlilei 3fdc943d0a Align Codex project configuration and guidance with GPT-6 Astra (#62)
Codex repository work now has a versioned `gpt-6-astra` default in
`.codex/config.toml`, preserving the contributor's reasoning effort.
AGENTS.md defines execution, authorization reuse, focused clarification,
communication, and proportionate validation for Astra. The contributor
guide, documentation index, development contract, and both public
READMEs are aligned.

The earlier Studio runtime migration is already on main through #61.
This change documents the separate repository-development and in-App
Studio settings. The Codex environment Run action, plugin manifest, and
Maker/Studio Skills were inspected; they contain no old model selection
requiring migration, and their existing production contracts remain
applicable.

Validation:
- Required local pre-push gate, source/Markdown link checks, TOML
parsing, and changelog policy passed.
- Real Codex App Server `config/read` confirms `gpt-6-astra` now
originates from this project's `.codex` directory, while the existing
`high` reasoning effort still originates from user configuration.
- Reviewed the complete staged diff; no live model turn or pet
generation was run.

References: [Astra migration and prompting
guidance](https://developers.openai.com/api/docs/guides/latest-model?model=gpt-6-astra),
[Codex
configuration](https://learn.chatgpt.com/zh-Hans/docs/config-file/config-reference).

Direct development lane. The coordinating agent owns the user-requested
project configuration, AGENTS.md, and documentation updates; the
registered shared-path approvals cover the Agent/contributor
instructions, documentation, and changelog. No
CI/Release/merge/proof/ruleset implementation changes are included.

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":1,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-09-05T15:54:25Z","train_conflict_resolutions":0}
-->

Co-authored-by: lilei <lilei@xmfunny.com>
2026-09-05 16:09:19 +00:00
xjxandlilei 98b3337d3b Use GPT-6 Astra by default in AI Pet Maker (#61)
AI Pet Maker now uses `gpt-6-astra` when no valid explicit model
override is configured. This applies to both new and resumed Studio
turns. Medium reasoning, native user questions, and
`APC_PET_STUDIO_CODEX_MODEL` keep their current behavior. The owning
runtime documentation and bilingual changelog fragment describe the
default.

The [official GPT-6 Astra migration
guidance](https://developers.openai.com/api/docs/guides/latest-model?model=gpt-6-astra)
supports retaining medium reasoning. Model execution uses the existing
Codex App Server integration.

Validation:
- Required local pre-push gate and changelog policy passed.
- 8 App Server unit tests and 21 App Server transport integration tests
passed.
- The installed ChatGPT-bundled Codex App Server lists `gpt-6-astra`
with medium reasoning and text/image input support.
- Live pet generation was not run.

Development lane: direct to `main`; runtime claim: `maker-generation /
generation-runtime`. The coordinating agent also owns the accompanying
documentation and changelog fragment for this change.

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":1,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-09-05T15:16:49Z","train_conflict_resolutions":0}
-->

Co-authored-by: lilei <lilei@xmfunny.com>
2026-09-05 15:32:56 +00:00
xjxandgd-ops daee16e7b6 Revert native-Alpha imagegen production default (#59)
## Summary / 摘要

- Fully revert the production behavior, contracts, documentation, and
frame-preparation changes introduced by PR #58.
- Restore the previous fully opaque flat-chroma source workflow and its
bounded transparency, edge-repair, and QA pipeline for Maker and Studio
production.
- Rewrite the existing unreleased native-Alpha-default changelog
fragment so the eventual release notes contain only the final rollback
state.
- Keep the Codex plugin and both bundled Skills monotonic at version
0.5.8; no native-Alpha-default behavior is retained by that
metadata-only bump.

## Why / 原因

The current built-in imagegen tool exposes only prompt and
reference-image selection fields, not a transparent-background control.
Direct generation can return real Alpha, but controlled reference-image
generation and editing returned opaque PNGs. Native transparency is
therefore not reliable enough to be the product default.

当前内置 imagegen 仅暴露提示词和参考图选择字段,未暴露透明背景控制。直接生图可以返回真实
Alpha,但受控参考图生图与编辑返回了不透明 PNG,因此原生透明能力尚不具备默认投产条件。

## Validation / 验证

- `./script/validate_pre_push.sh`
- `./script/changelog_fragments.py policy --base-ref
5e94852241 --release-preparation false`
- `uv run --with pillow python -m unittest discover -s
skills/agent-pet-maker/tests -p test_*.py` — 88 passed
- `cargo test -p petcore --test integration_b --locked` — 42 passed
- `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test
--package-path apps/macos --filter PortableMakerSkillManagementTests` —
5 passed
- Behavioral tree comparison matches PR #58 parent
`2844e0803734247f16d3667711479856249d13ae`; only monotonic 0.5.8
metadata, its matching Swift expectations, and the corrected retained
changelog fragment differ.

## Development claim / 开发声明

- Domain: `maker-generation`
- Claim: `maker-skills`
- Base commit: `5e9485224140e5f30ced42d598eba87b4f8b26e6`
- Release preparation: `no`
- Scope note: direct hotfix that atomically reverts the cross-contract
PR #58 delivery.
- Focused validation:
  - `cargo test -p petcore --test integration_b --locked`
  - `./script/validate_pet_skills.sh`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":3,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-09-01T15:10:18Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-09-01 15:39:09 +00:00
xjxandgd-ops 5e94852241 Default pet creation to native-Alpha imagegen output (#58)
## Summary / 摘要

- Make ChatGPT/Codex built-in `imagegen` the default image path for low
and standard pet creation, requesting genuine transparent PNG source
art.
- Add version 2 `native_alpha` frame jobs that preserve authored Alpha
and visible RGBA, clear only hidden RGB under Alpha 0, keep
source-resolution masters, and perform at most one premultiplied
linear-light downscale.
- Retain version 1 readability and an explicit version 2 `chroma_key`
compatibility path for opaque-only providers; native failures never
silently fall back to chroma.
- Synchronize Studio prompts, Maker/Studio skills, V3 contracts,
architecture/public docs, plugin version 0.5.7, and the unreleased
changelog fragment.

## Validation / 验证

- `./script/validate_pre_push.sh`
- 103 Python pet-production and Skill contract tests
- 42 PetCore `integration_b` tests
- Focused PetCore external-helper prompt contract test
- 5 Portable Maker Skill Swift tests
- Plugin version and changelog policy validators

## Development claim / 开发声明

- Domain: `maker-generation`
- Claim: `maker-skills`
- Base commit: `2844e0803734247f16d3667711479856249d13ae`
- Release preparation: `no`
- Scope note: this is one atomic cross-contract delivery spanning the
Maker skills, Studio generation prompt, durable contracts, public
documentation, and their synchronized version tests.
- Focused validation:
  - `cargo test -p petcore --test integration_b --locked`
  - `./script/validate_pet_skills.sh`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":2,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-09-01T02:45:18Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-09-01 03:31:45 +00:00
xjxandlilei ee53d68341 Consolidate engineering debt: single RPC registry, typed errors, module splits, localization fixes (#54)
## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `engineering-speedup`
- Base commit: `0e1740947306b9d0ed30e853e3dc6b7c39c379f8`
- Release preparation: `no`
- Focused validation:
  - `python3 script/tests/test_validation_tooling.py`
  - `./script/validate_build_scripts_safety.sh --static-only`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":0,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-23T22:20:35Z","train_conflict_resolutions":0}
-->

---------

Co-authored-by: lilei <lilei@xmfunny.com>
2026-08-24 08:38:28 +08:00
xjxandgd-ops 3b33bf42a6 Disable invalid DSH web session routing (#52)
## Development claim / 开发声明

- Domain: `agent-connections`
- Claim: `dsh-connector`
- Base commit: `d43a51e4deb0aaf5e1461b0552e800dfa049583a`
- Release preparation: `no`
- Focused validation:
  - `cargo test -p petcore --test integration_d --locked`
  - `./script/validate_connectors_runtime.sh`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":1,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-19T11:44:34Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-19 12:14:21 +00:00
0c2e9b33c7 fix(connections): keep DSH Agent/thinking body in the bubble during tool activity (#49)
## Summary

- DSH final `assistant/message` now projects immediately at the message
boundary instead of waiting for `turn/end`: visible `text` blocks become
bounded Agent body copy, explicit string `reasoning` blocks become
bounded thinking body copy, and a message carrying both lets the visible
text win the same-sequence selection. The edge is display-only
(`affects_activity=false`), so it never restarts a thinking animation or
pulls an in-progress tool state back to start/thinking.
- A text-less final step clears the cached assistant text so a terminal
edge cannot resurrect stale body copy over newer thinking.
- `user/message` now reads the real rc.7 direct payload shape
(`event.data` is the `UserMessage`); a bounded historical nested `{
message }` fallback is retained, and only `source.kind === 'user'`
counts as user context.
- `todo/write` projects exactly one closed, bounded plan line (first
`in_progress`, else first `pending`, else last `completed`); the whole
list is never serialized.
- Streaming deltas remain dropped locally; tool args/results, usage,
credentials, and full host objects never cross the contract.
- DSH connector contract bumped to `dsh-v0.1.0-rc.7-events-v3` across
plugin template, Rust constant, fixtures, and validations (host version
is diagnostic context only, not a compat gate).
- Current-state `docs/integrations/agent-connectors.md` updated;
changelog fragment added under `changes/unreleased/`.

## Verification

- `node --test plugins/connector-privacy.test.mjs` — real-shape rc.7
fixtures, immediate assistant/message delivery, reasoning/text
precedence, stale-cache clearing, todo selection, non-user source
suppression: pass
- `cargo test -p petcore --lib dsh_adapter_tests` — 5 pass
- `cargo test -p petcore --test integration_d --locked` — 164 pass,
including the new real-chain regression
`dsh_real_chain_keeps_latest_agent_and_thinking_body_across_tool_activity`
(raw envelopes through `parse_dsh` → `agent.ingest` → bubble projection)
- `./script/validate_connectors_runtime.sh`,
`./script/validate_security_boundaries.sh` — pass
- `./script/validate_pre_push.sh` — pass; `cargo clippy` clean
- UI acceptance not claimed: no live macOS bubble observation was made
in this task; structural/automated proof only.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Development claim / 开发声明

- Domain: `agent-connections`
- Claim: `dsh-connector`
- Base commit: `836419bb616e7ad03b8545e005274683d8785335`
- Release preparation: `no`
- Focused validation:
  - `cargo test -p petcore --test integration_d --locked`
  - `./script/validate_connectors_runtime.sh`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":1,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-19T05:53:48Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-19 06:04:21 +00:00
xjxandgd-ops 91aabc4870 fix(connections): complete DSH acceptance hardening (#43)
## Development claim / 开发声明

- Domain: `agent-connections`
- Claim: `dsh-connector`
- Base commit: `f31e9580b55564e4bd2566d6383e50ecc58e721c`
- Release preparation: `no`
- Focused validation:
  - `cargo test -p petcore --test integration_d --locked`
  - `./script/validate_connectors_runtime.sh`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":0,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-18T16:45:48Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-19 01:01:47 +08:00
f31e9580b5 Support DeepSeek Harness (dsh) connector and expand to 5 Agents (#42)
## Summary

Full implementation of the DeepSeek Harness (dsh) connector plan (tasks
T1–T8):

- **T1**: 5-value `AgentSource` expansion across Rust, Swift, and
schemas with SQLite schema v7 migration
- **T2**: `parse_dsh` event normalization (15 mappings, 6 turn/end
kinds, reasoning `block-start` thinking boundary, fail-open unknown-kind
handling)
- **T3**: dsh connector management lifecycle (check, repair, refresh,
uninstall targeting the web profile's `cordis.patch.yml`)
- **T4**: Official dsh Cordis plugin template with single-flight queue,
broadcast-only subscriptions, child session suppression, and background
fence
- **T5**: App-side `RuntimeReleaseManifest.swift` expansion
- **T6**: End-to-end integration tests in `integration_d` covering all 9
contract fixtures
- **T7**: Durable contract and architecture documentation in
`docs/integrations/agent-connectors.md` and
`docs/architecture/runtime-and-ipc.md`
- **T8**: Product scope expansion to five Agents across `AGENTS.md`,
`README.md`, `README.zh-CN.md`, and architecture documents

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-18 14:12:34 +00:00
xjxandgd-ops 6800eb66f6 Fix Claude background idle completion (#30)
## Summary

- retain the Claude `background_active` projection when a delayed
`idle_prompt` arrives while background work is unresolved
- keep the idle event in bounded audit history and allow later same-turn
background activity
- preserve ordinary Claude idle completion, explicit terminal edges, and
every other Agent mapping

## Validation

- `cargo test -p petcore --locked`
- `./script/validate_connectors_runtime.sh`
- `./script/validate_pre_push.sh --base origin/main`
- `./script/changelog_fragments.py policy --base-ref origin/main
--release-preparation false`

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-17 11:31:05 +00:00
xjxandgd-ops 047ca35935 Summarize version changes in GitHub Releases (#29)
## Summary

- render each GitHub Release body from the exact version section in
`CHANGELOG.md`
- place categorized bilingual version changes before a concise bilingual
installation and first-open note
- remove internal changelog fragment markers from public notes and
verify the published body exactly matches the generated file
- update release contracts, validation ownership, documentation, and
regression tests

## Root cause

The Release workflow assembled one fixed three-step installation
template and never consumed the version-specific changelog section, so
every Release body omitted its actual changes.

## Validation

- `./script/validate_pre_push.sh`
- `./script/validate_build_scripts_safety.sh --static-only`
- `python3 script/tests/test_validation_tooling.py` (58 passed)
- `python3 script/tests/test_release_distribution_contracts.py` (44
passed)
- generated and inspected the complete `0.4.5` preview

This PR changes the Release control plane and therefore requires a
trusted manual squash merge after CI.

## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `control-plane`
- Base commit: `80f7912026e531c22a50de82036705e19b03669a`
- Release preparation: `no`
- Focused validation:
  - `python3 script/tests/test_validation_tooling.py`
  - `./script/validate_build_scripts_safety.sh --static-only`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":2,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-17T07:11:03Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-17 15:27:57 +08:00
xjxandgd-ops 80f7912026 Fix Control Center presentation and time-dependent tests (#28)
## Summary / 摘要

- Make one coordinator the sole owner of Control Center presentation,
activation, exact-window registration, and key-window state across cold
launch, reopen, menu, overlay, and update paths.
- Remove the startup alpha/input gate; appearance hydration now applies
only `NSAppearance` while the window stays visible and interactive.
- Keep overlay panels passive by default and grant the session bubble
keyboard focus only through an explicit, revocable lease.
- Add bounded lifecycle diagnostics and a fail-closed cold-launch
release gate that rebuilds the exact worktree App and proves singleton
identity, layer, alpha, nonblank pixels, overlay ordering, and retained
focus.
- Replace every retention-sensitive fixed Rust event timestamp with one
current UTC fixture base plus relative offsets; the audit removed 25
calendar-dependent timestamps, including the failing 2026-07-17 cases,
imminent 2026-07-20 cases, and 2099 escape fixtures.
- Add a CI-enforced Rust source validator that follows same-file fixture
helpers, rejects fixed RFC 3339 timestamps crossing real event-retention
APIs, and permits isolated deterministic schema/serialization/migration
samples.

## Validation / 验证

- `cargo test --workspace --locked` — complete Rust workspace passed
(petcore unit 279; integration A/B/C/D 96/40/66/160; CLI and type suites
passed).
- `cargo clippy -p petcore --all-targets --locked -- -D warnings`
passed.
- `python3 script/validate_time_independent_tests.py --root .` passed;
running the same validator against the unfixed main tree reports all 25
risky timestamps.
- `python3 script/tests/test_validation_tooling.py` — 56 tests passed.
- `./script/validate_swift_tests.sh --scope all` — 749 tests passed.
- `./script/validate_app_lifecycle_contract.sh` — 16/16 passed.
- `APC_VALIDATE_HOST_UI=1 APC_MAIN_UI_COLD_LAUNCH_ITERATIONS=20
./script/validate_main_window_ui.sh` — 20/20 cold launches passed.
- Computer Use acceptance — five destinations, three bundled pets,
action preview, pet hide/show, Control Center close/reopen, and two
consecutive quit/relaunch cycles passed.
- `./script/validate_pre_push.sh` passed after the Rust and source-gate
update.
- `./script/validate_test_isolation.sh` and
`./script/validate_build_scripts_safety.sh --static-only` passed.

This PR updates the release-control-plane inventory, so it must complete
PR CI and then receive a trusted manual squash merge.

## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `control-plane`
- Base commit: `e216a4fd13af88902cf2bd77d23939fe606c9383`
- Release preparation: `no`
- Focused validation:
  - `python3 script/tests/test_validation_tooling.py`
  - `./script/validate_build_scripts_safety.sh --static-only`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":1,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-16T12:09:52Z","train_conflict_resolutions":0}
-->

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-17 14:43:39 +08:00
xjxandgd-ops e216a4fd13 Release v0.4.5: preserve cold-launch Control Center focus (#27)
## Development lane / 开发通道

- Lane / 通道: `direct-to-main` (`release-preparation`)
- Base branch / 目标分支: `main`
- Active train / 所属 train: `n/a`
- Owning Agent/session / 写入负责人: primary release coordinator

## Scope and dependencies / 范围与依赖

- Owned paths / 独占修改路径: release control-plane claim
- Shared files and coordinator / 共享文件及协调者: `AppStore.swift`,
`ControlCenterShellTests.swift`, `docs/architecture/overview.md`,
`CHANGELOG.md`, and `changes/unreleased/**`; coordinated by the release
owner
- Depends on / 依赖 PR: none
- Blocks / 阻塞 PR: GitHub Release `v0.4.5`

## Change / 改动

- Preserve the Control Center as the key window after the desktop-pet
panels are first presented during cold launch.
- Restore focus only when the Control Center was already key and remains
open and visible while the App is still active, so switching to another
App is never overridden.
- Add the regression policy test and update the current architecture
contract.
- Consume the hotfix fragment into the already-prepared but unpublished
`0.4.5` changelog section.

## Validation / 验证

- Local fast gate: `./script/validate_pre_push.sh` passed on the
release-preparation head.
- Focused checks: `./script/validate_swift_tests.sh --scope all` — 749
tests passed; `./script/validate_app_lifecycle_contract.sh` — 12/12
passed; changelog validation, consumption, and release-preparation
policy passed.
- Environment-dependent gates skipped: authoritative GitHub CI and final
exact-`main` full UI acceptance run after merge.
- Visible UI evidence, when applicable: two independent cold launches of
the exact hotfix code were observed with Computer Use; both opened
directly to the usable standard Control Center window with all five
navigation entries, without invoking the reopen shortcut.

## Risk / 风险

- Privacy/security: no new data collection, credentials, or external
channels.
- Migration/compatibility: no schema or persisted-data migration.
- Performance/accessibility: one bounded main-queue focus restoration
after initial overlay ordering; explicit session-bubble keyboard focus
remains unchanged.
- Release/version impact: amends the unpublished `v0.4.5` release
candidate; no version-number change.

## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `control-plane`
- Base commit: `e7d793b69d73c92830cd1c706afc394b2ae229ca`
- Release preparation: `yes`
- Focused validation:
  - `python3 script/tests/test_validation_tooling.py`
  - `./script/validate_build_scripts_safety.sh --static-only`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":0,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-15T18:31:12Z","train_conflict_resolutions":0}
-->

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-15 18:44:27 +00:00
xjxandgd-ops 02b1256ab5 Ignore uninstalled agents in global notices (#25)
## Development claim / 开发声明

- Domain: `app-shell-runtime`
- Claim: `app-composition`
- Base commit: `deeb04325510c4f05cc4382a1a89f8623fedbe17`
- Release preparation: `no`
- Focused validation:
  - `./script/validate_swift_tests.sh --scope all`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":0,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-14T11:02:29Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-14 11:21:19 +00:00
xjxandgd-ops ca336d86cf Fix false Agent connection expiry alerts (#22)
## Development claim / 开发声明

- Domain: `app-shell-runtime`
- Claim: `app-composition`
- Base commit: `72c66a67fbd8cea9100a498dfed74bfa245cdcda`
- Release preparation: `no`
- Focused validation:
  - `./script/validate_swift_tests.sh --scope all`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":0,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-14T01:51:07Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-14 02:32:19 +00:00
xjxandgd-ops 72c66a67fb Fix Agent Pet Companion 0.4.3 release blockers (#21)
## Summary

- restore release-preparation context on `main` pushes only when typed
validation scope reports an exact `CHANGELOG.md` change
- make primary cold launch converge on the shared control-center
presenter and retain fronting until the SwiftUI window is registered
- add control-plane, lifecycle, and race-regression coverage for both
release blockers

## Validation

- `python3 script/tests/test_validation_tooling.py` (53 passed)
- `python3 script/development_domains.py validate`
- `./script/validate_build_scripts_safety.sh --static-only`
- `./script/validate_app_lifecycle_contract.sh` (12/12 passed)
- `./script/validate_swift_tests.sh --scope all` (745 passed)
- `./script/validate_pre_push.sh`
- `./script/changelog_fragments.py policy --base-ref origin/main
--release-preparation true`

## Release note

This amends the still-unpublished v0.4.3 release preparation. The exact
merged `main` commit will receive the mandatory host UI acceptance
before release dispatch.

## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `control-plane`
- Base commit: `7c57bbdb16b24074df16dd64ec51d3fc28782a7f`
- Release preparation: `yes`
- Focused validation:
  - `python3 script/tests/test_validation_tooling.py`
  - `./script/validate_build_scripts_safety.sh --static-only`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":0,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-12T16:56:32Z","train_conflict_resolutions":0}
-->

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-13 01:13:01 +08:00
xjxandlilei df7cbe07d5 Run full Agent connection checks at launch (#19)
## Development claim / 开发声明

- Domain: `app-shell-runtime`
- Claim: `app-composition`
- Base commit: `39b8243c51276cd8e7657b12c0cfce3db491d6a6`
- Release preparation: `no`
- Focused validation:
  - `./script/validate_swift_tests.sh --scope all`

<!-- apc-engineering-coordination-v1
{"claim_overlap_rejections":0,"merge_tree_conflicts":0,"schema_version":"apc.engineering-coordination.v1","task_created_at":"2026-08-12T14:22:43Z","train_conflict_resolutions":0}
-->

Co-authored-by: lilei <lilei@xmfunny.com>
2026-08-12 14:37:26 +00:00
xjx c895301268 Implement engineering speedup architecture (#16)
Land the B0/M0-M5/E0-E4/P0-P3 engineering-speedup control plane, including exact Swift caching, measured engineering metrics, canonical Rust identity validation, deterministic test isolation, proof fallback/promotion, and supporting architecture splits.\n\nRelease validation and dispatch are intentionally deferred to the next release.
2026-08-12 21:25:00 +08:00
xjxandgd-ops 715b702fcf Fix Control Center reveal and prepare 0.4.2 (#17)
## Summary

- move initial appearance reveal ownership from transient SwiftUI hosts
to one NSWindow coordinator
- fail open when the final gate host disappears and keep the desktop pet
visible during appearance hydration
- add host-replacement regressions, on-screen window validation, and
bump App/PetCore to 0.4.2

## Root cause

The 0.4.1 deferred reveal callback was owned by a short-lived
representable host. SwiftUI could replace or dismantle that host before
the next main-queue turn, leaving the actual control-center NSWindow at
alpha 0 and non-interactive. A duplicate host could also record that
concealed state as its restoration baseline.

## Validation

- ./script/validate_swift_tests.sh --scope all: 738 tests passed
- ./script/validate_pre_push.sh: passed
- APC_VALIDATE_HOST_UI=1 ./script/validate_main_window_ui.sh: passed
- Computer Use: all five destinations, three bundled pets/action
preview, pet hide/show, close/reopen passed
- Computer Use: two consecutive full quit/relaunch cold starts produced
new App processes and a visible usable control center each time

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-12 11:10:34 +00:00
xjxandgd-ops 47ba3a44b3 Fix blank Control Center launch and gate releases on live UI (#14)
## Summary

- defer the initial Control Center reveal until SwiftUI finishes the
current render pass
- avoid synchronous AppKit layout/display calls from updateNSView
- add a regression test and bilingual changelog entry
- require exact-commit local Computer Use acceptance before every GitHub
Release
- block tag creation and archive builds when live UI acceptance failed,
is missing, or targets another commit

## Root cause

The initial appearance gate called layoutSubtreeIfNeeded() and
displayIfNeeded() while SwiftUI was rendering its NSHostingView. macOS
reported a reentrant layout fault and skipped the content render,
leaving the installed 0.4.0 Control Center visually blank even though
its accessibility tree was present.

The previous Release path could miss this because packaged UI validation
deliberately ran without a real main window and live Computer Use
verification was optional.

## Impact

The installed macOS App now presents onboarding or Control Center
content normally on launch while still suppressing the pre-theme
title-bar flash.

Release publication is now explicit-dispatch only. Before dispatch, the
exact clean main commit must pass the documented local Computer Use
checklist: visible nonblank launch, all five destinations, bundled pets
and preview, desktop-pet hide/show, window reopen, and quit/relaunch.
The workflow requires the same full commit in host_ui_tested_commit and
host_ui_result=passed before it can create a tag or build archives.
Failed or unobservable checks stop publication and leave the next action
to the user.

## Validation

- ./script/validate_swift_tests.sh --scope all — 735 tests passed
- ./script/build_and_run.sh --run — bundle built, signed, launched, and
synchronized with PetCore; 124 overlay/interaction checks passed
- Computer Use visual verification — first-run onboarding and all three
bundled pet cards rendered correctly
- unified log verification — the fixed build no longer emitted the
NSHostingView reentrant-layout fault
- python3 -m unittest script.tests.test_release_distribution_contracts —
44 tests passed
- ./script/validate_build_scripts_safety.sh — passed
- actionlint .github/workflows/release.yml — passed

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-12 11:28:05 +08:00
xjxandgd-ops 6e5156ed48 Recover merged PRs from authoritative API (#13)
## Summary

- Treat the Pulls list response as closed-PR discovery only.
- Resolve merged state, exact base/head identity, and merge commit from
the authoritative single-PR API before replay.
- Document the recovery trust boundary and include it in the 0.4.0
changelog.

## Root cause

PR #12 merged successfully, but GitHub temporarily returned
merge_commit_sha as null in the Pulls list response while the single-PR
endpoint already returned the correct merge identity. The replay filter
therefore could not locate the merged PR to recover exact-main dispatch.

## Validation

- Red/green closed replay regression test
- 53 Release and CI proof tests
- actionlint .github/workflows/auto-merge.yml
- static build and Release safety contracts
- ./script/validate_pre_push.sh

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-12 03:08:26 +08:00
xjxandgd-ops 1807246b7e Add portable skill management and harden protected delivery (#10)
## What changed

- add App and PetCore portable Agent Pet Maker skill management, with
fd-relative ownership and race-safe install/uninstall
- improve Pi no-model failure projection, session bubble message
selection, child-session filtering, onboarding rendering, and related
App behavior
- delete verified PR source branches with exact leases after merge while
dispatching exact-main CI first
- document direct/train multi-agent delivery, explicit
add/commit/clean/push checks, post-merge worktree audits, and exact-SHA
release proof

## Validation

- full `cargo test -p petcore`
- Swift package suite: 734 tests
- Pi connector privacy tests
- promotion/release Python tests and actionlint
- `./script/validate_pre_push.sh`
- independent specification and safety reviews: no remaining blockers

This PR changes the protected CI control plane, so it is intended for
full CI followed by trusted exact-head squash merge.

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-12 01:49:51 +08:00
xjxandgd-ops c79f73ae93 Require proof from every Rust CI shard (#9)
## Summary
- emit one run/attempt-scoped completion artifact per Rust test shard
- require the exact five-shard marker set before candidate proof, main
source proof, or Required CI can succeed
- document full-workflow rerun recovery and cover missing, extra, and
malformed marker cases

## Evidence
- real run 31501024780 completed successfully while the Jobs API
retained integration-a as queued
- 85 Python workflow/tooling tests
- build/release static safety suites (31 + 8 + 4)
- actionlint for CI, auto-merge, and Release workflows
- Release shell contracts and git diff check

This changes the CI control plane, so the trusted merger must
intentionally refuse privileged auto-merge; merge only through the
documented trusted manual squash path after Required CI succeeds.

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-11 23:07:36 +08:00
xjxandgd-ops 4bc69f63e3 Dispatch exact main CI after protected merges (#8)
## Summary
- merge successful same-repository PR CI through a trusted workflow-run
verifier
- dispatch exact main SHA validation after direct/final-train merges
while keeping task-to-train free of duplicate CI
- bind merge tickets, candidate proofs, replay recovery, Release proof
v3, and ruleset validation to trusted run provenance
- fail control-plane changes closed to trusted manual squash so
PR-authored CI cannot prove itself

## Validation
- 78 focused Python/workflow contract tests
- build and GitHub Release static safety contracts
- source syntax and Release shell contracts
- actionlint for CI, Release, and protected merge workflows
- git diff --check
- independent specification and security/reliability reviews

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-11 14:20:00 +00:00
xjxandgd-ops 5795294b4d Promote exact-tree PR CI proofs (#7)
## Summary

- emit a bounded candidate proof after complete direct or final train PR
CI
- promote that proof to an identical squash-merged `main` tree and issue
a main-bound Release source proof without repeating Rust, Swift,
integration, stress, overlay, or App assembly jobs
- fail closed to complete main CI for missing/ambiguous evidence,
changed parents or tree, expired artifacts, API inconsistency, or
CI/Release proof-control changes
- keep task → train PRs path-scoped with no post-merge train CI or
Release candidate

This rollout changes the proof control plane, so its first merge
intentionally takes the complete main-CI fallback. Later ordinary
direct/train merges can use the fast promotion path.

## Validation

- `actionlint .github/workflows/ci.yml .github/workflows/release.yml
.github/workflows/auto-merge.yml`
- 75 focused Python and Release contract tests
- `script/tests/test_release_shell_contracts.sh`
- `./script/validate_source_syntax.sh`
- `./script/validate_build_scripts_safety.sh --skip-source-syntax
--static-only`
- live read-only selector check against Actions run `31490206146`,
including its empty `pull_requests` API payload

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-11 13:37:38 +00:00
xjxandgd-ops 790046d9a8 Add protected parallel delivery workflow (#6)
## Development lane / 开发通道

- Lane: `direct-to-main` bootstrap
- Base branch: `main`
- Active train: `n/a`
- Owning Agent/session: workflow coordinator

## Change / 改动

- Split authoritative CI into parallel static, contract, Rust lint/test
shards, Swift interaction, stress, overlay, bundle, and stable `Required
CI` jobs.
- Make every ready PR to `main` a complete gate while keeping task PRs
to `gd-ops/train/*` path-scoped.
- Add direct/train worktree coordination, bounded changelog fragments,
protected main/train ruleset automation, and safe same-repository squash
auto-merge.
- Let GitHub Release promote an exact successful main commit, reuse its
source proof, and create a missing release tag only after proof
validation.
- Keep local pre-push validation bounded to basic syntax, formatting,
contracts, and compilation; complete duplicate proof stays in GitHub CI.

This is the one bootstrap PR: the auto-merge workflow and required rules
do not exist on the base branch yet. After this PR passes and is merged
once, the exact `main` push must pass `Required CI`; then the
fail-closed applicator can activate both rulesets and all later ready
`gd-ops/*` PRs follow the automated path.

## Validation / 验证

- `actionlint .github/workflows/ci.yml .github/workflows/release.yml
.github/workflows/auto-merge.yml`
- `./script/validate_source_syntax.sh`
- `./script/validate_build_scripts_safety.sh --skip-source-syntax`
- Exact staged diff was reapplied to a clean detached worktree before
the final validation run.
- 28 validation-tooling tests, 40 release-distribution tests, macOS
build-contract tests, Release shell contracts, and test-isolation
validation passed.

## Risk / 风险

- No product runtime or credential access is added.
- `pull_request_target` never checks out or executes PR code and only
enables auto-merge after API verification of active PR and `Required CI`
rules.
- Full ruleset activation fails closed until the exact remote main
commit has a trusted successful GitHub Actions push run.
- Reversible repository settings are already enabled: auto-merge,
squash-only, update branch, and delete merged branches.

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-11 20:28:02 +08:00
gd-ops 4b7ff4a4d6 Release 0.3.6 2026-08-11 12:08:39 +08:00
lilei 39635e6cda fix: enforce macOS 26 release toolchain 2026-08-11 01:49:50 +08:00
lilei feac498e1d Fix cold startup and refresh pet experience 2026-08-10 23:56:33 +08:00
gd-ops 658dc03749 release: prepare v0.3.2 2026-08-10 18:41:19 +08:00
lilei 600de18ab2 release: prepare v0.3.1 2026-08-09 18:23:42 +08:00
lilei b8fd24c238 release: prepare v0.3.0 2026-08-09 17:18:27 +08:00
lilei 9253de52f8 feat: refine pet production and desktop experience 2026-08-09 11:10:44 +08:00
gd-ops 09b56aee4b feat: refine desktop sessions and pet production 2026-08-06 11:13:52 +08:00
gd-ops c53af605a8 feat: refresh pet production defaults and skills 2026-08-04 12:00:55 +08:00
lilei 6b4de5c619 feat: ship petpack v3 and responsive overlay interactions 2026-08-04 08:19:47 +08:00
gd-ops 2b7d8814c2 feat: complete multi-agent session routing and pet runtime v2 2026-08-01 12:39:53 +08:00
gd-ops c0f1e10b0a Improve agent events, pet imports, and maker skill 2026-07-29 23:25:45 +08:00
lilei 5753e00034 feat: refine agent connections and desktop pet experience 2026-07-29 10:23:42 +08:00
lilei d29898926e feat: add language switching and refine pet animation playback 2026-07-28 02:18:24 +08:00
lilei 3af985e030 feat: strengthen pet generation and agent workflows 2026-07-27 20:00:57 +08:00
gd-ops 408407d4cf feat: improve pet recovery and agent UX 2026-07-24 20:21:30 +08:00
gd-ops 890319bff8 feat: ship coordinated product updates 2026-07-24 14:38:31 +08:00
gd-ops e79ac7b119 fix: isolate exact release asset inventory 2026-07-24 00:45:48 +08:00
gd-ops c39daa2d7c fix: pin release visual validation dependency 2026-07-23 23:39:51 +08:00
gd-ops 7e074dfec8 refactor: simplify product UI and GitHub release 2026-07-23 23:05:34 +08:00
gd-ops 9f46a91a8c fix: close product refactor acceptance gaps 2026-07-23 21:27:48 +08:00
gd-ops 823c1fc61b feat: complete product experience refactor 2026-07-23 19:42:01 +08:00