67 Commits
Author SHA1 Message Date
xjxandgd-ops 421c1bf44f Teach pet skills to recover oversized subjects (#60)
## Summary

- Distinguish a safely downscalable large 12:13 source crop from a
subject that actually overflows its safe geometry.
- Recover overflow with one action-wide geometry correction, a
proportionally reduced provider-only identity reference when needed, and
verified Dreamina 4/6/8-frame multi-row layouts.
- Keep post-return subject fitting forbidden, synchronize Maker and
Studio, and bump the bundled Codex plugin and Skill version to 0.5.9.

## Validation

- ./script/validate_pre_push.sh
- ./script/validate_pet_skills.sh
- 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)

## Development claim / 开发声明

- Domain: maker-generation
- Claim: maker-skills
- Base commit: daee16e7b6
- Release preparation: no
- 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-02T14:07:33Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-09-02 14:48:42 +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
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 4181533050 ci: isolate metadata edits and recover squash commits (#47)
## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `control-plane`
- Base commit: `f7e9f52db946b4edb77cea61b6c67dd0cb6a5538`
- 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-18T19:04:47Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-19 03:17:52 +08:00
xjxandgd-ops f8d8e79f29 fix(ci): wait for merged PR identity (#45)
## Summary

- wait for GitHub's authoritative pull-request response to expose the
newly merged identity after a successful squash
- keep the existing exact base/head/SHA fail-closed checks after a
bounded retry window
- add a workflow contract regression that requires merge observation to
happen after the merge command

## Incident evidence

- protected merge run `32168497595` successfully merged PR #44, then
failed in `Squash or recover only the PR proven by the completed CI run`
- the same failure shape occurred after PR #43
- because merges performed with the workflow token do not trigger a
fresh workflow automatically, the failure skipped exact-SHA main CI
dispatch and source-branch cleanup

## Validation

- `python3 script/tests/test_validation_tooling.py` (58 passed)
- `python3 script/tests/test_release_distribution_contracts.py` (44
passed)
- `./script/validate_build_scripts_safety.sh --static-only`
- `./script/validate_source_syntax.sh`
- `./script/validate_pre_push.sh`

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

## Development claim / 开发声明

- Domain: `release-control-plane`
- Claim: `control-plane`
- Base commit: `964f69f128cd0a41305afe5fd734880dabb47552`
- 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-18T18:05:06Z","train_conflict_resolutions":0}
-->

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-19 02:13:01 +08: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 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 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
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 49c7fc0fc6 chore: update artifact actions 2026-08-10 20:08:35 +08:00
gd-ops e09fa1cab6 perf: skip unused CI build caches 2026-08-10 19:28:52 +08:00
gd-ops c97facacd9 fix: align CI bundle allowlist 2026-08-10 19:24:45 +08:00
gd-ops 8f2eea62b4 fix: prepare CI image dependencies 2026-08-10 19:00:16 +08:00
gd-ops 658dc03749 release: prepare v0.3.2 2026-08-10 18:41:19 +08:00
lilei e62fa1e3a0 fix: isolate release tests from host locale 2026-08-09 18:51:41 +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 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
gd-ops 910f8bfd11 build: add dual-architecture release packaging 2026-07-23 15:14:23 +08:00
gd-ops fdb7f17ee7 feat: update pet animation and interaction contracts 2026-07-23 12:08:03 +08:00
gd-ops 340489bdf5 feat(macos): streamline control center experience 2026-07-22 22:36:40 +08:00
gd-ops 3a29c632fe docs: retire transient project ledgers 2026-07-22 16:41:24 +08:00