diff --git a/.agents/notes/README.i18n.yaml b/.agents/notes/README.i18n.yaml index f6289cf96f..1fa95a5e2d 100644 --- a/.agents/notes/README.i18n.yaml +++ b/.agents/notes/README.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/README.md -README.md: 6872de0a1390fa5a1707b9f464c9e0edeb2da4be -README.zh.md: ced81f77fa904ad0b5cb5219383ef651d87392b8 +/agent-notes: + en: a10991a192c7b55d + zh: c2e5b938ece4f366 +/agent-notes/layout-and-naming: + en: 6b38cb0eb38c2baf + zh: 535234fb23fc8921 +/agent-notes/classification: + en: 055a5e49f9af3dc2 + zh: 9f7c78409cccfded +/agent-notes/archiving-and-deletion: + en: 6c393c7058c787d7 + zh: 70ce9ca3bd9c2133 +/agent-notes/when-to-write-one: + en: 2beb1b94d8fb633c + zh: 889b5542bb771205 +/agent-notes/the-file-format: + en: 601f85df49f80fc7 + zh: acbd0955d6543b13 +/agent-notes/the-file-format/the-header-block: + en: 16fdaab0c74a5bb5 + zh: 2553f145a1eb878f +/agent-notes/the-file-format/the-body-skeleton: + en: 740b7e964b9aec37 + zh: 8551ddef1ffa776a +/agent-notes/the-file-format/the-body-skeleton/proposed: + en: acc0c035c5ca6fd7 + zh: 8a65816dfac9e580 +/agent-notes/the-file-format/the-body-skeleton/implemented: + en: f3523d7e40cc4e2f + zh: 574fa8959f8829a1 +/agent-notes/the-file-format/the-body-skeleton/rejected: + en: f0ff5d05191f2315 + zh: 3f9df0dd01a5cbed +/agent-notes/the-file-format/alternatives-considered-mandatory: + en: fe1bf385aee54033 + zh: 37cb4ea86ec6d99d +/agent-notes/the-file-format/moving-between-lifecycles: + en: d3f18ba194dfb677 + zh: 3d202868deda2f31 +/agent-notes/the-file-format/chinese-counterparts: + en: d72a33b7c63722b2 + zh: f8320c91b1f77ae6 diff --git a/.agents/notes/archived/manifest.json b/.agents/notes/archived/manifest.json index 6fc82fe8a6..5ed6850038 100644 --- a/.agents/notes/archived/manifest.json +++ b/.agents/notes/archived/manifest.json @@ -754,12 +754,12 @@ "bug-fix/2026-09-09-content-sized-diagram-previews.i18n.yaml": "sha256:a4404fe8e35ca5b6371f9cdb58fea6724cf3e7737bb2db8a3a321d534454b17c", "bug-fix/2026-09-09-content-sized-diagram-previews.md": "sha256:5239e98e5c057d6f7e10c3f10a0f67273778d99b0c4f10b31a1921c3c6474b80", "bug-fix/2026-09-09-content-sized-diagram-previews.zh.md": "sha256:c1ee3790a9d5c3561e1d93d5e649afa904c7d19b9d77248c85ef16daccd953e2", - "bug-fix/2026-09-16-movable-mandatory-update-window.i18n.yaml": "sha256:e526ce14ae9557e24364e3686778b130090445ef2152d976b7cc93e76eac6401", - "bug-fix/2026-09-16-movable-mandatory-update-window.md": "sha256:67546cea0b3de2b3e32957a508dbde097d91dd919fe067c8dbecb2c65b50c366", - "bug-fix/2026-09-16-movable-mandatory-update-window.zh.md": "sha256:20a0aade6ee71c89e84d70e23c89bb51e8a38c674d103dd43022feabb8d27be3", "bug-fix/2026-09-11-session-controller-fork-turn-cut.i18n.yaml": "sha256:4442529ced1c8e48d30f7b50c65ff03eb92dce9815beb438cedbf29f234bce47", "bug-fix/2026-09-11-session-controller-fork-turn-cut.md": "sha256:a996f24a896c7fc5d81e015db3eae27d8a46c853287572e815623ce35eae1b12", "bug-fix/2026-09-11-session-controller-fork-turn-cut.zh.md": "sha256:6486f0eacf5067ef9850dc32f1c27b2109a7d4e9e3c498366f5c38742bb53ac5", + "bug-fix/2026-09-16-movable-mandatory-update-window.i18n.yaml": "sha256:e526ce14ae9557e24364e3686778b130090445ef2152d976b7cc93e76eac6401", + "bug-fix/2026-09-16-movable-mandatory-update-window.md": "sha256:67546cea0b3de2b3e32957a508dbde097d91dd919fe067c8dbecb2c65b50c366", + "bug-fix/2026-09-16-movable-mandatory-update-window.zh.md": "sha256:20a0aade6ee71c89e84d70e23c89bb51e8a38c674d103dd43022feabb8d27be3", "feature/2026-06-14-acp-agent-client-protocol.i18n.yaml": "sha256:006795baa43ae962a8d125cc0f1e9f134bc2ee9fb758b6e7669e3fa0126e1918", "feature/2026-06-14-acp-agent-client-protocol.md": "sha256:6828c0af74bb3fb96206ca6b21c0e56a000b50e4744aad4bc2c05092f3a5a31b", "feature/2026-06-14-acp-agent-client-protocol.zh.md": "sha256:ba104e841a1fb84edbd3b6c8119d50445b7785255a7a8d13bb9ac8a2cb4d2e69", @@ -1561,6 +1561,9 @@ "process/2026-08-08-api-remotes-generated-contract-build.i18n.yaml": "sha256:da10469121712bd6ac4fb1f665ca8bd59597a94b56324d2fe4bdef5235498b6e", "process/2026-08-08-api-remotes-generated-contract-build.md": "sha256:8c3d7712cce4913cd3c02d1ac2b87def3f7104a7503681afc3c755896ac45d1f", "process/2026-08-08-api-remotes-generated-contract-build.zh.md": "sha256:e32e1f53c763e769d152c8c41cf8f8977210e82a0d3f7cc7f0421da7e589e9ad", + "process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml": "sha256:5398ef0c48258d3f3a9881e2b34fc4e2086a0b8084b8d7100798dbca6cc39887", + "process/2026-08-08-automatic-translation-pairing-merges.md": "sha256:fb1f3df3246151da920c14fdf195b0cb3bf595a2eed639c84baf70e3f56d36ce", + "process/2026-08-08-automatic-translation-pairing-merges.zh.md": "sha256:9ce7ff6f511ce973637f001b119ce323a5efe0be57cc11d12691aaa36199a8b8", "process/2026-08-08-lightweight-routine-documentation-translation.i18n.yaml": "sha256:f3b44e6148941de9840ef54be60e60ed6ec32ee04b42a1a472e38838b6aa7b14", "process/2026-08-08-lightweight-routine-documentation-translation.md": "sha256:264fe2ee2338053a11fe0f0d5ccf12772897fe9fd4f4a7e8a1d6ba226f853e14", "process/2026-08-08-lightweight-routine-documentation-translation.zh.md": "sha256:3d309e2fc34a6a99bbce4891c32d681e0a23b233791b29a550884f3e753d593c", diff --git a/.agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml b/.agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml new file mode 100644 index 0000000000..48d9fbaaac --- /dev/null +++ b/.agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.md +2026-08-08-automatic-translation-pairing-merges.md: ed693e376d056378b27a8995a6f26fefcdba34b2 +2026-08-08-automatic-translation-pairing-merges.zh.md: 827475a92824c22ee6f4c558de81b645c3c2b8dc diff --git a/.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md b/.agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md rename to .agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.md index ac4e0c1129..ed693e376d 100644 --- a/.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md +++ b/.agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.md @@ -1,6 +1,7 @@ # Agent Note: Automatically compose translation pairing records Status: implemented +Archived: 2026-09-23 English | [中文](2026-08-08-automatic-translation-pairing-merges.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.zh.md b/.agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.zh.md rename to .agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.zh.md index 820ebdbe8c..827475a928 100644 --- a/.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.zh.md +++ b/.agents/notes/archived/process/2026-08-08-automatic-translation-pairing-merges.zh.md @@ -1,6 +1,7 @@ # Agent Note: 自动组合翻译配对记录 Status: implemented +Archived: 2026-09-23 [English](2026-08-08-automatic-translation-pairing-merges.md) | 中文 diff --git a/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml index b62c09f26c..5e1614518c 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-content-block-vocabulary.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.md -2026-06-11-content-block-vocabulary.md: 917dd5225fdc4ab391e9e4629769abbb68095731 -2026-06-11-content-block-vocabulary.zh.md: 9d228eb34dafbdebab44b45dc3b290c9327d3b2b +/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm: + en: 64935f5c8e315004 + zh: 6a9cbb4578eaa437 +/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/problem: + en: 4e81df7bca1c1638 + zh: f7483d180a613237 +/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/decision: + en: 9526dfcf4da1d000 + zh: ea2bf79a02b26b39 +/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/alternatives-considered: + en: 1de2e19e711105e6 + zh: a2cd5a64cc4e9e73 +/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/consequences: + en: 999d10e69e447e44 + zh: 38370da5b900ac30 diff --git a/.agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.i18n.yaml index 6578c0b2a2..d01dd83fdb 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-dev-invariants-over-deep-readonly.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.md -2026-06-11-dev-invariants-over-deep-readonly.md: 0784960397f4d198e136e284ef9232b4ed3e2c2c -2026-06-11-dev-invariants-over-deep-readonly.zh.md: 7183813130560bf82426c8719570b668ba86b7e5 +/agent-note-source-owned-session-immutability-and-dev-mode-invariants: + en: 052aa271e87074c0 + zh: 3ccffc50fc1a28d4 +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/problem: + en: 6ea85a4531d5e59f + zh: b4b568eb347f016a +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision: + en: 6e701ec64c3bbfae + zh: b8ed0f1cb7a0477a +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision/session-owns-immutable-history: + en: ff47e58c377a8dc0 + zh: 5edbe4f3642a3fe6 +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision/derived-requests-remain-detached: + en: 975df574ee6e6df8 + zh: 96d765058482835a +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision/package-owned-invariant-companions-check-relationships: + en: a88e3a896eedca91 + zh: 03e96c7870cba932 +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 76136ef5249c23eb +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered/pervasive-deep-readonly-types: + en: ec54af2931616616 + zh: 5fd9bc469a6fd3a5 +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered/development-only-freezing: + en: 85591197bb62eabf + zh: ba69b9ccf596a6d7 +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered/clone-only-when-deriving-messages: + en: a9848dec50664b92 + zh: 7c558550b054627b +/agent-note-source-owned-session-immutability-and-dev-mode-invariants/consequences: + en: bcccf7d464a070db + zh: eccd442a21e2c99e diff --git a/.agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.i18n.yaml index 868d215253..60451f71cc 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-event-sourced-sessions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.md -2026-06-11-event-sourced-sessions.md: b6d17d2db1d9b489f3d4224683b61e62be485014 -2026-06-11-event-sourced-sessions.zh.md: 11e5740dc2636fc002ed7158167b1dfbb39a971d +/agent-note-event-sourced-sessions-with-derived-message-history: + en: da3abc821101e4b3 + zh: c206fa4830920592 +/agent-note-event-sourced-sessions-with-derived-message-history/problem: + en: 63b684d349a48a15 + zh: 7603f64b445db129 +/agent-note-event-sourced-sessions-with-derived-message-history/decision: + en: d60f161037a10269 + zh: 799a15fae2534ec4 +/agent-note-event-sourced-sessions-with-derived-message-history/alternatives-considered: + en: 73541e0833eb9559 + zh: ddca382d54e498e5 +/agent-note-event-sourced-sessions-with-derived-message-history/consequences: + en: d2ea77a5c8e30949 + zh: 19dc61cb0d29315f diff --git a/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml index 57843018c6..f23e22ad36 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-microkernel-event-taxonomy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.md -2026-06-11-microkernel-event-taxonomy.md: 6cacbc30f29c863de0f8ddfa4df7251a64bc80ca -2026-06-11-microkernel-event-taxonomy.zh.md: 1c7919392b835c491b9dc606d46f638a708d2948 +/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop: + en: e5775d7ec6f1cdc3 + zh: a364697f860a545a +/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/problem: + en: 3bc74749db819441 + zh: 19b5497ed3a9378b +/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/decision: + en: 2153b0cb5773cb08 + zh: 82d7ad1b250cd52d +/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/alternatives-considered: + en: e528c5a20e0c55a3 + zh: 004d3bf06241cc26 +/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/consequences: + en: 6acb80cdaa7c010f + zh: acca672d8094d985 diff --git a/.agents/notes/implemented/architecture/2026-06-13-capability-seams.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-13-capability-seams.i18n.yaml index 92ea844d93..18a5b7dcf2 100644 --- a/.agents/notes/implemented/architecture/2026-06-13-capability-seams.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-13-capability-seams.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-13-capability-seams.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-13-capability-seams.md -2026-06-13-capability-seams.md: 798739b7ef203b10ea657f9e1c178ea7eab094ad -2026-06-13-capability-seams.zh.md: c8f568aa569fe74146f1e7fcc46e00774a39fb84 +/agent-note-capability-seams-service-definition-service-provider-consumer-roles: + en: 4c1875882be571bb + zh: 90ef4d8b27587c6b +/agent-note-capability-seams-service-definition-service-provider-consumer-roles/problem: + en: 3215928333de66f7 + zh: 2c72fcacccf25741 +/agent-note-capability-seams-service-definition-service-provider-consumer-roles/decision: + en: 774c54c0d3d9acad + zh: 7dd4bfaf0ba2181b +/agent-note-capability-seams-service-definition-service-provider-consumer-roles/terminology-seam-names-the-trio-not-the-interface: + en: 8dca727800bea2f4 + zh: 4c4e028520967ca0 +/agent-note-capability-seams-service-definition-service-provider-consumer-roles/alternatives-considered: + en: cf6e4b1f188d9e4a + zh: bf2485a5f539746c +/agent-note-capability-seams-service-definition-service-provider-consumer-roles/consequences: + en: 941d8b343162edea + zh: 70904b0716de151d diff --git a/.agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.i18n.yaml index d9ebd3c9de..30a57122ad 100644 --- a/.agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-13-twin-llm-adapters.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.md -2026-06-13-twin-llm-adapters.md: fe8b0b55e0e027e29eb0920e64a1760d0dc35aee -2026-06-13-twin-llm-adapters.zh.md: 4248b5afeb9f3fd4503914e53203c674e3a80dbf +/agent-note-two-llm-adapters-as-a-design-verification-twin: + en: dcb28a02ba26cb31 + zh: 096d0ab60a3ad638 +/agent-note-two-llm-adapters-as-a-design-verification-twin/problem: + en: feb8f5213be03a5c + zh: 5ca85048792db7d8 +/agent-note-two-llm-adapters-as-a-design-verification-twin/decision: + en: 0dd6ebb29aebc164 + zh: 20065ae72f4d131d +/agent-note-two-llm-adapters-as-a-design-verification-twin/alternatives-considered: + en: c523a9b402588189 + zh: bced37eb1040360a +/agent-note-two-llm-adapters-as-a-design-verification-twin/consequences: + en: 71cc34560fc2e012 + zh: 91ea73e3e009a9a5 diff --git a/.agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml index f827897a1e..995fba81fe 100644 --- a/.agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-14-session-persistence.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-14-session-persistence.md -2026-06-14-session-persistence.md: d79975e1fedb6efcd0e4ea83bc799bb158082e41 -2026-06-14-session-persistence.zh.md: f70b8005a254cc6a9ea8ada31c32e5552ee0c8b2 +/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent: + en: d7cf18702f4ed830 + zh: 7e0cc6db7c90a7bd +/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/problem: + en: fa1ffb258aee90f6 + zh: c25cead52e72f97d +/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/decision: + en: a7076073971de601 + zh: 5ea9a87705340d91 +/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/alternatives-considered: + en: e5c9929ca92cc12e + zh: 3e0668f6a822577c +/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/consequences: + en: 4f00ed0b90442440 + zh: 994a5b03c862178b diff --git a/.agents/notes/implemented/architecture/2026-06-18-session-surface.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-18-session-surface.i18n.yaml index 1939ff2f17..db7edf6873 100644 --- a/.agents/notes/implemented/architecture/2026-06-18-session-surface.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-18-session-surface.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-18-session-surface.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-18-session-surface.md -2026-06-18-session-surface.md: 26780d54a1ea12283900572c6fd0e8f740de5524 -2026-06-18-session-surface.zh.md: 328a9ee9f1bed9c52996cfd307549a7745e16d4b +/agent-note-session-surface-an-ordered-projection-over-the-event-log: + en: 9ea7a8765e7f3259 + zh: 17e0d51645f01edd +/agent-note-session-surface-an-ordered-projection-over-the-event-log/problem: + en: 4f7a9d20d71a6ab3 + zh: 958abbdfefec4f21 +/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision: + en: a9944b568ec51fad + zh: 6717d30db31b81d7 +/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/top-level-surface-metadata-on-sessionevent: + en: 788fc16ecdedc252 + zh: 14d05c2a1272de5d +/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/surfaceop-two-operations: + en: ff075eec0881094a + zh: 1f7768f28b8996d5 +/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/surfacemanager-delta-based-not-full-rebuild: + en: 0b10fd9c5166d17b + zh: 02de01f70c03f70e +/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/persistence: + en: 9bb1f81b86b24760 + zh: fe4948645dd0c66d +/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/crash-recovery: + en: ee71f9c0f12b6a0e + zh: 403b1723f808391d +/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/invariants: + en: 24b1342fb3b5be29 + zh: a62692b0250c072a +/agent-note-session-surface-an-ordered-projection-over-the-event-log/alternatives-considered: + en: 193157129e65e487 + zh: a0a73b8a9cbd78e6 +/agent-note-session-surface-an-ordered-projection-over-the-event-log/consequences: + en: 801b67f8da564a22 + zh: 3c0433ed07083050 diff --git a/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml index 22bf3c01c4..ff239e85c9 100644 --- a/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml @@ -1,6 +1,58 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-20-generic-long-running-tool-runtime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md -2026-06-20-generic-long-running-tool-runtime.md: 5960eb268656d7e316c763631451db1c6d1c6e49 -2026-06-20-generic-long-running-tool-runtime.zh.md: ea63ae82962a735b3a96e1803708172a33f83e9d +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools: + en: 56e269b2a2839796 + zh: 8fc971036985ac0d +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/problem: + en: 70e26df62568c337 + zh: a9e6f5f8a5482d0a +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/decision: + en: 277869395ad6f792 + zh: 93f13a97d52f10a5 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/runtime-contract: + en: eeb7ed8eec13668a + zh: 3f236f63c72fbba7 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/authorization-and-owner-lifecycle: + en: 3819a73ca70ecdfd + zh: c1a4f461a4e45978 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/service-api: + en: a1a884816aac3d7f + zh: b21129e5cd93b9a1 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/model-facing-control-api: + en: dd3f4d85d0ec136f + zh: ca4209cb856271dd +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/producer-opt-in: + en: a39343bf6f655051 + zh: d9894d39e7f4d6e1 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/producer-integrations: + en: ae4a6d6e0d83d3bd + zh: 9072890ba9374426 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered: + en: 6119e2aff3b6be5a + zh: e01a6c669a9ec6aa +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/per-capability-control-tools: + en: 9781c302dc72fd8e + zh: a78e1dd8da4d8ca8 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/an-immediate-abstract-task-runtime-backend: + en: 404a5c7c45a71a55 + zh: 213621e4a9618a9c +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/consumer-owned-authorization-or-cleanup-events: + en: d99de803718d9ca6 + zh: e03a97314851ed0f +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/blocking-output-or-a-separate-wait-tool: + en: e3beca50b6a57ce0 + zh: a77663b817d33247 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/runtime-owned-output-sinks: + en: 42eeeba9d84ae681 + zh: 1d540f9740675bee +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/random-ids-promotion-or-lifecycle-session-events: + en: e706b1b57241d3d2 + zh: 1779b7fa05f48283 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/testing: + en: e891db1723828da8 + zh: 657a62ed595bd081 +/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/consequences: + en: b95ecd6052465ad3 + zh: 1527c38d1b4631d6 diff --git a/.agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.i18n.yaml index 0956b2aa0b..2b8a5f380d 100644 --- a/.agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-21-bounded-llm-request-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.md -2026-06-21-bounded-llm-request-recovery.md: b0a4ebb11b76c4c0068490c9924a88b80a8bc99f -2026-06-21-bounded-llm-request-recovery.zh.md: e8c25f9f6410dc12e34a0272e01e874431624c28 +/agent-note-bounded-recovery-for-transient-llm-request-failures: + en: fb8e336ecd4bf571 + zh: 23e40e4cb224163f +/agent-note-bounded-recovery-for-transient-llm-request-failures/problem: + en: 83a361538a092dae + zh: e8f33cb95d0d3e09 +/agent-note-bounded-recovery-for-transient-llm-request-failures/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/preserve-failure-facts-without-embedding-policy: + en: 943322e6cdbfa440 + zh: 82288531f6194ed2 +/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/put-retry-policy-on-the-existing-failed-step-extension-point: + en: ed4d295378d94a26 + zh: 1fee5ef4947bac8f +/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/make-one-layer-own-visible-attempts: + en: 57dbdd385f48bb3e + zh: 5e15463fae4be582 +/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/bound-stalled-streams-where-they-can-be-stopped: + en: f7369086e87192b9 + zh: e2839ed8cc5c23b8 +/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/keep-attempts-separate-in-the-existing-log: + en: 8f57db4bfd6e1c22 + zh: 67ac62217bb68570 +/agent-note-bounded-recovery-for-transient-llm-request-failures/out-of-scope: + en: 985720529b56cda2 + zh: 8a649bfa9cd8d93f +/agent-note-bounded-recovery-for-transient-llm-request-failures/alternatives-considered: + en: a6d0306740d470ee + zh: 700bd4b0aa58f3e8 +/agent-note-bounded-recovery-for-transient-llm-request-failures/verification: + en: db343f335a9d7cad + zh: 49b8300de55dcfeb +/agent-note-bounded-recovery-for-transient-llm-request-failures/consequences: + en: 08659e8606455ada + zh: 862080f8df5f28ec +/agent-note-bounded-recovery-for-transient-llm-request-failures/related: + en: e85a6ad7387c881b + zh: bb8fb4173ffe613d diff --git a/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml index 2b6c63d334..0856d5ac56 100644 --- a/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-21-mandatory-app-attribution-headers.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.md -2026-06-21-mandatory-app-attribution-headers.md: 9e0c029dc03c722512680a563c24e470128ee322 -2026-06-21-mandatory-app-attribution-headers.zh.md: 1427daf8f6065ec2dee324075a8381a625d9e960 +/agent-note-mandatory-user-agent-attribution-for-provider-requests: + en: 3f804e0236d13aba + zh: ef8b1b7b9c3d8376 +/agent-note-mandatory-user-agent-attribution-for-provider-requests/problem: + en: f65797760084b93a + zh: d1fb36ef61a93003 +/agent-note-mandatory-user-agent-attribution-for-provider-requests/investigation: + en: 5ea11f54f507ba64 + zh: 22a83a0714a2fda3 +/agent-note-mandatory-user-agent-attribution-for-provider-requests/decision: + en: b3e29e609e3f0966 + zh: e3df0cb13df1cd5d +/agent-note-mandatory-user-agent-attribution-for-provider-requests/verification: + en: 567737dbccdb3a2a + zh: be92a5303247b889 +/agent-note-mandatory-user-agent-attribution-for-provider-requests/alternatives-considered: + en: 016678c52ef64e51 + zh: a113b57b9e9ddeb5 +/agent-note-mandatory-user-agent-attribution-for-provider-requests/consequences: + en: a9010e68445a0008 + zh: 1ec6104ab2865919 diff --git a/.agents/notes/implemented/architecture/2026-06-24-web-capability-seam.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-24-web-capability-seam.i18n.yaml index bbdb39100a..490d5c5d24 100644 --- a/.agents/notes/implemented/architecture/2026-06-24-web-capability-seam.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-24-web-capability-seam.i18n.yaml @@ -1,6 +1,76 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-24-web-capability-seam.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-24-web-capability-seam.md -2026-06-24-web-capability-seam.md: 8c6c088ea5d7345f9955892b2d6054cfae518bbd -2026-06-24-web-capability-seam.zh.md: 4921c4a4647d180dbb00e6493a19d38584f99bdc +/agent-note-web-capability-seam-stable-tools-over-multiple-providers: + en: ca120635fc40431c + zh: 6be7c5ae3c86cdcc +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/problem: + en: c8b932b02a4e1c80 + zh: 96c466be1a521f3f +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/decision: + en: b57eb0f268033ff1 + zh: 4143382a50181414 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/package-topology: + en: 5ea3ddfae82df181 + zh: 2d05d95e51081696 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/ctx-web-contract: + en: b432f80a424c3e49 + zh: faa26925fdd98387 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/provider-availability-and-selection: + en: dff78c46432311a1 + zh: 58d5db4c3c85b886 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/search-request-and-result-schema: + en: ec3703b7e7c6b23d + zh: 325755e6e90092da +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/fetch-request-and-result-schema: + en: f734fdc57a6546c9 + zh: 027c28cbc584a8c2 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/tool-consumer-behavior: + en: 62127883453dd79c + zh: 01503a8177a0ddab +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/errors: + en: 3440f2b34b93f4a1 + zh: 57a8f784c7e26eff +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/testing: + en: 7f73699ac4459432 + zh: c16be49ac50c34c8 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 76136ef5249c23eb +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/let-each-provider-register-its-own-model-facing-tool: + en: e0d84a9b1b9c2123 + zh: 9e116a7b96751563 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/put-provider-dispatch-directly-in-dsh-tool-web: + en: dc01d014d03b49d2 + zh: b956b02f41c62682 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/split-search-and-fetch-into-two-seams-dsh-search-dsh-fetch: + en: 3fb72ba3e554f20a + zh: aff5f0add5773388 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/choose-the-first-registered-provider: + en: 1800706ea0f6b90b + zh: ced985b7657e2d7f +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/treat-firecrawl-exa-tavily-parallel-extraction-as-fetch: + en: fc22e6a8bfaeaa20 + zh: 64032ea6ab61b836 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/mirror-claude-code-s-url-prompt-webfetch-shape: + en: 56a080de39e96056 + zh: ae4d070aa7657503 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/validate-dns-and-then-call-an-ordinary-fetch: + en: aa6c1e7e6374a875 + zh: 045c8af6cd44c3e1 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/block-private-looking-hostname-strings-without-pinning-resolved-addresses: + en: 3d906f3056733479 + zh: d652723eb5372007 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/require-per-call-approval-before-public-fetches: + en: f8d1fc8e9c9659cf + zh: da5792520e35cba0 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/consequences: + en: 12fd20ba54818215 + zh: c1ca000b13666701 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/deferred-work: + en: 48b7b8e7310cd56b + zh: d406cd6a8a649e58 +/agent-note-web-capability-seam-stable-tools-over-multiple-providers/open-questions: + en: 63848c6ef9a6ab44 + zh: 041b340802091e60 diff --git a/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml index 7db4727f48..3addc01168 100644 --- a/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-26-file-context-as-event-gate.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.md -2026-06-26-file-context-as-event-gate.md: 2943f11190533f84f3aebea0a25a88372d1204f1 -2026-06-26-file-context-as-event-gate.zh.md: 053f4269b13c8583def01c144badd17b10a5a41a +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface: + en: 950d6bb4d83b39d8 + zh: b40458972583b12b +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/problem: + en: 765a679e88ecda60 + zh: fccabc8ee516ea00 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/decision: + en: eb8355d4b7a6c66b + zh: 712c6f932f26a0d3 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/the-policy-is-enforced-by-provider-cas-not-by-dsh-fs-observation-policy-stat: + en: 2edc42b8210c995b + zh: 48f4354c9ec625ee +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/provider-contract-change-the-version-guard-is-optional: + en: a282600f92568e07 + zh: 3e6b2bec22c170c6 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/event-vocabulary-owned-by-dsh-fs: + en: f57494c21daf90ea + zh: 1a1f8623dc0cbef3 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/tool-contract-dsh-tool-fs: + en: c7f4457a83739520 + zh: f2d55d018c7dab4f +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/policy-plugin-contract-dsh-fs-observation-policy: + en: a239deb5dde631df + zh: 68cc6c954b247596 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/bare-provider-behavior-no-dsh-fs-observation-policy: + en: 5aed537454b78157 + zh: 9e8e7108be6a9537 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/supersedes: + en: 5cc21706fd0f00ad + zh: 2b51da75a95f1777 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/verification: + en: 1e3de2836160b4c2 + zh: a8af173d161f0949 +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/alternatives-considered: + en: 768c09662714cf25 + zh: cb641e8a77a2e32c +/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/consequences: + en: a1c00220fa5c6ce1 + zh: 4691374274aa8df9 diff --git a/.agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.i18n.yaml b/.agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.i18n.yaml index 4a4342d1f2..9afc68c549 100644 --- a/.agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.i18n.yaml @@ -1,6 +1,16 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-30-event-domain-semantics.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.md -2026-06-30-event-domain-semantics.md: 7e0aee220a62777ebe1d8f6a5018aba0f5fa20ee -2026-06-30-event-domain-semantics.zh.md: 14568c7a4660c42cecc47f094373d299380fa563 +/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel: + en: e7cdaa7a6029c259 + zh: ed13f8158ee0eaeb +/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel/problem: + en: 1222c2b55882b1e5 + zh: f81f481f5eb9a684 +/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel/decision: + en: ccc0fed9b7388112 + zh: 3cc527b11affd941 +/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel/consequences: + en: e0c5aa60322e67a1 + zh: 7495550f0c863eda diff --git a/.agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.i18n.yaml index 933b3d2826..6e01984aee 100644 --- a/.agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-02-tool-render-intent-union.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.md -2026-07-02-tool-render-intent-union.md: 52626d3d9200146df95aee7836d37bbaf7e6a9ec -2026-07-02-tool-render-intent-union.zh.md: bc91b89c53c3c43b6c483dc0d4876a00f5a936b7 +/agent-note-tagged-render-intent-union-for-tool-call-presentation: + en: 599dd6f91059580e + zh: b6a46767bb4198e6 +/agent-note-tagged-render-intent-union-for-tool-call-presentation/problem: + en: 3a4b92dca651b979 + zh: 6b10ce7ba3681180 +/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision: + en: aff6d789bde63f17 + zh: 73782526b46a3ee5 +/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/why-a-tagged-union-beats-the-field-bag: + en: ed7b15039050e65e + zh: a719562b5fcdbd4e +/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/producer-mapping: + en: c87f22a29caef002 + zh: 7bfd28c1df80b8a1 +/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/terminal-fallback-ownership: + en: 0bb2f60726afc4d9 + zh: 60040141447b4a2e +/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/purity-preserved: + en: 1ba6a480967c524d + zh: 90535e843f346bcf +/agent-note-tagged-render-intent-union-for-tool-call-presentation/alternatives-considered: + en: 2cd4801f3162227b + zh: 76afaa23bc2b9eb0 +/agent-note-tagged-render-intent-union-for-tool-call-presentation/consequences: + en: 81d8366d826285c2 + zh: b437b862794c146e +/agent-note-tagged-render-intent-union-for-tool-call-presentation/non-goals: + en: e9d60967a9b3f9bd + zh: 6dfa9ac30d847879 +/agent-note-tagged-render-intent-union-for-tool-call-presentation/related: + en: fe27f777b3728fa4 + zh: 4b648dbf731ace00 diff --git a/.agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.i18n.yaml index 57dba7f52b..670619cca9 100644 --- a/.agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-05-prompt-variables-and-tool-guidance-ownership.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.md -2026-07-05-prompt-variables-and-tool-guidance-ownership.md: 8f5542cb09930e62fd1e26960166fbdd6d3f6745 -2026-07-05-prompt-variables-and-tool-guidance-ownership.zh.md: 348ae36cf6549d412adab1d3cdb5cc03f0badd01 +/agent-note-prompt-variables-and-tool-guidance-ownership: + en: 6f8b4a9d26ab3e50 + zh: 9741e5718e647f0a +/agent-note-prompt-variables-and-tool-guidance-ownership/problem: + en: 8ccef8fbd9260dfe + zh: 106b2bafe969c676 +/agent-note-prompt-variables-and-tool-guidance-ownership/decision: + en: c551d888282d9c73 + zh: 889b5ca3cdf25aff +/agent-note-prompt-variables-and-tool-guidance-ownership/decision/assemble-context: + en: 46e67248692e333a + zh: 51c5f2c6152c94d7 +/agent-note-prompt-variables-and-tool-guidance-ownership/decision/prompt-variables: + en: 04b623ed2879fdf1 + zh: c111be62834fda93 +/agent-note-prompt-variables-and-tool-guidance-ownership/decision/persona-as-the-order-0-section: + en: c2d32c0ac5d28759 + zh: 59cd252ba6da6e59 +/agent-note-prompt-variables-and-tool-guidance-ownership/decision/tool-guidance-ownership: + en: 308c0d2ef4e41f56 + zh: d38f84a517da20df +/agent-note-prompt-variables-and-tool-guidance-ownership/decision/the-subagent-conversation-history-descriptor: + en: 1cb9644f22918749 + zh: fb9fdee133159ab2 +/agent-note-prompt-variables-and-tool-guidance-ownership/alternatives-considered: + en: 9a114359d2e8988b + zh: ce39453408b2af7f +/agent-note-prompt-variables-and-tool-guidance-ownership/out-of-scope: + en: bbfecc70d0b457fe + zh: 7f207a37a86484f4 +/agent-note-prompt-variables-and-tool-guidance-ownership/shipped-invariants: + en: 31ba63101fca5790 + zh: af4ceefab2033142 +/agent-note-prompt-variables-and-tool-guidance-ownership/consequences: + en: 993f17bf35f6a2e0 + zh: acb429176f0eebcc diff --git a/.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml index ac7f2acd4e..987abc5f0e 100644 --- a/.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-05-reconstructable-requests.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.md -2026-07-05-reconstructable-requests.md: f47d0938b91edf6c9b544223ac44925f02dd8c1f -2026-07-05-reconstructable-requests.zh.md: d2499a6264a3e6bebf31944d8eb056265e082c68 +/agent-note-every-llm-request-is-reconstructable-from-the-session-log: + en: 115dd45f40b0d7d8 + zh: 536b5a0399e7d06a +/agent-note-every-llm-request-is-reconstructable-from-the-session-log/problem: + en: f8f31da854a5fe2e + zh: ef88856c2c7bdfb8 +/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision/the-principle: + en: 6da15cf986d59a91 + zh: 40282908b54295f9 +/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision/the-mechanism: + en: 7d86e5058dbab2fb + zh: 9a97481325c8eded +/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision/the-minicode-shape-adopted-with-the-event-log-as-the-source: + en: e5f2ffaa3d7de0cc + zh: 5ba6b36787a0e189 +/agent-note-every-llm-request-is-reconstructable-from-the-session-log/alternatives-considered: + en: 96f19ecf38fae991 + zh: 9692252135ef3476 +/agent-note-every-llm-request-is-reconstructable-from-the-session-log/consequences: + en: 0d2e97bc421e67cc + zh: 0a000a69b8cc4b4e diff --git a/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml index cc278292d9..2848f7cd4b 100644 --- a/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-05-windows-jsonl-durable-publish.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.md -2026-07-05-windows-jsonl-durable-publish.md: 546cde6086f3c84e22b4d4de144a48bb3425cd4e -2026-07-05-windows-jsonl-durable-publish.zh.md: b99032e9d7e72e2028f39c5af91659278fd81343 +/agent-note-windows-native-durable-jsonl-publication: + en: db7fe80708911f2f + zh: 42c6639defea2bde +/agent-note-windows-native-durable-jsonl-publication/problem: + en: dcc3c6238131d302 + zh: 4d4e8513a4069af3 +/agent-note-windows-native-durable-jsonl-publication/decision: + en: 385565b209f1e739 + zh: 0eab0997c49a3c33 +/agent-note-windows-native-durable-jsonl-publication/alternatives-considered: + en: 83d5bf5781f89e29 + zh: 068835993789e09d +/agent-note-windows-native-durable-jsonl-publication/consequences: + en: 4be0ad03a334c257 + zh: 95d473ed5b94e270 diff --git a/.agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.i18n.yaml index b2ebf2057f..9db3e2596d 100644 --- a/.agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-06-timeout-deadline-library.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.md -2026-07-06-timeout-deadline-library.md: 6f726938731f18386105ff1180c79fef981c95bf -2026-07-06-timeout-deadline-library.zh.md: 48bd7b4b91efd0045c03e3e1e1e9e37656b4dcf6 +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability: + en: 4a9921fef5e65cc8 + zh: 672cd27d68310cb1 +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/problem: + en: 110ff68b35bd43cb + zh: f1cea15fb29a9ae9 +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision: + en: 18645d82d9e40107 + zh: 73e510f1ed1106e6 +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision/the-library-api: + en: c62681afef60a0db + zh: 69827b4b3165b3da +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision/the-division-of-labor: + en: 263c8e17bbc87ba0 + zh: d75a74f47713e79f +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision/how-each-capability-consumes-it: + en: 333eab4967d753ec + zh: dd7537bb82cc717f +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/consequences: + en: 832f4dbd93a47f94 + zh: 65ada43f9f23a39b +/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/alternatives-considered: + en: 7b3445622becbd36 + zh: bb358acf2ff28e26 diff --git a/.agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.i18n.yaml index 4cacefaca8..617b3a053b 100644 --- a/.agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-07-tool-call-timeout-policy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.md -2026-07-07-tool-call-timeout-policy.md: 60d82c1d591f0a32350b1a21ed74e148c4c93576 -2026-07-07-tool-call-timeout-policy.zh.md: 49ca7f397d15c1a351cba4837d4d531e54120ea6 +/agent-note-tool-call-timeout-policy-as-a-plugin: + en: 46fa7d1eac4fe061 + zh: 7a62f8f7b1c66722 +/agent-note-tool-call-timeout-policy-as-a-plugin/problem: + en: b5fffa80b58fb184 + zh: aadf28f95924b1ad +/agent-note-tool-call-timeout-policy-as-a-plugin/decision: + en: 04889f664ab7657d + zh: 2af5913f5e9c1927 +/agent-note-tool-call-timeout-policy-as-a-plugin/decision/the-tools-execute-around-dispatch-extension-point: + en: 8c3b46fa8a48a863 + zh: 662eb09bb7542be8 +/agent-note-tool-call-timeout-policy-as-a-plugin/decision/the-timeout-policy-plugin: + en: 96f5932514a33e41 + zh: 5951d9451ccef1bf +/agent-note-tool-call-timeout-policy-as-a-plugin/decision/existing-tool-adaptation: + en: 43add9b1f723ce89 + zh: f3ee56f97faa2e60 +/agent-note-tool-call-timeout-policy-as-a-plugin/alternatives-considered: + en: dc6da8743b4266fb + zh: 5c28667d952b230a +/agent-note-tool-call-timeout-policy-as-a-plugin/consequences: + en: f7429a5c1fe6b6a1 + zh: 748401be79f89b05 diff --git a/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.i18n.yaml index aff7b32029..cfb0644c92 100644 --- a/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-08-agent-scope-contexts.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.md -2026-07-08-agent-scope-contexts.md: 45e635b7bc3138d4e90a25a06ff23b3b57a9415e -2026-07-08-agent-scope-contexts.zh.md: aac860734e744843c3b9e7d55e5bc7a150763090 +/agent-note-the-agent-is-a-registration-scope: + en: f767894b8308f1a0 + zh: 4ff0aead6ee4e27b +/agent-note-the-agent-is-a-registration-scope/problem: + en: 87634b46a5642328 + zh: 2adce8b041626437 +/agent-note-the-agent-is-a-registration-scope/decision: + en: ac58e62f780b0879 + zh: 6b077226de04a8fa +/agent-note-the-agent-is-a-registration-scope/decision/registration-origin-chooses-visibility-and-cleanup: + en: 1ec8e54543272e1b + zh: b5b1695a805574a2 +/agent-note-the-agent-is-a-registration-scope/decision/the-operation-chooses-the-view: + en: 2e236d399efdc0b2 + zh: 00a7ba20f90862c6 +/agent-note-the-agent-is-a-registration-scope/decision/scoped-events-keep-routing-separate-from-event-data: + en: df5f5e4c1de44474 + zh: d851c02959d02380 +/agent-note-the-agent-is-a-registration-scope/decision/creation-publishes-last-and-disposal-revokes-last: + en: f46920b4945e0e6d + zh: 870a157205883144 +/agent-note-the-agent-is-a-registration-scope/security-and-authority-are-non-goals: + en: 5ffc5a8f65ce7dfe + zh: 3362f236356a8033 +/agent-note-the-agent-is-a-registration-scope/alternatives-considered: + en: bf43310538280f62 + zh: e4940ff47c5d47b5 +/agent-note-the-agent-is-a-registration-scope/alternatives-considered/pass-an-agent-option-to-every-registration: + en: 37e7487b1f1eb87a + zh: eeddbaf21eee7ebc +/agent-note-the-agent-is-a-registration-scope/alternatives-considered/filter-events-while-keeping-registries-global: + en: 7eb2628d51ea9ed0 + zh: e58f05faf0e95712 +/agent-note-the-agent-is-a-registration-scope/alternatives-considered/create-one-service-graph-per-agent: + en: 2fd1c41c3d1bc6ca + zh: cffad44a2c69330e +/agent-note-the-agent-is-a-registration-scope/alternatives-considered/inherit-parent-registration-scopes: + en: 01f989446aab1cf1 + zh: 8f5c9018b7b84c94 +/agent-note-the-agent-is-a-registration-scope/consequences: + en: 65c8f47d1607b276 + zh: 950b86b4682f7a0e diff --git a/.agents/notes/implemented/architecture/2026-07-08-tool-output-spill-files.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-08-tool-output-spill-files.i18n.yaml index d2f8d60d2d..1325797191 100644 --- a/.agents/notes/implemented/architecture/2026-07-08-tool-output-spill-files.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-08-tool-output-spill-files.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-08-tool-output-spill-files.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-08-tool-output-spill-files.md -2026-07-08-tool-output-spill-files.md: e32aec72f423dff33a29d9012c0f71c9cfbd24fb -2026-07-08-tool-output-spill-files.zh.md: 2941fc516723e72b5d5670e674ce612f3cf581cc +/agent-note-tool-output-spill-policy: + en: 06b99197145a4080 + zh: 698a61dcd2385985 +/agent-note-tool-output-spill-policy/problem: + en: 858cbb874e213697 + zh: 1693b618886ac42d +/agent-note-tool-output-spill-policy/decision: + en: 89536b0d2d7b4c92 + zh: 341240f445885549 +/agent-note-tool-output-spill-policy/decision/spill-seam: + en: 1e92bc9a0548def9 + zh: c99cf6878981ba71 +/agent-note-tool-output-spill-policy/decision/spill-policy: + en: 3c49c0246188c513 + zh: 4b6749c30726903d +/agent-note-tool-output-spill-policy/showcase-web-fetch: + en: d5c334b50f458925 + zh: 7631307b5d9fbc55 +/agent-note-tool-output-spill-policy/relationship-to-retention-and-early-spill: + en: 7314ba8b0a03c0d9 + zh: 8429f79ff3a7bd1f +/agent-note-tool-output-spill-policy/non-goals: + en: f82b5399ecddd8a1 + zh: 9675b58631bb5c90 +/agent-note-tool-output-spill-policy/deferred: + en: 094f8c71672ea726 + zh: 252dbe825d6e34ca +/agent-note-tool-output-spill-policy/testing: + en: c98759345e1aebfa + zh: d1faeadb99bd748a +/agent-note-tool-output-spill-policy/consequences: + en: e023260e52a246d6 + zh: 2e49237e564a83da +/agent-note-tool-output-spill-policy/alternatives-considered: + en: d53fb144141de557 + zh: 1b851eb64c421803 diff --git a/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml index ec2f5318d6..ee57a4b8cf 100644 --- a/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md -2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md: 89c8917484c11057ff2e6b55e2311e83f724f7ed -2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md: 48f954f2c4720894548ecab387965d3a3d1799b0 +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery: + en: 8bfe0d8b79d9840f + zh: 6921dc88e5ef9c83 +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/problem: + en: 036da3e545debe29 + zh: 82e031a3120ca36c +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision/successful-pressure-runs-at-the-next-pre-step-boundary: + en: 5f5a656b38730ec6 + zh: aece66b85cc610cf +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision/request-recovery-is-limited-to-the-final-model-boundary: + en: fb7da851bf6a020e + zh: b40dc932d6c3101c +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision/compactionengine-exposes-intent-not-token-accounting: + en: be9505b3d73c7f6b + zh: ed753f1afec2787a +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/testing: + en: b0e1704bd3724301 + zh: 2279353ff615f183 +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/alternatives-considered: + en: 3cb5363732ef5758 + zh: 07746411cc80878f +/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/consequences: + en: dfe515fb04127eb5 + zh: 1924b2e1e9997910 diff --git a/.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml index e09f7db568..5e078a7885 100644 --- a/.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-10-single-file-executable-sdk-runtime-distribution.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md -2026-07-10-single-file-executable-sdk-runtime-distribution.md: 7260d11c84f8fb07cf6c4691357f92e0d00fd8f3 -2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md: 653fb3d9b782d9010f693e4af8ad94475abb9d94 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe: + en: 00b5d91d3e44a9f8 + zh: eabd3c4b338249b3 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/problem: + en: 112178b76e5209f6 + zh: 68726254ae530566 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/packaging-route-yao-pkg-pkg-s-sea-mode: + en: f1c2b60e9474111d + zh: 5de398b5e8554429 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/the-serving-interface-is-a-plugin-inside-the-dsh-application: + en: 5fdde26e9e8c6108 + zh: 629559d733c1f0c5 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/plugin-resolution-the-vfs-holds-a-real-package-tree-the-closure-manifest-is-the-deploy-root: + en: c35ea4b858448b49 + zh: 1f8ff0a9f82ca881 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/build-pipeline-and-artifacts: + en: 53ba44431d2ce411 + zh: 4159475549273422 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/python-sdk-distribution-two-carriers-exe-for-production-node-for-development: + en: 9bd60549d4a52ec0 + zh: e2343b7210212ee0 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/naming-lineage: + en: 31a5aecb8bf828bb + zh: 2dffb6fd2e0f8194 +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/packaged-workflow-and-code-execution: + en: 0426f598f3f44e64 + zh: fc66728e17f3bcfb +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/testing: + en: b3c9820f4dc7c6c8 + zh: 3b5768ef1770bfcb +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/alternatives-considered: + en: 50d965ca81a401ba + zh: 0c6296245b97b9ac +/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/consequences: + en: 601a72b3a7a91fe4 + zh: 5baaa866e789923e diff --git a/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml index 16591b4f3e..6d5a779689 100644 --- a/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml @@ -1,6 +1,157 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-12-agent-scope-runtime-design.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.md -2026-07-12-agent-scope-runtime-design.md: b9b2c837f560c2b8b98da37e3656caf298b705e2 -2026-07-12-agent-scope-runtime-design.zh.md: 4b94d1b8449bd619c47f6bee0712ec8ed0b39593 +/agent-note-agent-scope-runtime-design-and-correctness: + en: b63ecbd21fc1f427 + zh: 4990d96d76888802 +/agent-note-agent-scope-runtime-design-and-correctness/problem: + en: ae7b688bd991a6df + zh: 73b6b28755852054 +/agent-note-agent-scope-runtime-design-and-correctness/decision: + en: cfd6abca8404c7d4 + zh: a9372aae85e49f55 +/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall: + en: 4d4bdb629a57139d + zh: 7b4d21d9eb42d94b +/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall/a-context-is-an-ownership-path-through-one-service-graph: + en: 201a1882518455e2 + zh: 830e25eab7ed37db +/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall/fibers-and-effects-make-cleanup-structural: + en: d0ef6e1b5d453350 + zh: 4a774ac9daf20849 +/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall/receivers-route-listeners-waterfalls-compose-decisions: + en: 594e198a8b566049 + zh: 50378e7a2a533dff +/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer: + en: fa59d22549e9e44a + zh: 80904729042e87b3 +/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer/scope-identity-uses-object-identity: + en: 3a05a7bfb2197f58 + zh: fbb599031788b70b +/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer/registry-reads-overlay-one-exact-layer: + en: 28636ae6d55935d7 + zh: 33a989f049de2f3e +/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer/fused-dispatch-helpers-prevent-subject-drift: + en: 638e3711206e3c41 + zh: 61d370123d30c1ed +/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation: + en: ef58215c8554180b + zh: 44571074148d2467 +/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/registry-entries-are-the-only-live-identity-records: + en: 092b49671e83df98 + zh: 330ea6e45c4deb99 +/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/the-transaction-owns-preparation-before-awaiting-it: + en: 3940920908ec6066 + zh: 888e36ca43611d30 +/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/setup-is-trusted-composition-inside-a-private-world: + en: 40a73b8eede856ee + zh: 7dab8f2548cb92ea +/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/publication-has-one-ordered-commit-path: + en: 227eff7a5adacd0e + zh: b9ee423c2dd4212f +/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/teardown-preserves-work-before-revoking-registrations: + en: 1cbe77cff192815d + zh: 7f517936a8aa469e +/agent-note-agent-scope-runtime-design-and-correctness/session-append-materialize-validate-commit-notify: + en: cc37e93081fea4cb + zh: daf2234f84e4c9bf +/agent-note-agent-scope-runtime-design-and-correctness/session-append-materialize-validate-commit-notify/durable-data-is-materialized-once: + en: d0a57b0ac227d84c + zh: e9ae6ced0e65fe49 +/agent-note-agent-scope-runtime-design-and-correctness/session-append-materialize-validate-commit-notify/pre-commit-listeners-can-veto-post-commit-observers-cannot: + en: 15255d3d0b62fac0 + zh: c1995d5aa3c78f0a +/agent-note-agent-scope-runtime-design-and-correctness/trust-boundaries-copy-only-when-ownership-actually-changes: + en: 22b381902fe903f3 + zh: 8a2efe9a8b458bba +/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes: + en: 456ac0359d3c02f6 + zh: 9099e15d22139751 +/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/one-resolver-defines-the-tool-view: + en: 120e1c79f0b99b1a + zh: 1c21a5b1d6b08235 +/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/tool-execution-owns-identity-and-boundary-materialization: + en: 41f1f2ad73d83d73 + zh: e6bff63958ede05e +/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/the-assembly-waterfall-owns-the-final-model-visible-composition: + en: 5c5880ccea139058 + zh: 3e5b7d10cb4c6ff8 +/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/structured-output-commits-only-authoritative-outcomes: + en: a9a711cf31559765 + zh: e9083b000fc89128 +/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/three-execution-boundaries-are-deliberately-one-way: + en: a109f3fadf338061 + zh: 12eb46fe775fa46a +/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/skill-and-approval-services-trust-typed-callers: + en: 9572833d47f779e6 + zh: 7ff491d309060030 +/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise: + en: b9216021f8f50bcc + zh: fda52f9434cc8191 +/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise/the-service-contract-has-one-cancellation-channel: + en: 84a4be83b78c045b + zh: 043e14cf628413cd +/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise/in-process-providers-reuse-the-core-transaction: + en: b5e0b3dcf0dff750 + zh: 63905010383781b9 +/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise/acp-providers-own-the-process-until-readiness-or-cleanup: + en: aa0c00cee368c7e6 + zh: 767539b0f4d56f55 +/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts: + en: effbb0acf7f66bed + zh: e0cc9ad6ac0777de +/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts/workflow-children-are-pending-starts-or-published-records: + en: 9f05eed800f3413c + zh: 8230a28a0f94bffa +/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts/terminal-result-and-physical-cleanup-remain-separate: + en: 5ad141c6df9f4fc3 + zh: 63effa4f14f3c530 +/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts/acp-prompt-settlement-does-not-depend-on-update-delivery: + en: d39f73f50f0370bd + zh: 3889c1db46de560e +/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement: + en: 840564e766d2f05c + zh: 059243afea7eb9c0 +/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement/types-make-the-ordinary-path-hard-to-misuse: + en: 9183eb29dddfd97f + zh: e6ce13295e6c3e65 +/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement/runtime-invariants-cover-cross-service-facts: + en: fabafbebc0ab4f95 + zh: 06d94a98ed5aa40c +/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement/generated-artifacts-keep-public-contracts-aligned: + en: d0ddc5f38289225d + zh: 781d910228d5e334 +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered: + en: 5eef7873a795c8f0 + zh: 3e8ba109a6e29ba5 +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/use-a-transparent-proxy-as-the-scope-carrier: + en: 199c7345a237e7e9 + zh: b262d5ad0c7cb562 +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/reserve-agent-and-session-ids-before-setup: + en: 3a8cb6969139dd84 + zh: 2913bb68433c9ec7 +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/snapshot-every-typed-same-process-argument: + en: 3e1f19f909f8d138 + zh: 0727777e34964afe +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/give-readiness-cancellation-and-disposal-separate-controllers: + en: f2c6ecbd139bbdb0 + zh: 0ff5b1e192dcb376 +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/keep-synchronous-subagent-start-plus-run-started: + en: 7f5669933cb35c9c + zh: c55e35d4c175af36 +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/restore-selected-prompt-or-tool-contributions-after-assembly: + en: a2b2e48d9ccda310 + zh: 3a4e925fde9d05b0 +/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/remove-worker-process-lifecycle-guards-with-same-process-hardening: + en: 662e0904d90a3a94 + zh: 84c5e49f7cc59b32 +/agent-note-agent-scope-runtime-design-and-correctness/consequences: + en: 0d781b2dc4c41ddb + zh: 844652a4aaac37aa +/agent-note-agent-scope-runtime-design-and-correctness/consequences/what-the-design-guarantees: + en: eb2001592d7bd7b1 + zh: e534dbb6daa9af32 +/agent-note-agent-scope-runtime-design-and-correctness/consequences/costs-and-limits: + en: e9383713d56b9e10 + zh: d3ab00aea8ecf4e0 diff --git a/.agents/notes/implemented/architecture/2026-07-14-provider-routed-llm-adapters.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-14-provider-routed-llm-adapters.i18n.yaml index 07a0a60247..7d88d4ba73 100644 --- a/.agents/notes/implemented/architecture/2026-07-14-provider-routed-llm-adapters.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-14-provider-routed-llm-adapters.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-14-provider-routed-llm-adapters.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-14-provider-routed-llm-adapters.md -2026-07-14-provider-routed-llm-adapters.md: 1001b10e18837399b41578658ffe62065e294ba8 -2026-07-14-provider-routed-llm-adapters.zh.md: c5bff0ef407c8a2c22e8cad7e7d32c58c8b0e2da +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend: + en: e57698907c40f783 + zh: 47004d8f68af1d7d +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/problem: + en: 2e51f5fa703b0677 + zh: 385937219b88c447 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/provider-is-the-adapter-registration-key: + en: 4921a060c657b790 + zh: 2f9632469c6f0b60 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/explicit-pi-ai-provider-profiles: + en: 5461685553dac663 + zh: e5c7e0ad7ac84e29 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/recorded-assistant-route-and-replay-state: + en: 8439e90c9f6d7642 + zh: daeda3ce5146c9f5 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/propagate-the-target-through-every-request-producer: + en: ba1908bc1517ed23 + zh: 1c9353a422cf74e1 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/alternatives-considered: + en: ad0d610ea92aa9b8 + zh: fe09d62762e73f01 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/consequences: + en: a0c98bced8a5e6fb + zh: 23caf082a08ba507 +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/testing: + en: 5a36121f12701d08 + zh: 90f0f8ed44f7234f +/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/risks: + en: 11db2a349f9f26c2 + zh: 550d6017d8639854 diff --git a/.agents/notes/implemented/architecture/2026-07-15-agent-initiator-scope.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-15-agent-initiator-scope.i18n.yaml index 99577f250e..a90633f326 100644 --- a/.agents/notes/implemented/architecture/2026-07-15-agent-initiator-scope.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-15-agent-initiator-scope.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-15-agent-initiator-scope.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-15-agent-initiator-scope.md -2026-07-15-agent-initiator-scope.md: ab11da116a463cd706418e797eb58f1bc4ab9b1c -2026-07-15-agent-initiator-scope.zh.md: 343acba5f99379b6d2c3af41368e8fbe90b20611 +/agent-note-initiating-agent-scope-over-asynclocalstorage: + en: b0a59e3a34c41826 + zh: 7131428a14901d14 +/agent-note-initiating-agent-scope-over-asynclocalstorage/problem: + en: a26991200892c735 + zh: 04a7dfaca64e3f0c +/agent-note-initiating-agent-scope-over-asynclocalstorage/decision: + en: 43a4f0c503b30d95 + zh: a6a780584f94ed73 +/agent-note-initiating-agent-scope-over-asynclocalstorage/verification: + en: 312f5c4b843d515e + zh: a8993e3b84844fab +/agent-note-initiating-agent-scope-over-asynclocalstorage/alternatives-considered: + en: fd2ae1369fb3fbc6 + zh: e2a3d7f9331fc8ac +/agent-note-initiating-agent-scope-over-asynclocalstorage/consequences: + en: 625c6afc49489e29 + zh: ed7e5c5e56c781fb diff --git a/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml index a3dae54b9b..a7c6542f24 100644 --- a/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-16-explicit-turn-cancellation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.md -2026-07-16-explicit-turn-cancellation.md: d59accf2dc3f894ffab226e5ddc9d2e746f4d93e -2026-07-16-explicit-turn-cancellation.zh.md: 8fb0728eb2bbe8fa01dbefebe7e02aa8c836617a +/agent-note-explicit-turn-cancellation-capability: + en: 729ed6291e9d4d2c + zh: 32ae526ef41199da +/agent-note-explicit-turn-cancellation-capability/problem: + en: 0a7826345be2a509 + zh: 430fccb5c4d6a5e2 +/agent-note-explicit-turn-cancellation-capability/decision: + en: 2c15edb35f38e7e5 + zh: fa5145d26e3bff20 +/agent-note-explicit-turn-cancellation-capability/verification: + en: a7ab1d06542be1c0 + zh: 1687979b7f2460fa +/agent-note-explicit-turn-cancellation-capability/alternatives-considered: + en: bf69bbf7eb280306 + zh: a434a0ecb5008b2b +/agent-note-explicit-turn-cancellation-capability/consequences: + en: 1066aff1aec4ed01 + zh: 31d6a60496e2e730 diff --git a/.agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.i18n.yaml index 41d4664d7d..7354602835 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-cooperative-tool-cancellation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.md -2026-07-19-cooperative-tool-cancellation.md: 5ca2b44b24a4af189df27c6f724021a7bf290e2b -2026-07-19-cooperative-tool-cancellation.zh.md: d6d49fb44c5d5629729a8b5b4bad07ea9b2f7ee9 +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary: + en: 84c827aa3baa331a + zh: 10cad03e58b10e31 +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/problem: + en: e386b22491b468c1 + zh: 82015f5145b679cd +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision: + en: ca66d3b6af50be10 + zh: f054b10d0c965e82 +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/mutability-follows-the-pipeline-stage: + en: 0e1399cad4151f87 + zh: 960fa0ccbe0f8fea +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/cancellation-codes-record-whether-dispatch-occurred: + en: c787fba8731ac147 + zh: 21b5968ae6f8cd59 +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/pre-aborted-entry-short-circuits-after-materialization: + en: 53362db6a0c71698 + zh: 311de45ca26d3fdc +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/started-work-still-reaches-quiescence: + en: 26e4b71366bebd1b + zh: 10598e12b28c586e +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/verification: + en: fbd101d4576afa92 + zh: 35f5d3c2f6cad6a8 +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/alternatives-considered: + en: 1f205f1a78d4fd5b + zh: 6c17e35da2909302 +/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/consequences: + en: 24a9ad2c4c7c86b5 + zh: debdd29d272e07ea diff --git a/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.i18n.yaml index a64c2c83c2..b48fcf3403 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-gui-web-client-architecture.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.md -2026-07-19-gui-web-client-architecture.md: 4d62d7ddbeddd2d5c02e42194b035ee08b5cf041 -2026-07-19-gui-web-client-architecture.zh.md: aeb6c89e677d7b65daef03d5d31372f484ae3117 +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer: + en: e940be9ef95509ff + zh: c06cea53bb49c718 +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/problem: + en: c5a3dda6ccd57c9e + zh: 122307b113bb1c09 +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/decision: + en: 29742775aee9fbc3 + zh: 54a2df8816e2ea2e +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-client-cordis-tree-and-the-loading-chain: + en: 23b0b6c3f29e4f5e + zh: 53bf897b502c645b +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-slot-system-how-the-page-composes: + en: 1661f3dd74dc9df6 + zh: 3152467c7dd8e6ef +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/services-and-scope-addressing: + en: 9da9311f677c5da6 + zh: 9cb16a92cee87055 +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-data-object-layer-packages-api-session-controller-src-client: + en: 909682e20c0d23a1 + zh: ed1defbcf7745e8e +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-react-face-packages-client-ui-renderer: + en: 0971d6196b5358fd + zh: 26175d648feccfd9 +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/directory-shape: + en: 74c45680c8aab51c + zh: fd431ae5d3656038 +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/how-to-develop: + en: cbc6abcd9f291868 + zh: 0078f15f2d08a02e +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/consequences: + en: 56a9086da5783306 + zh: 8147576101d22aa0 +/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/alternatives-considered: + en: 8bedf2e688b14322 + zh: 7cda12f7474832ee diff --git a/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml index ec285a946f..f8fe485684 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-package-invariant-runtime-contracts.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md -2026-07-19-package-invariant-runtime-contracts.md: a1b635cc40844f1846c04e203dbb842d1c7328ed -2026-07-19-package-invariant-runtime-contracts.zh.md: d315c440f1c100911386f57d6f82d5f16be631ca +/agent-note-meaningful-package-invariant-contracts: + en: e5db3b3373f72761 + zh: 312b83d320d9aaab +/agent-note-meaningful-package-invariant-contracts/problem: + en: 220a4ceb3cd9b9c9 + zh: 9eac93e1762b2914 +/agent-note-meaningful-package-invariant-contracts/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-meaningful-package-invariant-contracts/decision/published-assertions-must-be-meaningful: + en: 11a1c080592def10 + zh: d1189de665f9e327 +/agent-note-meaningful-package-invariant-contracts/decision/representative-implemented-checks: + en: 2f7ae4ed588d6de8 + zh: ed7ea9ccc6c54e87 +/agent-note-meaningful-package-invariant-contracts/decision/repository-gate-and-tests: + en: 37e646754f13dd65 + zh: 355ebf3ce1403117 +/agent-note-meaningful-package-invariant-contracts/alternatives-considered: + en: 74c6a5a0cfadbf88 + zh: e41356bb1a8c1fdf +/agent-note-meaningful-package-invariant-contracts/consequences: + en: 1f8d53063fb5903e + zh: 5edd23739749b065 diff --git a/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml index 5e0c9ab302..9e8a30179e 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-zstandard-jsonl-session-logs.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.md -2026-07-19-zstandard-jsonl-session-logs.md: 96b76febee1c8853f70d7e4897894ea26390f524 -2026-07-19-zstandard-jsonl-session-logs.zh.md: 4cf184ce107b9de6dbbf3f0e571d4009d50ca636 +/agent-note-zstandard-jsonl-session-logs: + en: b46a6b48493de93e + zh: 0e394abf1d11fd43 +/agent-note-zstandard-jsonl-session-logs/problem: + en: da8b3d94d10b5bc4 + zh: da9c6d98a300b7bb +/agent-note-zstandard-jsonl-session-logs/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-zstandard-jsonl-session-logs/decision/configuration-and-suffix-ownership: + en: 1f29970aecc71980 + zh: 94414765645bace0 +/agent-note-zstandard-jsonl-session-logs/decision/frame-and-write-path: + en: da213ed32dfa6000 + zh: a0f3cd11684dbdc9 +/agent-note-zstandard-jsonl-session-logs/decision/read-listing-and-crash-recovery: + en: 63d4fe7d9c2a0a8a + zh: 2c4ef3e6aad73195 +/agent-note-zstandard-jsonl-session-logs/decision/consumers-and-verification: + en: 6d9d16d610b80e55 + zh: efa083ffaa7301e0 +/agent-note-zstandard-jsonl-session-logs/alternatives-considered: + en: c5f447029fb644f7 + zh: 5b84162e87bc6c86 +/agent-note-zstandard-jsonl-session-logs/consequences: + en: e721552f16340e4c + zh: d5be8c3ffd1c7cc2 diff --git a/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml index cf9b3216dc..531d05cdc9 100644 --- a/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-20-canonical-tool-output-contract.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.md -2026-07-20-canonical-tool-output-contract.md: 4dbcac3da8381e69809b15a653cdb4987af4e0e7 -2026-07-20-canonical-tool-output-contract.zh.md: c2f4ebdfc7266495570766c69b3aa264f91172cc +/agent-note-canonical-tool-output-contract: + en: 01677f7875da9579 + zh: 41bae59177ba5125 +/agent-note-canonical-tool-output-contract/problem: + en: d0bc9840998f0530 + zh: 2601671ec694a78d +/agent-note-canonical-tool-output-contract/decision: + en: db088b8225a4bf3d + zh: bfb0caa015b2b7df +/agent-note-canonical-tool-output-contract/alternatives-considered: + en: d82a0ac0461ab120 + zh: bedea17fb4fb4f51 +/agent-note-canonical-tool-output-contract/consequences: + en: 32724ff8f6b3b03f + zh: bc7512ff05d00157 diff --git a/.agents/notes/implemented/architecture/2026-07-20-routed-model-context-and-compaction-policy.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-20-routed-model-context-and-compaction-policy.i18n.yaml index 081f618b1a..a21bb41371 100644 --- a/.agents/notes/implemented/architecture/2026-07-20-routed-model-context-and-compaction-policy.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-20-routed-model-context-and-compaction-policy.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-20-routed-model-context-and-compaction-policy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-20-routed-model-context-and-compaction-policy.md -2026-07-20-routed-model-context-and-compaction-policy.md: d276354cb21f45eaec1c4e3202c7be1770745efb -2026-07-20-routed-model-context-and-compaction-policy.zh.md: b6e2a0b914f78e19675d80b86d8d962e8ba8c80f +/agent-note-routed-model-context-and-compaction-policy: + en: eca190695d4857f5 + zh: f9d6411b8a8612ae +/agent-note-routed-model-context-and-compaction-policy/problem: + en: f7d1f343e487d725 + zh: c7f736180e44d586 +/agent-note-routed-model-context-and-compaction-policy/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-routed-model-context-and-compaction-policy/decision/adapters-own-exact-route-capacity: + en: 7bcf0ae2c74a0eb7 + zh: bc0e04a25492d5ba +/agent-note-routed-model-context-and-compaction-policy/decision/token-measurement-remains-model-agnostic: + en: 51d1b39d06407320 + zh: 85c88f6b5d8508d6 +/agent-note-routed-model-context-and-compaction-policy/decision/compact-basic-resolves-a-target-spec: + en: d8827f9fa70aa65f + zh: a9d29e05dcb0cfdb +/agent-note-routed-model-context-and-compaction-policy/decision/target-specific-pressure-failures-preserve-optional-composition: + en: 1bd81ae0a1409e24 + zh: 635c2937d5a94df7 +/agent-note-routed-model-context-and-compaction-policy/testing: + en: 1ac13596df50571f + zh: 8605a6f0de049dfc +/agent-note-routed-model-context-and-compaction-policy/alternatives-considered: + en: 0ca0a4b1318188ec + zh: de98cd4494a6c0d0 +/agent-note-routed-model-context-and-compaction-policy/consequences: + en: d00f83e85ba5e431 + zh: 32665480f0cdc4ea diff --git a/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml index 152bae16ac..bf011b57b9 100644 --- a/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-20-unified-json-value-schema-dsl.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.md -2026-07-20-unified-json-value-schema-dsl.md: 5de3523eab15a91ea32dc09e2e239146fadea6f1 -2026-07-20-unified-json-value-schema-dsl.zh.md: 0dc38dc289a32269c0f9e545ae53a8098ba02189 +/agent-note-unified-json-value-schema-dsl: + en: 8ba380205c472f4e + zh: de92e20dc90e8037 +/agent-note-unified-json-value-schema-dsl/problem: + en: 5c7e79e37c007896 + zh: 759f5803141b0960 +/agent-note-unified-json-value-schema-dsl/decision: + en: 8f08bbafc8939a46 + zh: 2ed8255c1e2b812b +/agent-note-unified-json-value-schema-dsl/alternatives-considered: + en: 1d32d6195d6fca08 + zh: ea3a30126dca95f7 +/agent-note-unified-json-value-schema-dsl/consequences: + en: 14d0a6a337503e80 + zh: c7ffec8760a710af diff --git a/.agents/notes/implemented/architecture/2026-07-22-slot-type-chain-implementation.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-22-slot-type-chain-implementation.i18n.yaml index f633a831d3..eeeda135fe 100644 --- a/.agents/notes/implemented/architecture/2026-07-22-slot-type-chain-implementation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-22-slot-type-chain-implementation.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-22-slot-type-chain-implementation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-22-slot-type-chain-implementation.md -2026-07-22-slot-type-chain-implementation.md: 98585a42f71844594da4ada19d7438a7d8321702 -2026-07-22-slot-type-chain-implementation.zh.md: d1093537ccbc5ee5ff2dc18c234233ffca39879d +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat: + en: 43ed5b2dfd8043fc + zh: 04b6fdd0435a265a +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/problem: + en: 4f8d6891a8ba7061 + zh: 5a619e562e00458d +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision: + en: a81cddbebc1a97a3 + zh: aa57738c9f08c07e +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/root-is-the-only-a-priori-slot: + en: 43b856b4a8cf371f + zh: cde298ab8b8a3815 +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/register-is-the-single-api-children-declaration-authorization-runtime-spec: + en: ce28268021a38b89 + zh: 7802540e4ef04752 +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/component-props-four-shares-each-from-its-own-source-of-truth: + en: f3fca569fa0c5168 + zh: 647a82662f6a887d +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/the-chain-kind-entries-self-nominate-first-match-renders: + en: 56278be7f3688805 + zh: 16602ffbf4baef85 +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/the-store-seat-framework-engine-registrant-schema: + en: 2645acc9d29c20ec + zh: a8a2fd293ef5da04 +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/inject-the-registrant-s-business-face-on-its-own-ctx: + en: 66b311fad441400a + zh: 34f031e7f04d29e6 +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/data-boundary-discipline: + en: 07b919360c8f65be + zh: 4c8a9915a2ed20af +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/tree-context-and-the-renderer-contract: + en: d77ebd3f6b166194 + zh: 57ba9fe864908d46 +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/type-chain-implementation-rulings: + en: 752bc30428dad374 + zh: 3d729646468ecfde +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/consequences: + en: 07228332f3d3c227 + zh: 32525e1972acf156 +/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/alternatives-considered: + en: 2bd28715f741ac04 + zh: 8d6a0cb78a006533 diff --git a/.agents/notes/implemented/architecture/2026-07-23-client-plugin-loading-model.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-23-client-plugin-loading-model.i18n.yaml index 608fe717d5..142497a1d9 100644 --- a/.agents/notes/implemented/architecture/2026-07-23-client-plugin-loading-model.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-23-client-plugin-loading-model.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-23-client-plugin-loading-model.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-23-client-plugin-loading-model.md -2026-07-23-client-plugin-loading-model.md: b8c23108a7a1cf3a04ded373d8705bae626c70c2 -2026-07-23-client-plugin-loading-model.zh.md: efaea843120e5b023bbc8f59663ea47468944c71 +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload: + en: 874618fd5ad1d06a + zh: a5e4bfad490fab34 +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/problem: + en: 46c4b208707e024e + zh: b6f86a6374b251da +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision: + en: a15c7c13f167e5ac + zh: a15c7c13f167e5ac +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/package-membership-and-module-requests: + en: 6af228b03e5e533f + zh: 276a522af6be5d7a +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/one-module-system-one-plugin-governor: + en: 575aad62490f32e9 + zh: a6c18eb63965fc1e +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/combo-external-script-arrival-and-source-maps: + en: 0a4240d88cca240a + zh: 8f5f1527caf571cd +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/the-loading-flow-end-to-end: + en: 7dac236d6add3c3c + zh: 2a43a923a0646bb0 +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/live-graph-reconciliation: + en: 37e2fa1fe5cb2b95 + zh: 80e513db87709cb4 +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/hot-reload-one-driver-plugin-self-watched-bundles: + en: f8b591d4c41ef492 + zh: bc70f1cd540b7753 +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/package-ownership: + en: 94ca0d09e6fd1e3a + zh: d5949a2bdec795ba +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/consequences: + en: 6a96d9ac06c222e5 + zh: b2814ab58348e831 +/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/alternatives-considered: + en: b8f036f50cff7cd8 + zh: 6d623c4a1f4314b1 diff --git a/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.i18n.yaml index 95adf4e6c5..28f986327b 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-24-project-session-directories.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-project-session-directories.md -2026-07-24-project-session-directories.md: 0074c8b31304e6a7d32199b7461575356e406448 -2026-07-24-project-session-directories.zh.md: 3a1d348255588fd120221dc277a2841359c0a038 +/agent-note-project-grouped-session-directories: + en: c8960daf61fa50fa + zh: d8c7c844180fcaae +/agent-note-project-grouped-session-directories/problem: + en: 7df6078347bd7176 + zh: bb769760d7abc903 +/agent-note-project-grouped-session-directories/decision: + en: cdefd1f4d9d0a55a + zh: 5916d456f3faab2b +/agent-note-project-grouped-session-directories/alternatives-considered: + en: ba4657ba95479806 + zh: 5c53c5c964efa932 +/agent-note-project-grouped-session-directories/consequences: + en: 228c46a599899be1 + zh: 265a233cd41b5c05 diff --git a/.agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml index b192622981..7e61625e6d 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-24-separate-context-injection-from-turn-execution.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.md -2026-07-24-separate-context-injection-from-turn-execution.md: d22d3966767ae9888f2140141b1c7743792184c0 -2026-07-24-separate-context-injection-from-turn-execution.zh.md: 2c567511b21891ada3e0027f666d1163861fb090 +/agent-note-separate-context-injection-from-turn-execution: + en: f0090d5d271cbd9d + zh: 7ff28e03f1273093 +/agent-note-separate-context-injection-from-turn-execution/problem: + en: 2eefc25e17f62a90 + zh: 81bc7ff2649b2704 +/agent-note-separate-context-injection-from-turn-execution/decision: + en: 83dba9117127cbb4 + zh: 2b6b428a1c97d3b1 +/agent-note-separate-context-injection-from-turn-execution/injection-lifecycle: + en: 16005492be54cb4f + zh: db460e0ebf838d54 +/agent-note-separate-context-injection-from-turn-execution/extension-and-caller-semantics: + en: e184d8cd9676e24f + zh: 22465b570ae35f59 +/agent-note-separate-context-injection-from-turn-execution/alternatives-considered: + en: 0efad389c38dfe95 + zh: 13dd73de20226540 +/agent-note-separate-context-injection-from-turn-execution/verification: + en: 3f3db450a3fc5848 + zh: b2027393d570339d +/agent-note-separate-context-injection-from-turn-execution/consequences: + en: 71079e4dede5e12f + zh: deb46b5a4f151678 diff --git a/.agents/notes/implemented/architecture/2026-07-24-single-harness-home-resolver.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-24-single-harness-home-resolver.i18n.yaml index 83d23518ec..8622ce8f91 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-single-harness-home-resolver.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-24-single-harness-home-resolver.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-24-single-harness-home-resolver.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-single-harness-home-resolver.md -2026-07-24-single-harness-home-resolver.md: 1191c52bfa222b807e9aa301b250d2efcc8b0953 -2026-07-24-single-harness-home-resolver.zh.md: cefa124b7cb46bab92157af34576f59d3053da9f +/agent-note-one-harness-home-resolver: + en: 4177acbdd51411da + zh: 53f10d4c54b431b2 +/agent-note-one-harness-home-resolver/problem: + en: fa4d3622fb18dd58 + zh: 2b98640594c8344b +/agent-note-one-harness-home-resolver/decision: + en: bbab99c7a1aae2fc + zh: 87453b98ca265699 +/agent-note-one-harness-home-resolver/alternatives-considered: + en: b1c9535540171d47 + zh: 7df816d42945db94 +/agent-note-one-harness-home-resolver/consequences: + en: 7d0f569b98feadf5 + zh: 5c84624e7cc8d1d4 diff --git a/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml index 4951fbfe77..63949a5c87 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-24-web-config-tree-boot-and-transport-layering.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md -2026-07-24-web-config-tree-boot-and-transport-layering.md: c8a1db3cd7bd715d8912b22a0b41a9ef660c1316 -2026-07-24-web-config-tree-boot-and-transport-layering.zh.md: 41fcf65b06829199c203faa806bd17a310b68bcf +/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering: + en: 2d06ffcaaeb373e7 + zh: 01822cfd7339167f +/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/problem: + en: e5d603f77bff9dd7 + zh: c9e9a64f0a4db3c9 +/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/decision: + en: 866ebaaf4fe1e0d1 + zh: 8075a708c9042941 +/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/consequences: + en: 47f8a6beba1f320b + zh: 5f444699dc52cabf +/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/alternatives-considered: + en: bf6fbf972eab0700 + zh: 0f3449e5e6ace7e2 diff --git a/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml index da98873480..cc78be86f5 100644 --- a/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-25-web-client-session-scope-and-provide-channel.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md -2026-07-25-web-client-session-scope-and-provide-channel.md: 76561bc0e330b3e3a26607569ae327217d0a0b67 -2026-07-25-web-client-session-scope-and-provide-channel.zh.md: d5d92b2ca53ba78929dd8591a6ded7028e4fed24 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide: + en: 64d8701a9f2574bd + zh: 938991d424943547 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/problem: + en: 1738c071cb9824bc + zh: 7af7770739d5430a +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision: + en: a397a3f2e0bd7c21 + zh: a179a646c148ecc1 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/the-parity-model-client-and-host-share-one-root-state-axis: + en: e117f541a2f55c07 + zh: c6a5cf9c9d6b7692 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/agent-scope-the-actx-is-the-sole-session-carrier-in-the-client-side-cordis-world: + en: 6e6488b3eab757c2 + zh: 4ee3d1cc415234df +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/scope-lifecycle-anchored-to-explicit-references: + en: e2ed0052678a2b9b + zh: e0fe1b87dc3766af +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/the-blank-bit-the-empty-session-s-visible-projection-conversion-and-reuse: + en: ee88908c085b80c5 + zh: 5ddb65bbac371f02 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/connectworkspace-the-sole-entry-point-of-new-session: + en: 833df42c5a87afbd + zh: 82d789a99fd2b968 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/per-session-provisioning-the-uisession-provide-standard-kit-channel: + en: 3c739c21ea490f09 + zh: 5508153f313a86d9 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/input-delivery: + en: 2073e96f851d1e6e + zh: f0433bf5dfd0a23d +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/host-wire-smalls: + en: 5d1339b5a243812a + zh: a4be4d3c30056f42 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/alternatives-considered: + en: 2a69d71f4bdf0f76 + zh: dd768c273728d354 +/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/consequences: + en: 6750378aca400a75 + zh: 6eba20215ff255a1 diff --git a/.agents/notes/implemented/architecture/2026-07-27-compiler-independent-typert-model.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-27-compiler-independent-typert-model.i18n.yaml index 1709d91e34..50fa27df10 100644 --- a/.agents/notes/implemented/architecture/2026-07-27-compiler-independent-typert-model.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-27-compiler-independent-typert-model.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-27-compiler-independent-typert-model.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-27-compiler-independent-typert-model.md -2026-07-27-compiler-independent-typert-model.md: 5083c55176b2f4d342d14d0c1cf2a7f0c2c14b3c -2026-07-27-compiler-independent-typert-model.zh.md: 70d6954fae0fcb48e76137231168d5f2417668bf +/agent-note-compiler-independent-typert-type-model: + en: 6943b47c9de69922 + zh: 2fb08c1de4e6ea63 +/agent-note-compiler-independent-typert-type-model/problem: + en: 77713a6c0d15207e + zh: 2dc30d4c0182d8ba +/agent-note-compiler-independent-typert-type-model/decision: + en: 9ecb064f733f9f1b + zh: 471aee71053174cd +/agent-note-compiler-independent-typert-type-model/verification-contract: + en: c02d3f09e54f9a32 + zh: c14c15ffb7316b07 +/agent-note-compiler-independent-typert-type-model/alternatives-considered: + en: fa503dcfaa6f438f + zh: 26052212a124e133 +/agent-note-compiler-independent-typert-type-model/consequences: + en: 4a472acf377f8361 + zh: cb83602b123a4aae diff --git a/.agents/notes/implemented/architecture/2026-07-28-api-browser-trust-boundary.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-28-api-browser-trust-boundary.i18n.yaml index d4ca06ac71..a102c752b0 100644 --- a/.agents/notes/implemented/architecture/2026-07-28-api-browser-trust-boundary.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-28-api-browser-trust-boundary.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-28-api-browser-trust-boundary.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-28-api-browser-trust-boundary.md -2026-07-28-api-browser-trust-boundary.md: 397c93e084f84579ce3f90654f514428e696ffcd -2026-07-28-api-browser-trust-boundary.zh.md: 6d3896fd2c1fd6c607b9d92376eee76ab03df3c7 +/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes: + en: 491d0faf230d0278 + zh: 40c8eef7719fe354 +/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/problem: + en: c25db2ef111b2276 + zh: 557891ca9e030ae5 +/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/decision: + en: 1a1af1e8125ba4b0 + zh: dd6c282651a06af5 +/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/alternatives-considered: + en: 1a4b0ae8072e8e50 + zh: d469553ad3b5d112 +/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/consequences: + en: 8acf5e6f55a747c2 + zh: bbd0b10927302965 diff --git a/.agents/notes/implemented/architecture/2026-07-28-identified-immutable-message-values.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-28-identified-immutable-message-values.i18n.yaml index 56d5cea939..d7661445ba 100644 --- a/.agents/notes/implemented/architecture/2026-07-28-identified-immutable-message-values.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-28-identified-immutable-message-values.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-28-identified-immutable-message-values.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-28-identified-immutable-message-values.md -2026-07-28-identified-immutable-message-values.md: 73c9c14479117cf654d10b3da23d155cca77054d -2026-07-28-identified-immutable-message-values.zh.md: 7a5b9d6524beff01ac8a9e2020f75093271b7ab3 +/agent-note-create-every-message-as-an-identified-immutable-value: + en: 0bb4f6acecd9b6f1 + zh: 11e17fde272119f1 +/agent-note-create-every-message-as-an-identified-immutable-value/problem: + en: 9334a7a325a88fda + zh: c21c8cee318c6a35 +/agent-note-create-every-message-as-an-identified-immutable-value/decision: + en: a4434de753a41d41 + zh: f16e5cd634245f0e +/agent-note-create-every-message-as-an-identified-immutable-value/alternatives-considered: + en: bf73901dd2b977ed + zh: 5ba5d4d05051b1da +/agent-note-create-every-message-as-an-identified-immutable-value/consequences: + en: 9f2c40ccfcf03ee1 + zh: 0e8ba6c97f2e32af +/agent-note-create-every-message-as-an-identified-immutable-value/related: + en: 7c476f1a5195dff9 + zh: c878154dbf766e82 diff --git a/.agents/notes/implemented/architecture/2026-07-28-portable-execution-world-consumers.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-28-portable-execution-world-consumers.i18n.yaml index 7aec04b3d6..babbdf4b6f 100644 --- a/.agents/notes/implemented/architecture/2026-07-28-portable-execution-world-consumers.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-28-portable-execution-world-consumers.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-28-portable-execution-world-consumers.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-28-portable-execution-world-consumers.md -2026-07-28-portable-execution-world-consumers.md: 5a687a552f322f3929b3f3937caf36c3373c05e7 -2026-07-28-portable-execution-world-consumers.zh.md: 6bc0e20bd29d0b0a01068c004655cc90ac3b6699 +/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds: + en: 42609904ffe19d80 + zh: fcacbf7912df216c +/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/problem: + en: 959a378a04f28e89 + zh: ff496169735b4d7b +/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/decision: + en: 23eca65b89ae572a + zh: 630d844a7c6438df +/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/remote-provider-ownership: + en: bde2e1fa8f3aeee0 + zh: 42a13bb4cf540d6d +/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/verification: + en: b34540c3548ea98f + zh: 79e53bda3981802c +/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/alternatives-considered: + en: a5f455ad35d0615c + zh: df4f501a6d723838 +/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/consequences: + en: 3e8426e4a6788505 + zh: 143b8c07d21d95d1 diff --git a/.agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.i18n.yaml index cabffaebf6..7bd5c73590 100644 --- a/.agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-29-dsh-source-launch-tsx-esm.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.md -2026-07-29-dsh-source-launch-tsx-esm.md: 700577cb9b137d67f20baeb639f99f4c0877011d -2026-07-29-dsh-source-launch-tsx-esm.zh.md: 4d322d3dcf49442ee62f82203f17bd2ab16467fe +/agent-note-dsh-source-launch-through-the-tsx-esm-hook: + en: 55846ac57e07eeda + zh: 3de03730d4b28863 +/agent-note-dsh-source-launch-through-the-tsx-esm-hook/problem: + en: 68385f7e47d3ac1f + zh: 285ca290832e2939 +/agent-note-dsh-source-launch-through-the-tsx-esm-hook/decision: + en: 12adf8ed56b4d5c3 + zh: fbbb9add935730c0 +/agent-note-dsh-source-launch-through-the-tsx-esm-hook/alternatives-considered: + en: c6eec3d899a61df1 + zh: 128edd753d49c0da +/agent-note-dsh-source-launch-through-the-tsx-esm-hook/consequences: + en: 7c8eb105520ccae3 + zh: 9dc85ecda408de5a diff --git a/.agents/notes/implemented/architecture/2026-07-29-projected-token-usage-and-request-context.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-29-projected-token-usage-and-request-context.i18n.yaml index a5d41c6bca..22d12f0aab 100644 --- a/.agents/notes/implemented/architecture/2026-07-29-projected-token-usage-and-request-context.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-29-projected-token-usage-and-request-context.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-29-projected-token-usage-and-request-context.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-29-projected-token-usage-and-request-context.md -2026-07-29-projected-token-usage-and-request-context.md: 10056ac8ef85562035d4fc4591e90aec603a7dd8 -2026-07-29-projected-token-usage-and-request-context.zh.md: 0e4cd68791f0ee65dd700b64493be3c33b78a920 +/agent-note-projected-token-usage-and-context-occupancy: + en: 293fcae41011ed29 + zh: 9a018a07b6491173 +/agent-note-projected-token-usage-and-context-occupancy/problem: + en: 081098cb08ca80aa + zh: f829b6630a68fc3c +/agent-note-projected-token-usage-and-context-occupancy/decision: + en: 231a6f4a4c00dca6 + zh: e90c76e425826ca0 +/agent-note-projected-token-usage-and-context-occupancy/context-occupancy-is-approximate-and-that-is-the-decision: + en: 9df83c0a48f462d2 + zh: 94c2ad19af4b13fc +/agent-note-projected-token-usage-and-context-occupancy/alternatives-considered: + en: 50272313b4f061cc + zh: 1cfd7374e4bdfed9 +/agent-note-projected-token-usage-and-context-occupancy/consequences: + en: c7a407dc3964fb9d + zh: b1ac7c53abb5cb09 diff --git a/.agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.i18n.yaml index 04a5f80eec..ddc9c2bc46 100644 --- a/.agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-29-terminal-llm-stream-failures.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.md -2026-07-29-terminal-llm-stream-failures.md: c5d160c5dffe6171dd79714f2402f3bd6ca4d3fc -2026-07-29-terminal-llm-stream-failures.zh.md: 297898d8f94ae4f00ab1c5fef192ce633aee99cd +/agent-note-terminal-llm-stream-failures: + en: 6195cb1d9b4dd423 + zh: 0c93d3a39e2bc1f4 +/agent-note-terminal-llm-stream-failures/problem: + en: 41363fca57ae20e6 + zh: 1d05eeeecaafa7f3 +/agent-note-terminal-llm-stream-failures/decision: + en: c3bfde5f736f8b27 + zh: f51ebb4089df6406 +/agent-note-terminal-llm-stream-failures/alternatives-considered: + en: 46153a92b2135aae + zh: 0b8fdaf1f7edeb77 +/agent-note-terminal-llm-stream-failures/consequences: + en: 9bf05473682c5cef + zh: b93f32470eb08cf4 diff --git a/.agents/notes/implemented/architecture/2026-07-30-credential-boundaries-and-atomic-registration.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-30-credential-boundaries-and-atomic-registration.i18n.yaml index ccbabe4e0d..a4c259b654 100644 --- a/.agents/notes/implemented/architecture/2026-07-30-credential-boundaries-and-atomic-registration.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-30-credential-boundaries-and-atomic-registration.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-30-credential-boundaries-and-atomic-registration.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-30-credential-boundaries-and-atomic-registration.md -2026-07-30-credential-boundaries-and-atomic-registration.md: 0e65bb1093bb21c3a0dbee71b4e80ba4276b9d00 -2026-07-30-credential-boundaries-and-atomic-registration.zh.md: cbc66efa26065beb54ee1deea0f69221ebd92337 +/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration: + en: 0b33f9d64be7149a + zh: 365ea54cf9fd4924 +/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/problem: + en: 6228c81e4965b688 + zh: 04b702be0cfbf195 +/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/decision: + en: d2aa88cf1e9ec97b + zh: da9422723fc9ac93 +/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/alternatives-considered: + en: 90c5883b247f7301 + zh: 6d2a660d8653f805 +/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/consequences: + en: 99b678779110e0d1 + zh: 5790590caab41e0c diff --git a/.agents/notes/implemented/architecture/2026-07-30-followup-enqueue-and-owned-runs.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-30-followup-enqueue-and-owned-runs.i18n.yaml index b729d9dd5b..91a956e428 100644 --- a/.agents/notes/implemented/architecture/2026-07-30-followup-enqueue-and-owned-runs.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-30-followup-enqueue-and-owned-runs.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-30-followup-enqueue-and-owned-runs.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-30-followup-enqueue-and-owned-runs.md -2026-07-30-followup-enqueue-and-owned-runs.md: c9b3b992dffb39c94b476cd6541b8ec9e2256047 -2026-07-30-followup-enqueue-and-owned-runs.zh.md: 7f272484cad4f9d0fd918e5c1b05fb8fcb0384c0 +/agent-note-follow-up-enqueue-and-owned-run-boundaries: + en: 30b533c813f80a2c + zh: 5f56ae990ca597f2 +/agent-note-follow-up-enqueue-and-owned-run-boundaries/problem: + en: 33387f4ed29e967b + zh: b61ab718327d4cc9 +/agent-note-follow-up-enqueue-and-owned-run-boundaries/decision: + en: 9d68149d8090d355 + zh: d3efa8ac850603bf +/agent-note-follow-up-enqueue-and-owned-run-boundaries/alternatives-considered: + en: 70a57101ffa08e81 + zh: 36c3539ee9c759af +/agent-note-follow-up-enqueue-and-owned-run-boundaries/verification: + en: 4c65688fc0bc1f6c + zh: 04f1fd160e38a69d +/agent-note-follow-up-enqueue-and-owned-run-boundaries/consequences: + en: 7de608183c0bd34d + zh: 598eeb85cfd2993b diff --git a/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml index 01690045bd..18ab603d7b 100644 --- a/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-30-session-end-seed-log-boundary.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.md -2026-07-30-session-end-seed-log-boundary.md: 9cf7c7f20701688208e8b1c343904f2a9f2cab9e -2026-07-30-session-end-seed-log-boundary.zh.md: fdf4ec9de610f17e792de98334dd5d37f5e4c355 +/agent-note-the-end-seed-log-boundary: + en: 0f53ca9c0166d7ad + zh: e16b2376c2afb1bc +/agent-note-the-end-seed-log-boundary/problem: + en: e7192f854b24129c + zh: 74a38ee95988e338 +/agent-note-the-end-seed-log-boundary/decision: + en: 519aa4faadd01960 + zh: 1430cc9bd81e7df9 +/agent-note-the-end-seed-log-boundary/persistence-needs-no-changes: + en: 5df69ed0156e50c8 + zh: 9ad6caad6d33b183 +/agent-note-the-end-seed-log-boundary/scope-of-the-guarantee: + en: 31c23e4e25640fb1 + zh: d207c2a8aa7d936c +/agent-note-the-end-seed-log-boundary/alternatives-considered: + en: cd1ed7dfa77722ae + zh: 4ad834f3cf3b5443 +/agent-note-the-end-seed-log-boundary/consequences: + en: 69eb86480b191135 + zh: 51ef88fb78701b1f diff --git a/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml index 049fbfff18..7151c1e20c 100644 --- a/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-31-claimed-pre-step-inbox-lifecycle.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md -2026-07-31-claimed-pre-step-inbox-lifecycle.md: 3ebb73279e49c2aaffa05bea647fa3f93ba6a36f -2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md: 809470e5b52b29cdcbe7b4d81bb584b476f5cfce +/agent-note-claim-inbox-input-before-one-pre-step-decision: + en: 4ee4c56f27c9bf27 + zh: 72321b4c735e106f +/agent-note-claim-inbox-input-before-one-pre-step-decision/problem: + en: f2a920b8770c2f99 + zh: 1c111f175131714e +/agent-note-claim-inbox-input-before-one-pre-step-decision/decision: + en: 2e58afbd8ffbce60 + zh: 40e0c0e3d24fc7ad +/agent-note-claim-inbox-input-before-one-pre-step-decision/alternatives-considered: + en: 03496db1c0547f71 + zh: c0932cfcb5d5d93b +/agent-note-claim-inbox-input-before-one-pre-step-decision/verification: + en: 007a79d6db18cbab + zh: 611306fcb5edfda0 +/agent-note-claim-inbox-input-before-one-pre-step-decision/consequences: + en: ba68c3ce7ed64bcc + zh: 8fe29186526b258a diff --git a/.agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.i18n.yaml index aecb82c585..18c1983fdb 100644 --- a/.agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-31-goal-owned-durable-events.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.md -2026-07-31-goal-owned-durable-events.md: 0d3e632ba275f38e48fdf1f9ee6747f4bc460aab -2026-07-31-goal-owned-durable-events.zh.md: fd29a6f36eed42f5ba26a46a32acb165d1e42873 +/agent-note-goal-owned-durable-events: + en: a8fca44de335547c + zh: e0cc7072f2247a19 +/agent-note-goal-owned-durable-events/problem: + en: 882023626c792880 + zh: 1966501718e96f92 +/agent-note-goal-owned-durable-events/decision: + en: cc99d9ce1f6ebb9a + zh: 34e519f16d8d5e3e +/agent-note-goal-owned-durable-events/alternatives-considered: + en: 7d79dfa834d9168f + zh: 0b3e82a7d0ef71b9 +/agent-note-goal-owned-durable-events/consequences: + en: 0e4513ea5e3e1e2e + zh: 69d81ba52ee2f4b6 diff --git a/.agents/notes/implemented/architecture/2026-07-31-ptc-runtime-python-fd3-protocol.i18n.yaml b/.agents/notes/implemented/architecture/2026-07-31-ptc-runtime-python-fd3-protocol.i18n.yaml index aaa0f005af..85084f80cb 100644 --- a/.agents/notes/implemented/architecture/2026-07-31-ptc-runtime-python-fd3-protocol.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-07-31-ptc-runtime-python-fd3-protocol.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-31-ptc-runtime-python-fd3-protocol.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-31-ptc-runtime-python-fd3-protocol.md -2026-07-31-ptc-runtime-python-fd3-protocol.md: 097bcfd55f333a0973084f378a6c97cb630a4bec -2026-07-31-ptc-runtime-python-fd3-protocol.zh.md: ac656e421bd822994c50c33d0dfaf65ae46aa817 +/agent-note-the-ptc-runtime-python-fd-3-frame-protocol: + en: fc43bcfc72cc4476 + zh: c81279cb0da1481c +/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/problem: + en: 2c36946bbff637b7 + zh: f290de0866ba7caa +/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/decision: + en: 1f93159850fc7f48 + zh: dcc2a4788e3254f7 +/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/wire-contract: + en: 913f9465320dc191 + zh: f8e0338645d6c204 +/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/mirror-alignment: + en: 26128b65f2763920 + zh: df24359faebcbfed +/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/alternatives-considered: + en: cc42636bd7793305 + zh: e196f980daec3037 +/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/consequences: + en: 16df6efd46d71e85 + zh: 4062475bec04ab5f diff --git a/.agents/notes/implemented/architecture/2026-08-02-typert-remote-method-calls.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-02-typert-remote-method-calls.i18n.yaml index 279482f67a..b86fbe45fb 100644 --- a/.agents/notes/implemented/architecture/2026-08-02-typert-remote-method-calls.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-02-typert-remote-method-calls.i18n.yaml @@ -1,6 +1,76 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-02-typert-remote-method-calls.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-02-typert-remote-method-calls.md -2026-08-02-typert-remote-method-calls.md: 2a12aaf78f638d8af786d2ca817a3fee07a2c614 -2026-08-02-typert-remote-method-calls.zh.md: bf4a7b0179b4dc878a0a53c7076c02e6f1bf0273 +/agent-note-typert-gateway-targeted-method-calls: + en: 4d77bacdc36f246b + zh: b884bf274df490af +/agent-note-typert-gateway-targeted-method-calls/problem: + en: 14a83a0440499136 + zh: 15587f8e821c5a17 +/agent-note-typert-gateway-targeted-method-calls/decision: + en: 44d946b53496974c + zh: 403447c25a5b2d7c +/agent-note-typert-gateway-targeted-method-calls/components-and-cordis-services: + en: aa7f509189ade32e + zh: ef2841bc793f31b2 +/agent-note-typert-gateway-targeted-method-calls/business-declarations: + en: c6b70d442b137d2e + zh: 6d0dbefe89937ef1 +/agent-note-typert-gateway-targeted-method-calls/decorators-and-the-explicit-gateway-facet: + en: 155afbe4b8af600b + zh: 14705698a9cdbd84 +/agent-note-typert-gateway-targeted-method-calls/lookup-and-remote-scope-registration: + en: 9f7448898cf5cadc + zh: 419573c589ed6f7d +/agent-note-typert-gateway-targeted-method-calls/invocationdescriptor: + en: aad682229b400d49 + zh: 60c2857fca1f4b2b +/agent-note-typert-gateway-targeted-method-calls/typert-runtime-registry: + en: 14ad652e20e699ca + zh: 9272bc04a35e3c6a +/agent-note-typert-gateway-targeted-method-calls/canonical-types-symbols-and-zod: + en: a244f6a88fdabf3d + zh: e4feedb7297f4865 +/agent-note-typert-gateway-targeted-method-calls/three-artifact-kinds-and-two-typescript-programs: + en: 6ea4bddcf35a834d + zh: 4af474c6818b1cf0 +/agent-note-typert-gateway-targeted-method-calls/the-remote-package-entry: + en: 75e977fe0fb71d59 + zh: 00760c79da173cb7 +/agent-note-typert-gateway-targeted-method-calls/strict-consumer-api-types: + en: 983f55c0ed4a8edc + zh: 5a736e00e4b57e6a +/agent-note-typert-gateway-targeted-method-calls/client-typert-and-the-api-gateway-client-face: + en: 9dc732c13ffaee63 + zh: 4977aaef0856956d +/agent-note-typert-gateway-targeted-method-calls/cross-environment-isomorphism-constraints: + en: 5d14e1b7afc53efb + zh: e2f4b5814083738f +/agent-note-typert-gateway-targeted-method-calls/src-and-lib-operating-modes: + en: 1e366dcfab74831b + zh: 14199f25f20a9352 +/agent-note-typert-gateway-targeted-method-calls/host-gateway-resolution: + en: 88a95d7ab4621caf + zh: 89b63fb6440fca79 +/agent-note-typert-gateway-targeted-method-calls/the-shared-api-call-chain: + en: 391a59d0ba24cb34 + zh: b7294d6bb5f9d297 +/agent-note-typert-gateway-targeted-method-calls/connection-and-protocol-boundaries: + en: e8f9d48c42e27fb6 + zh: 445bc192d67c71f1 +/agent-note-typert-gateway-targeted-method-calls/package-boundaries: + en: df2c448d3a0680eb + zh: 47327d4d26ec5887 +/agent-note-typert-gateway-targeted-method-calls/shipped-scope-and-deferred-work: + en: b1c0c3dd77c56ce8 + zh: 769ffd4aeefd949c +/agent-note-typert-gateway-targeted-method-calls/alternatives-considered: + en: 0d68c499b7780f4f + zh: bdd1e57232b996e2 +/agent-note-typert-gateway-targeted-method-calls/verification: + en: 7433bdb522bb2083 + zh: 545c17613b636f00 +/agent-note-typert-gateway-targeted-method-calls/consequences: + en: c3459afdb606cfbe + zh: ec69f2bb39170a7c diff --git a/.agents/notes/implemented/architecture/2026-08-04-configuration-source-ownership.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-04-configuration-source-ownership.i18n.yaml index 67681ae7a7..9cd1ebd5f3 100644 --- a/.agents/notes/implemented/architecture/2026-08-04-configuration-source-ownership.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-04-configuration-source-ownership.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-04-configuration-source-ownership.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-04-configuration-source-ownership.md -2026-08-04-configuration-source-ownership.md: b8c146ed76e500fcde3affd92bc5188b83083223 -2026-08-04-configuration-source-ownership.zh.md: 22afc15aec97a40829655fcb8179ad90a369bf0c +/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide: + en: 1f6ee603f36c2e09 + zh: e08197958663219c +/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/problem: + en: d94bb81479bfa4a1 + zh: af44ceaecf84ee51 +/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/decision: + en: aea80ece13f2905b + zh: a880bc1a7839cf12 +/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/consequences: + en: 640b7ee4e8c57ed0 + zh: 1c17b3fba16861a8 +/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/alternatives-considered: + en: ac43499cfe7b8495 + zh: e5ab599e7d3ed753 diff --git a/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml index 17747b2942..0e07d79d52 100644 --- a/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-04-draft-provider-endpoint-interrogation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.md -2026-08-04-draft-provider-endpoint-interrogation.md: 469ab38b0f5609808a9df03237d4d21c0080d843 -2026-08-04-draft-provider-endpoint-interrogation.zh.md: 74c6bc7ed73572d5e99ea973c9ea94d22319cbdf +/agent-note-interrogating-a-draft-provider-endpoint: + en: a465a218bbc2f74e + zh: 60d1eae3c79337a0 +/agent-note-interrogating-a-draft-provider-endpoint/problem: + en: c50e44492b4b30a2 + zh: 74a17b3d3ec6cf0d +/agent-note-interrogating-a-draft-provider-endpoint/decision: + en: dc323940d59008f4 + zh: fc94284fcda71542 +/agent-note-interrogating-a-draft-provider-endpoint/decision/why-not-pi-ai-s-own-refresh-machinery: + en: a9654499e32c91b3 + zh: cfb5a76500b6fe1a +/agent-note-interrogating-a-draft-provider-endpoint/alternatives-considered: + en: 3b4b4c33401d862a + zh: bb79062a431576f1 +/agent-note-interrogating-a-draft-provider-endpoint/consequences: + en: a4911a205e713f60 + zh: 04adc6be1f4f34c7 +/agent-note-interrogating-a-draft-provider-endpoint/testing: + en: 40cf0cf6141eba6e + zh: 54a6097cf125b846 diff --git a/.agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.i18n.yaml index c58f37c2b3..943fa4e6af 100644 --- a/.agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-05-profile-plugin-bundles.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.md -2026-08-05-profile-plugin-bundles.md: 0607f1c9a2414cc16515967b4520da8a325853fd -2026-08-05-profile-plugin-bundles.zh.md: 9d25d3bea6337c472d161c721e44a66dca8470c9 +/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays: + en: 178252acff6e206f + zh: 2e5785ca3485f1e7 +/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/problem: + en: 504dd5f06475d707 + zh: 6557fd5649f48944 +/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/decision: + en: 4c58d379cd59d879 + zh: a6b6322fe82d7b6a +/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/alternatives-considered: + en: d906d7a421c6b5c0 + zh: b230cd58c1b7ac79 +/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/consequences: + en: 1aef147a0f31dfaf + zh: f0a8c6cbb9f0506b diff --git a/.agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.i18n.yaml index 56f2e6e156..171cfb3f1e 100644 --- a/.agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.i18n.yaml @@ -1,6 +1,94 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-09-client-conversation-node-assembly.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.md -2026-08-09-client-conversation-node-assembly.md: c8773b77fe761c3a566e02f0bd6aeb18f26e0a89 -2026-08-09-client-conversation-node-assembly.zh.md: 076ad35178996e01eae26b3909feae8d967414c1 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots: + en: 32abbd757c29e1ee + zh: ea0b9de97fd04196 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/problem: + en: ebdd3ce57ca5b24d + zh: 1aa034b4c3ed515f +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision: + en: af502b4eb9c09d33 + zh: a20cd538e66d3a4b +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/responsibility-layers: + en: 36b54ef989c331af + zh: 58cad4e07a800ba9 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract: + en: 74f17ca7ae05af83 + zh: 591fbc6c98f90262 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/kind-business-id-and-context-key: + en: 3081736d55350c67 + zh: bfa89f127c16c59f +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/match-event: + en: 5c97a2a4e91325a7 + zh: d29e52647b699810 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/conversationmatch: + en: 616c50e24ab990d1 + zh: 2c4a6d129f491046 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/conversationnodecontext: + en: 7d1ce8db92084e90 + zh: 7b7e6bf3840f6986 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/start-context-match-reader: + en: 1167bbc860581e33 + zh: 549896c06507ce57 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/reader-previous-kind: + en: 48e127652f2dab8d + zh: 35f48d4cefc8ce52 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/update-context-match: + en: 66bd752825ad2c41 + zh: 1cec352eb3d7ab28 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/publication-match: + en: 43be4c019d79e37a + zh: 54978ef8317e777b +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/buildlocationdata-context-scope: + en: 8c2b8eab071f5f7b + zh: d3207b1fcfff0a4b +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/buildviewnode-context-target: + en: c8091375cf986eaa + zh: 0c3226e3f42e51e4 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/no-generic-end: + en: d5a57346207b0da3 + zh: cb4a4f22ce237c34 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/location-is-a-first-class-engine-fact: + en: c66d870529588ea6 + zh: c9af12feb1e3fae2 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths: + en: cc8d60a4ceba6f41 + zh: 552220db9f839429 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/initial-history-tail-and-logical-backward-scanning: + en: a777deacfd73ed3f + zh: 2a9c75dd0aeedcd5 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/prepending-a-newly-loaded-older-page: + en: 3aa4c0a9006b35e8 + zh: 9627f4aaa18c8066 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/forward-live-append: + en: 484172cce965aad7 + zh: 15fffdd32c66cc95 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/consistency-across-replace-prepend-and-append: + en: a9cf356610f46a53 + zh: abc1149bf06b230e +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/how-built-in-businesses-use-definitions: + en: 2a7cae3607dcbc1a + zh: 86f6d8eb7871e253 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/how-built-in-businesses-use-definitions/matching-id-and-state: + en: 130f5db917574545 + zh: 9bf13c96abdc3a4e +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/how-built-in-businesses-use-definitions/chat-node-and-history-live-behavior: + en: 0c52c9ae98f84a86 + zh: d1c7587ad427d8fc +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/view-builder-and-react-identity: + en: ced7ab385e5a81a8 + zh: 5c319ed7ca40e5b8 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/runtime-and-render-path: + en: 114ca8db361d22e5 + zh: 37b6d474e855c187 +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/verification: + en: cf36507c86d1139c + zh: 1fcdd4e2c2cc106b +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/alternatives-considered: + en: e150870d4e2525ed + zh: 34eafb435036af9a +/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/consequences: + en: 0da343d3b6b29da3 + zh: d7b3774a23be7311 diff --git a/.agents/notes/implemented/architecture/2026-08-10-cancelled-stream-prefix-finalize.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-10-cancelled-stream-prefix-finalize.i18n.yaml index b471d553d6..a592660ac7 100644 --- a/.agents/notes/implemented/architecture/2026-08-10-cancelled-stream-prefix-finalize.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-10-cancelled-stream-prefix-finalize.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-cancelled-stream-prefix-finalize.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-cancelled-stream-prefix-finalize.md -2026-08-10-cancelled-stream-prefix-finalize.md: 1e6fe59bcc1b323941b69d0e9232f0bcf9e56f53 -2026-08-10-cancelled-stream-prefix-finalize.zh.md: 7aa81f179b80925ef47a8820f8a80c1ef37ec5ea +/agent-note-cancelled-streams-finalize-their-delivered-prefix: + en: d727a01958e5724c + zh: b2d11741f70caf24 +/agent-note-cancelled-streams-finalize-their-delivered-prefix/problem: + en: 142c716d174403a5 + zh: bbb906ca25d7c9f4 +/agent-note-cancelled-streams-finalize-their-delivered-prefix/decision: + en: 28e166977c0dffde + zh: d7c6b175984627fc +/agent-note-cancelled-streams-finalize-their-delivered-prefix/alternatives-considered: + en: ca4363e11e8eff48 + zh: 834152cbe57e1f3e +/agent-note-cancelled-streams-finalize-their-delivered-prefix/consequences: + en: 2d58504acfc4fffe + zh: a6a7ca872c003099 +/agent-note-cancelled-streams-finalize-their-delivered-prefix/testing: + en: 241507aff996c16a + zh: 599eed3162f3ba8d diff --git a/.agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.i18n.yaml index 44a8fbf89f..9ac900a05f 100644 --- a/.agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-fork-children-stay-one-shot.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.md -2026-08-10-fork-children-stay-one-shot.md: 0edf6ca9347dcf57313365e570daed22589f69fd -2026-08-10-fork-children-stay-one-shot.zh.md: c2e3504bd21ec6dd6b3feba4ed8abdaec3ee45a4 +/agent-note-forked-children-preserve-the-parent-request-prefix: + en: 5254ea4573dedd96 + zh: ba4ab4517dad0d9f +/agent-note-forked-children-preserve-the-parent-request-prefix/problem: + en: 1fe344c95a0de36d + zh: 656c3e0f1117f64e +/agent-note-forked-children-preserve-the-parent-request-prefix/decision: + en: 7461852090348b34 + zh: ad6c9e0ce65a3e85 +/agent-note-forked-children-preserve-the-parent-request-prefix/alternatives-considered: + en: 80504ffd8331e6c5 + zh: 193261bdde24b4bb +/agent-note-forked-children-preserve-the-parent-request-prefix/consequences: + en: 54c4ce3ee0fee4d2 + zh: 8a63fb3486c76551 +/agent-note-forked-children-preserve-the-parent-request-prefix/consequences/accepted-risks: + en: f634caa9973eaedb + zh: 820291096c8e7352 diff --git a/.agents/notes/implemented/architecture/2026-08-10-host-plane-ownership-after-presets.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-10-host-plane-ownership-after-presets.i18n.yaml index 4cc71b035b..93f0597f19 100644 --- a/.agents/notes/implemented/architecture/2026-08-10-host-plane-ownership-after-presets.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-10-host-plane-ownership-after-presets.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-host-plane-ownership-after-presets.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-host-plane-ownership-after-presets.md -2026-08-10-host-plane-ownership-after-presets.md: daf48f27c2228b71319d6f5410e6cabe3bc02b39 -2026-08-10-host-plane-ownership-after-presets.zh.md: 56babf5e715584b4ee061a334158d46e59b0d350 +/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane: + en: 4b22d7def09af6eb + zh: 89b43fb2761cb17b +/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/problem: + en: 5a5d4de7d40ed86b + zh: abfae08f9c291c54 +/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/decision: + en: 60be2f515ff5f46d + zh: ee8514deadb08260 +/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/testing: + en: a7b7ca354607dd21 + zh: f88356bfc7dc770e +/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/alternatives-considered: + en: eac46307265e647d + zh: acfad02f8ca1dc3f +/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/consequences: + en: d8576d7db9dea547 + zh: 428bb5a7e609d170 diff --git a/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.i18n.yaml index 7606190f02..b0f473168f 100644 --- a/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-remote-event-delivery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.md -2026-08-10-remote-event-delivery.md: 3eaa26fb92c40b3a20cab11d4522bcf68b8a207f -2026-08-10-remote-event-delivery.zh.md: d41589f1b800da98342210d2e429a2b67b6c61f2 +/agent-note-remote-event-delivery-ctx-remote-on: + en: 4b64b9fab76b5185 + zh: 57a11b8a480a49dd +/agent-note-remote-event-delivery-ctx-remote-on/problem: + en: d3016e40cefe047f + zh: 83e83c25a13383e5 +/agent-note-remote-event-delivery-ctx-remote-on/decision: + en: 83f6f48ce1fc517b + zh: abcfcd1c0eb777ea +/agent-note-remote-event-delivery-ctx-remote-on/decision/consumer-contract-dsh-typert-protocol: + en: 8f30b121dd59a3a3 + zh: 92a5e0e63936c393 +/agent-note-remote-event-delivery-ctx-remote-on/decision/the-allowlist-one-declaration-read-by-both-faces: + en: ce8c2e030baf7049 + zh: bb6beb40228e40ae +/agent-note-remote-event-delivery-ctx-remote-on/decision/wire-protocol-api-gateway-remote-mux: + en: 5c89d238a469e79f + zh: d0cf485f0d245e7d +/agent-note-remote-event-delivery-ctx-remote-on/decision/the-apps-web-browser-e2e-belongs-to-the-host-face: + en: a29e07b8013f7f9f + zh: 4f066efa96f2d22f +/agent-note-remote-event-delivery-ctx-remote-on/decision/change-inventory: + en: 49fc44d242a87b69 + zh: 42c4c36296849a88 +/agent-note-remote-event-delivery-ctx-remote-on/alternatives-considered: + en: b75743ab277c1557 + zh: e8e05f41ce1bc2f3 +/agent-note-remote-event-delivery-ctx-remote-on/verification: + en: 4ec0e1c76da8d3b6 + zh: 23de66f8fc659c15 +/agent-note-remote-event-delivery-ctx-remote-on/consequences: + en: c50a0968e3f65df7 + zh: 786f33cf1e95dae4 +/agent-note-remote-event-delivery-ctx-remote-on/related: + en: b64e771dafa6c05b + zh: 4c2f47884f5a2d19 diff --git a/.agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.i18n.yaml index 9a020189ec..e33e7f556d 100644 --- a/.agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-session-log-version-mechanism.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.md -2026-08-10-session-log-version-mechanism.md: 9cb0940f767aa27d5a5106fb78b528c1e3e2695b -2026-08-10-session-log-version-mechanism.zh.md: e1424f24e5dd74b243fe1f0aebceb5d420b9b8c3 +/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker: + en: a3c7418dfaa328a8 + zh: e702faa662f821ae +/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/problem: + en: c11f54e24be6cc3b + zh: c1c274fbb161a57b +/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/decision: + en: 084bcb4de484ef32 + zh: 1edf1445913ac7b1 +/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/decision/writer-and-publication-authority: + en: 461eaa03c6a4f441 + zh: 7e5b131326dc702c +/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/consequences: + en: 8ce6dcec183fab88 + zh: a43e9315ad147b15 +/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/alternatives-considered: + en: 2a1580516406ae53 + zh: 7a650804eb520be0 diff --git a/.agents/notes/implemented/architecture/2026-08-13-credential-records-and-authorization-flows.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-13-credential-records-and-authorization-flows.i18n.yaml index b54dd0639b..94fd1f56d0 100644 --- a/.agents/notes/implemented/architecture/2026-08-13-credential-records-and-authorization-flows.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-13-credential-records-and-authorization-flows.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-13-credential-records-and-authorization-flows.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-13-credential-records-and-authorization-flows.md -2026-08-13-credential-records-and-authorization-flows.md: 6bf65761c98689d62935d6e36a040e05c38aa653 -2026-08-13-credential-records-and-authorization-flows.zh.md: 72ec310c2ff0141f83096c805d5ccd60fe5cd57e +/agent-note-credential-records-and-authorization-flows: + en: f624412adde88819 + zh: ac1adbc505394ca2 +/agent-note-credential-records-and-authorization-flows/problem: + en: 7be98011b76b2376 + zh: e01cd9f1039c7875 +/agent-note-credential-records-and-authorization-flows/decision: + en: 57e30c6b56664fee + zh: ab1c7354b47f503e +/agent-note-credential-records-and-authorization-flows/decision/two-mechanisms-the-seams-needed-underneath: + en: e4d5663533e566a2 + zh: 212a1722b78ee727 +/agent-note-credential-records-and-authorization-flows/alternatives-considered: + en: bb484a8d612a43cd + zh: 2a85ba010ed083e1 +/agent-note-credential-records-and-authorization-flows/consequences: + en: ef7c5f6fa346c1d8 + zh: 439b0d8394015f1e +/agent-note-credential-records-and-authorization-flows/testing: + en: 6c8c01f75e6f916b + zh: 7c5c7491f64f2936 diff --git a/.agents/notes/implemented/architecture/2026-08-15-client-shells-and-dynamic-packages.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-15-client-shells-and-dynamic-packages.i18n.yaml index 57e892121c..3afca5571b 100644 --- a/.agents/notes/implemented/architecture/2026-08-15-client-shells-and-dynamic-packages.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-15-client-shells-and-dynamic-packages.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-15-client-shells-and-dynamic-packages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-15-client-shells-and-dynamic-packages.md -2026-08-15-client-shells-and-dynamic-packages.md: ad2bb26b84253e859e567775eec3b06d73b0003b -2026-08-15-client-shells-and-dynamic-packages.zh.md: 70563962b3c613caa611c61a0c690d2e0e777def +/agent-note-client-shell-layering-and-dynamic-package-boundaries: + en: c8976de4e5547fdd + zh: 3d1bcb3273993af4 +/agent-note-client-shell-layering-and-dynamic-package-boundaries/problem: + en: bd5f38c7aba648dc + zh: 3c28670556b3b34d +/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision: + en: a15c7c13f167e5ac + zh: a15c7c13f167e5ac +/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/layers-and-build-forms: + en: a1750de2d48551af + zh: ffea0b75c292f186 +/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/shared-module-requests: + en: cedddcca8a7bae6d + zh: a568a1130229f48c +/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/parser-preloading-and-react-handoff: + en: 4b503618b271fc28 + zh: e2148f44efa769d2 +/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/dependency-declarations: + en: 47c332b836c2933b + zh: ed190dbb14b98911 +/agent-note-client-shell-layering-and-dynamic-package-boundaries/alternatives-considered: + en: 2257178f8f474757 + zh: 7da85b5899b91520 +/agent-note-client-shell-layering-and-dynamic-package-boundaries/consequences: + en: c7653b12059aebd7 + zh: a79b63f28d18f8c4 diff --git a/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml index 8a7e75ad27..c0aa66e83f 100644 --- a/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-18-experimental-agent-teams-packages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.md -2026-08-18-experimental-agent-teams-packages.md: 92eba148b328135301b196c9a17e49ee23ddb3f6 -2026-08-18-experimental-agent-teams-packages.zh.md: 6f4d004a78e32e2c27ad65648c446b3cd54c07ad +/agent-note-publish-agent-teams-under-experimental-package-names: + en: 4c772309d60d4ccc + zh: 91bf0acc208e5167 +/agent-note-publish-agent-teams-under-experimental-package-names/problem: + en: e45938d278a6c12d + zh: 93c790d466f7bd12 +/agent-note-publish-agent-teams-under-experimental-package-names/decision: + en: a2555b0c5a6f6f53 + zh: f7082ceb8542b0fb +/agent-note-publish-agent-teams-under-experimental-package-names/alternatives-considered: + en: 869decdfbc7b3466 + zh: b51f5ab731d1a84a +/agent-note-publish-agent-teams-under-experimental-package-names/consequences: + en: f827547f976bf92b + zh: d94e17b8fa2e8304 diff --git a/.agents/notes/implemented/architecture/2026-08-18-session-history-and-event-transport.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-18-session-history-and-event-transport.i18n.yaml index 3b16c5a3d9..478f9b70b4 100644 --- a/.agents/notes/implemented/architecture/2026-08-18-session-history-and-event-transport.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-18-session-history-and-event-transport.i18n.yaml @@ -1,6 +1,58 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-18-session-history-and-event-transport.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-18-session-history-and-event-transport.md -2026-08-18-session-history-and-event-transport.md: db5c403562101bca76c0d39a037a199b2ca164f3 -2026-08-18-session-history-and-event-transport.zh.md: 41ff3ea2dd538edb457e0db3108a900bab220e47 +/agent-note-session-history-control-state-and-remote-event-transport: + en: 79e15a9da0b4053b + zh: fb9719cd520abf7b +/agent-note-session-history-control-state-and-remote-event-transport/problem: + en: b40a730a4cd03535 + zh: 10d5a61824b53443 +/agent-note-session-history-control-state-and-remote-event-transport/decision: + en: bbe86a1833ab5547 + zh: 987a2ade8b4cb909 +/agent-note-session-history-control-state-and-remote-event-transport/decision/connection-generation-and-physical-connections: + en: c4342f89bf96a63b + zh: f8749f02bcfccc4e +/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model: + en: fb2c7bcde3b1672a + zh: a05bd30be07e5413 +/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model/remotestream: + en: d55c2ce88400e448 + zh: 344d510ab946bb9f +/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model/remotesnapshotstream: + en: f2c1d2b00d9554fd + zh: c3e85cf344f7ef24 +/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model/remotejournalstream: + en: d5d0d6a57a4fa581 + zh: 265973b157f957d9 +/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller: + en: e338ac27490a380f + zh: 12600011ec742e5b +/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller/activation-policy: + en: 534dcc62a26d305e + zh: 03d64abc0a46bbec +/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller/session-journal: + en: bb710f8cf35f2028 + zh: aae2cfb8cd848069 +/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller/session-live-control: + en: a11d627cd68650c3 + zh: 9aff565b9f712853 +/agent-note-session-history-control-state-and-remote-event-transport/decision/workspace-controller: + en: ce0c3fcff169412d + zh: 7076182817358dff +/agent-note-session-history-control-state-and-remote-event-transport/decision/remote-event: + en: c76291bf39999882 + zh: 76f032664fb91ead +/agent-note-session-history-control-state-and-remote-event-transport/decision/api-proxy-s-remaining-boundary: + en: 457408013eb78636 + zh: 126e9d263225d7c4 +/agent-note-session-history-control-state-and-remote-event-transport/alternatives-considered: + en: 22a77c3afd4df0d6 + zh: 661cf8d02d741f1d +/agent-note-session-history-control-state-and-remote-event-transport/verification: + en: 7328f28ba3e32f4c + zh: 2150f20437a473af +/agent-note-session-history-control-state-and-remote-event-transport/consequences: + en: 808ce6d1310876a2 + zh: d9e8fe2aa5cda617 diff --git a/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.i18n.yaml index 4830f124d8..24f76c7cb0 100644 --- a/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-19-session-projection-mandatory-seam.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.md -2026-08-19-session-projection-mandatory-seam.md: e1c6835311228fcaf7a22140f1db8da748603186 -2026-08-19-session-projection-mandatory-seam.zh.md: 5d6a5169a556febae3f5c960b2d519c324d99863 +/agent-note-session-projections-as-a-required-reader-seam: + en: 41f30d473ff53ce2 + zh: 6851c4414f5331c1 +/agent-note-session-projections-as-a-required-reader-seam/problem: + en: c0c779c717cad546 + zh: 5d2916ac86bf5d84 +/agent-note-session-projections-as-a-required-reader-seam/decision: + en: a1c50d2f43334a88 + zh: d7736994733454b4 +/agent-note-session-projections-as-a-required-reader-seam/alternatives-considered: + en: aea3da939c90d240 + zh: 21e91c481cdd23b7 +/agent-note-session-projections-as-a-required-reader-seam/consequences: + en: 73325513ec70fbb2 + zh: 610bf34b9f9db420 diff --git a/.agents/notes/implemented/architecture/2026-08-20-client-session-conversation-ownership.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-20-client-session-conversation-ownership.i18n.yaml index d406110a99..a1044d0181 100644 --- a/.agents/notes/implemented/architecture/2026-08-20-client-session-conversation-ownership.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-20-client-session-conversation-ownership.i18n.yaml @@ -1,6 +1,151 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-20-client-session-conversation-ownership.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-20-client-session-conversation-ownership.md -2026-08-20-client-session-conversation-ownership.md: 0d2f19cff1d4625d678a25c87bcc55fc3f2bfad4 -2026-08-20-client-session-conversation-ownership.zh.md: fdb2420efff88e0a5a33dba79bebf0d072280453 +/agent-note-client-session-conversation-and-ui-ownership-layers: + en: 24e6b5894fbcdc97 + zh: 1fe37f9234be5ff4 +/agent-note-client-session-conversation-and-ui-ownership-layers/problem: + en: 87d3188b6f534c2a + zh: e805eb702d3f0f7f +/agent-note-client-session-conversation-and-ui-ownership-layers/decision: + en: 0db1b673e3486661 + zh: ce9fdf739a211943 +/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles: + en: 8fa111a6c0477c2c + zh: 89bfc65c4986c521 +/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles/controllers-are-react-free-logic-owners: + en: 821989170ad76994 + zh: 0ed142bea166fc3a +/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles/ui-adapters-own-react-integration: + en: 4d032e048364fb97 + zh: 82a435531efdaa78 +/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles/slot-scopes-and-standard-props-are-separate: + en: b6f585ca87e1fc6f + zh: 53fd58c3e93cf17c +/agent-note-client-session-conversation-and-ui-ownership-layers/package-ownership: + en: 2fc4b50a651b1847 + zh: 7dceeecb9c58e838 +/agent-note-client-session-conversation-and-ui-ownership-layers/overall-data-flow: + en: e7c11e82db080dd4 + zh: 5a8a501a128366d6 +/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client: + en: b88f651b1bfb8b5e + zh: b88f651b1bfb8b5e +/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/scope-of-sessionsnapshot: + en: 0abb8da3074137f6 + zh: 92a0074930bb63b6 +/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/three-read-faces: + en: 87f83e04ee6bfe38 + zh: 9bf3548897e80e45 +/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/sessioneventsource: + en: 377ec73183b2e461 + zh: 6f24c1f723d20938 +/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/session-binding-lifecycle: + en: d03dd92afa683183 + zh: b9b7ae5d845bf472 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session: + en: 860315b96703371d + zh: 860315b96703371d +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/service-responsibilities: + en: d075ba28fd37bff2 + zh: e2d430d1f3e89b15 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/standard-source-registration: + en: e4be6d4b1d79b342 + zh: 7cb0e8c0f6358b50 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/scope-binding: + en: 84c20cce96035340 + zh: d1cc2a2e5f86f86b +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/sessionprovider: + en: 5d9bdb1f784f97f2 + zh: a4b3de7a21b84fce +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/pending-interactions: + en: 85e358a03ffac4ba + zh: 54b1d5ed6197f2c2 +/agent-note-client-session-conversation-and-ui-ownership-layers/workspace-controller-and-ui-workspace: + en: 45e5f41550e62a3d + zh: d4e6d8f5b397bb51 +/agent-note-client-session-conversation-and-ui-ownership-layers/workspace-controller-and-ui-workspace/scope-of-workspacesnapshot: + en: db0bb2a43bbdbbcc + zh: a064d7ffc42bb4a1 +/agent-note-client-session-conversation-and-ui-ownership-layers/workspace-controller-and-ui-workspace/ui-workspace-composition-responsibilities: + en: cb73b43d8b485bd0 + zh: 134538a67bf6da0d +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation: + en: b23aedfa06639f39 + zh: b23aedfa06639f39 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/assembly-core: + en: c004ba2b21b22344 + zh: ae66652c239ec213 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/definition-and-view-registries: + en: d35b868d88cff47d + zh: 0e718ca3efdbf224 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/conversation-react-adapter: + en: 913a8f9b4f481bff + zh: ca18aa731f15250f +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/input-and-composer: + en: 0a38e5b9f71f06f9 + zh: 40077352131fae48 +/agent-note-client-session-conversation-and-ui-ownership-layers/chat-and-trajectory-targets: + en: 8ad17fee25bef35f + zh: b5e3d07111cdde7a +/agent-note-client-session-conversation-and-ui-ownership-layers/chat-and-trajectory-targets/chat-owner: + en: 43a4a38d9500ebd4 + zh: 2df24d5530ab11a7 +/agent-note-client-session-conversation-and-ui-ownership-layers/chat-and-trajectory-targets/trajectory-owner: + en: c8d48f4e7ac3a6f2 + zh: a65f680c30f6123c +/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question: + en: 45e1a7d1a4f8b73a + zh: 712e01e736199846 +/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question/stable-registration: + en: 877881c5ae993245 + zh: 6098103c5414c6e9 +/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question/one-waterfall-request: + en: b1ff0285ab378448 + zh: 9acc318381df9cce +/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question/one-pending-projection: + en: 4cbfb31b44db8d6e + zh: 110e5067c82bbce3 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store: + en: d8de1632a217da9f + zh: 32e68fc042041f42 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store/ui-renderer: + en: 928e5816ad6430ea + zh: b3e658f276d4e572 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store/store: + en: bf24926000a4fc38 + zh: 702ecdb4aab9dc12 +/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store/registration-and-release-order: + en: 7f9a4b5da9c857a4 + zh: 6e5d5c870fcea214 +/agent-note-client-session-conversation-and-ui-ownership-layers/composition-and-dependency-direction: + en: 6ec1176913cdabab + zh: b0a0c8f443e51d33 +/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance: + en: 53c7e08a0e422d7e + zh: 57a1417c0a4d5dd5 +/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/choose-the-data-owner-first: + en: e16f4903a20d477c + zh: bfe217c7d93314ed +/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/add-session-scoped-data: + en: e5e6831f726d1e68 + zh: 1a12311f64b7da5c +/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/add-a-conversation-target: + en: a5ecfa4225fa559b + zh: e1da4db4f80e246b +/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/add-a-pending-interaction-domain: + en: 19985324015f1b4a + zh: 3055d88e1173a2db +/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/review-checks: + en: 2800c6393a75210d + zh: 7bdf8911d3f0bb22 +/agent-note-client-session-conversation-and-ui-ownership-layers/verification: + en: 04c54874beafe7ff + zh: e13dffa5d952069a +/agent-note-client-session-conversation-and-ui-ownership-layers/alternatives-considered: + en: 83dce7fe89397a9f + zh: 8076ebb1d61ba6bf +/agent-note-client-session-conversation-and-ui-ownership-layers/consequences: + en: 307497e3f0eb2158 + zh: c7189a9811edb4a2 diff --git a/.agents/notes/implemented/architecture/2026-08-21-deepseek-llm-api-request-extensions.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-21-deepseek-llm-api-request-extensions.i18n.yaml index 1d5d4521cf..800a60bd65 100644 --- a/.agents/notes/implemented/architecture/2026-08-21-deepseek-llm-api-request-extensions.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-21-deepseek-llm-api-request-extensions.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-21-deepseek-llm-api-request-extensions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-21-deepseek-llm-api-request-extensions.md -2026-08-21-deepseek-llm-api-request-extensions.md: 7a3609a3f7d8b2aa6edb634643ef234b7e3e8c07 -2026-08-21-deepseek-llm-api-request-extensions.zh.md: 69426df3cc85851e448b98dc51af79555b8cbafc +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages: + en: bbb93b705960a21b + zh: 0fc6fc150215f08f +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/problem: + en: 4945ce54f66df55c + zh: 9fbd833c1d8122a7 +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/decision: + en: 75b5f9e642b6c25c + zh: c775a113d5ea0626 +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/incremental-session-log-field: + en: edae015c24a2bc42 + zh: 0c7e23be17d9d424 +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/plugin-package-field: + en: 0e51b8d8a1bd60fc + zh: dd18fd176c3f101f +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/deferred-inventory-caching: + en: eb69576e756f4aa1 + zh: 5c1923159da3f7a2 +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/verification: + en: 0bda0074b5e11b44 + zh: 4989c1bb840c78ce +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/alternatives-considered: + en: 5faf7699272f99b4 + zh: 7a402e24c80131cf +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/alternatives-considered/why-not-request-relative-message-references: + en: 3f03c2028adf5814 + zh: c50f7f7b0af04655 +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/alternatives-considered/why-not-omit-assistant-chunks-or-overlapping-event-data: + en: b6eff63f49220dcc + zh: 8e4a6c785ed2256a +/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/consequences: + en: c9a0a5323480eb3d + zh: 5df6e88de50038ce diff --git a/.agents/notes/implemented/architecture/2026-08-22-single-dsh-application-launcher.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-22-single-dsh-application-launcher.i18n.yaml index 0094a4b396..2390a9244b 100644 --- a/.agents/notes/implemented/architecture/2026-08-22-single-dsh-application-launcher.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-22-single-dsh-application-launcher.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-22-single-dsh-application-launcher.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-22-single-dsh-application-launcher.md -2026-08-22-single-dsh-application-launcher.md: 46a627eed652a0a0edaf7b900510b5d369efcdf0 -2026-08-22-single-dsh-application-launcher.zh.md: b7fa0f2b35c2fbf6c3a28f463b73170c84547a40 +/agent-note-one-dsh-launcher-for-application-profiles: + en: c0b608af89f3a9b4 + zh: 2995eef6243889d5 +/agent-note-one-dsh-launcher-for-application-profiles/problem: + en: 34b82725480cf15b + zh: 83cff42d5a38e64f +/agent-note-one-dsh-launcher-for-application-profiles/decision: + en: a15c7c13f167e5ac + zh: a15c7c13f167e5ac +/agent-note-one-dsh-launcher-for-application-profiles/decision/launch-scope: + en: 9cea027468d5d37c + zh: 359c6cb7842b8b7f +/agent-note-one-dsh-launcher-for-application-profiles/decision/profile-applications: + en: 44028538e06420d3 + zh: 71cf992b7847d822 +/agent-note-one-dsh-launcher-for-application-profiles/decision/typescript-sdk-customization: + en: 8ee88035cf64eeb3 + zh: 6184e50fc4d47348 +/agent-note-one-dsh-launcher-for-application-profiles/decision/python-runtime: + en: e154533170f1cdb6 + zh: 20f8f0d5e111f447 +/agent-note-one-dsh-launcher-for-application-profiles/decision/enforcement: + en: 9ce8d86b65064f38 + zh: 27b8ad426cb319a2 +/agent-note-one-dsh-launcher-for-application-profiles/existing-decisions-and-supersession: + en: 71599a4df773fe78 + zh: d12ae1625d11cc9c +/agent-note-one-dsh-launcher-for-application-profiles/alternatives-considered: + en: 763d9f86e10af3db + zh: e87b35f1f7425da7 +/agent-note-one-dsh-launcher-for-application-profiles/verification: + en: 0b883651974d3ac3 + zh: 8ed0bb3ee97a25f8 +/agent-note-one-dsh-launcher-for-application-profiles/consequences: + en: 8453d34835bf6ada + zh: 86308a497c969b81 diff --git a/.agents/notes/implemented/architecture/2026-08-23-client-derived-tool-presentation.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-23-client-derived-tool-presentation.i18n.yaml index dcadb91f94..d09a4b6a82 100644 --- a/.agents/notes/implemented/architecture/2026-08-23-client-derived-tool-presentation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-23-client-derived-tool-presentation.i18n.yaml @@ -1,6 +1,229 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-23-client-derived-tool-presentation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-23-client-derived-tool-presentation.md -2026-08-23-client-derived-tool-presentation.md: 931276fa6d4c0590746b6c59eeae9f998f05629c -2026-08-23-client-derived-tool-presentation.zh.md: b930f98da17a1cb6ecbf605e3a9f37255ba75fc9 +/agent-note-client-derived-presentation-from-raw-session-tool-events: + en: de8d02e979715600 + zh: 1db4d0364c30a7e3 +/agent-note-client-derived-presentation-from-raw-session-tool-events/problem: + en: 9f34c53e647c69ca + zh: 551776c7cc9618b5 +/agent-note-client-derived-presentation-from-raw-session-tool-events/decision: + en: 5c8de416b8fa0fb1 + zh: 1662926ba8e17405 +/agent-note-client-derived-presentation-from-raw-session-tool-events/decision/goals-and-non-goals: + en: 4ff7b07cb79bc9de + zh: a74ec6e7ebbede0a +/agent-note-client-derived-presentation-from-raw-session-tool-events/terminology: + en: 021106dd41176715 + zh: 131caff7bd37251b +/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership: + en: 5cc496057205b298 + zh: 160158394dfa2df3 +/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/tool-execution-and-persistence: + en: 675a1da36b918a3b + zh: 88b8d338e9cfcd79 +/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/host-journal-reads: + en: 36345a3eb5801cdf + zh: 498fd14beaaadd9c +/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/client-data-and-presentation: + en: 72e14ba086d89e90 + zh: a451a63c3ab9e5d8 +/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/production-consumer-audit: + en: 5351e75c1e417359 + zh: b14b28c44f723de5 +/agent-note-client-derived-presentation-from-raw-session-tool-events/data-flow: + en: 357a34a2f7796545 + zh: 671b1ef7b2c64cec +/agent-note-client-derived-presentation-from-raw-session-tool-events/data-flow/layer-responsibilities: + en: f6c95424849ed9c8 + zh: 0c7ef9254d9f20c0 +/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts: + en: 6d865d0eb0c5e003 + zh: 1eb0fb7acfb30975 +/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts/sessionevententry: + en: 178513914d9c931c + zh: 23b39e82c90a247e +/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts/durable-log: + en: 6a0aa4dac1cf48d7 + zh: 23753410e5056612 +/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts/presentationmeta: + en: 51f99cfca9c4c808 + zh: ce95bab241d306f7 +/agent-note-client-derived-presentation-from-raw-session-tool-events/host-design: + en: 16fd2b3e545ede21 + zh: 4d28f52132495441 +/agent-note-client-derived-presentation-from-raw-session-tool-events/host-design/performance-constraints: + en: 102b14e3eb9367ff + zh: d391099dbc41db24 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation: + en: 46a772ac51da43a2 + zh: 8709a7e3e6a872f1 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation/root-and-ptc-dispatch-subcalls: + en: 2c8ff511a5527a72 + zh: 3eeddc9686ff1709 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation/missing-call-head: + en: b9efc339173e546e + zh: c7639861b3b96e83 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation/argument-and-metadata-narrowing: + en: 1ec566ca574374c7 + zh: 4bab6b7050a57afa +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design: + en: f40f0a8ee8c055c0 + zh: 6957b7372956113c +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/generic-tool-row: + en: 20ff82b092325c5c + zh: 1afd5441a9816117 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/terminal-card: + en: eab7f366df331b6e + zh: d82499e2a982206f +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/diff-card: + en: ea384415c94f82da + zh: 5f146c6cb534e1db +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/read-card: + en: 0fd9413ae837a36d + zh: 0e421eb162021983 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/search-card: + en: 5a655646431ad75b + zh: 67cafcbead983495 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/web-card: + en: bc6415353d231ae0 + zh: a4614630b60d1dc1 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/renderers-already-using-raw-blocks: + en: b8fc7a1a4dbdd45e + zh: ea97490599b29481 +/agent-note-client-derived-presentation-from-raw-session-tool-events/deliverables: + en: f1769a479af834d4 + zh: 083397eeed5263b8 +/agent-note-client-derived-presentation-from-raw-session-tool-events/fixtures-and-test-data: + en: e5b42aa311079bd7 + zh: ec4cf97037ece7e0 +/agent-note-client-derived-presentation-from-raw-session-tool-events/presentation-equivalence-matrix: + en: 30915c26728eeafe + zh: eea04dea7b4604a5 +/agent-note-client-derived-presentation-from-raw-session-tool-events/client-extension-contract: + en: 96619dfd5ef299cf + zh: 253df98eb42ad75e +/agent-note-client-derived-presentation-from-raw-session-tool-events/failures-and-fallback: + en: 4cca3e16a9f2d13b + zh: 6952abf98801837d +/agent-note-client-derived-presentation-from-raw-session-tool-events/same-named-host-providers: + en: 12b3304157f058ad + zh: 497fa0defe1bd2cd +/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope: + en: 25ddd2f604230fd0 + zh: 7f3b1b5863252635 +/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/session-controller: + en: 23ff740eb2e5245f + zh: 72c9907849e56656 +/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/session-controller-client: + en: 57d3babfb1ce3429 + zh: 80284ebf7ad31446 +/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/ui-conversation-chat-and-trajectory: + en: dafc7a3c08c1823a + zh: 426ef3358597c64a +/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/ui-tool-and-deliverables: + en: 9e090419d542afe8 + zh: 8e1b743d750bd402 +/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/fixtures-documentation-and-generated-artifacts: + en: 99f628433b484f98 + zh: 65536e9b4c3dacc4 +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix: + en: 5fae53c1eaed3f11 + zh: bbce23df01398151 +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/host: + en: 0150b57068fef08a + zh: 5fe2e638b0fd1aa8 +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/client-conversation: + en: b04bf4f1c89917b5 + zh: 8757c90691c48712 +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/client-card-model: + en: 7d57f2e54d287fce + zh: 6b96d4fa8e4a6b0f +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/deliverables: + en: 434f4f269d9b0858 + zh: 3eeb8ac42364fb25 +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/assembly-and-browser: + en: 5c43e9a729a57a4f + zh: aef26f6ef83f1fe1 +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/static-and-documentation: + en: d25ffb1f8f60e04c + zh: 3a105c9669a9b978 +/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-commands: + en: f562776ceda2ac53 + zh: 24c833727dc5c260 +/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-invariants: + en: 3377510eb7639807 + zh: 1d7cdf2a67cf9bde +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 6119e2aff3b6be5a +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/optimize-only-backscanargs-and-retain-views: + en: a478eeddf0f47cf7 + zh: e9943194d90cf793 +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/add-a-presenter-registry-to-the-client: + en: 96a616a8296de2ad + zh: 988b7f46698aed1c +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/have-the-conversation-tool-definition-produce-one-unified-view: + en: 088a7896e8967523 + zh: da6f8ddaaf2923a7 +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/delete-presentationmeta: + en: 41c11f4e2c14917f + zh: f06d53dbd7170557 +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/persist-canonical-tool-results: + en: a6b1064482cb48c5 + zh: 3fe58419d0aec36d +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/delete-host-presenter-apis: + en: 6bfc4306addf18d4 + zh: f03c6460d4207e83 +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/import-host-tool-implementations-into-the-client: + en: d709f38059905c10 + zh: f216be6b8cb18938 +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/query-presentation-from-the-host-per-result: + en: bc8905288acaa820 + zh: ff551936bd5ea93f +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/allow-presentation-enhancements: + en: fc270977e320fd0a + zh: bb77a11ec6973d03 +/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/accept-temporary-generic-degradation: + en: 1a8fd108d32bd199 + zh: 5cd1c7adf3fe824d +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences: + en: fc74ce3d77d3f6f1 + zh: 5bf52b18d86ea925 +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/client-and-host-logic-drift: + en: 9314413ed5b41d10 + zh: 0cca0d80eb421b9c +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/same-named-providers-lack-stable-identity: + en: 81e3e790bb32e2b2 + zh: 2b0f0194ee22e414 +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/metadata-is-unknown-json: + en: 631d7726c1bfb908 + zh: 52e58e2e0aae1610 +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/preset-owned-projection-availability: + en: c12c5a464eefe88a + zh: d184c0cefbbabfee +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/two-targets-must-stay-synchronized: + en: 9ee330e015d9b569 + zh: 11d50bce62b91298 +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/deliverables-has-a-hidden-dependency: + en: c9f4fc5ce7c0e6cc + zh: bb1b73b7313112e2 +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/fixtures-can-create-false-confidence: + en: 5f21119c0a360eaa + zh: f656f35d802ec74a +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/incorrectly-refreshing-snapshots: + en: aeab59c94afe3c5f + zh: 77378f5aa76e9056 +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/documentation-drift: + en: 4c724d879b27bd5d + zh: 63b58c6ab26d7934 +/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/remote-protocol-narrowing: + en: d7e581086940fafa + zh: d452320fee6ef875 +/agent-note-client-derived-presentation-from-raw-session-tool-events/relationship-to-existing-decisions: + en: f7501cfad1c94062 + zh: 2574582ee86c3c4a +/agent-note-client-derived-presentation-from-raw-session-tool-events/deferred: + en: dcd92bc33fbb1885 + zh: 3d1ea8a6b3f3f3a7 diff --git a/.agents/notes/implemented/architecture/2026-08-23-locale-owned-client-ui-copy.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-23-locale-owned-client-ui-copy.i18n.yaml index 1aa080d1fe..49f6adf176 100644 --- a/.agents/notes/implemented/architecture/2026-08-23-locale-owned-client-ui-copy.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-23-locale-owned-client-ui-copy.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-23-locale-owned-client-ui-copy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-23-locale-owned-client-ui-copy.md -2026-08-23-locale-owned-client-ui-copy.md: bc4d8efbce1f246f712e3afe6af40d1518e8cb17 -2026-08-23-locale-owned-client-ui-copy.zh.md: ce996a4aafc392e739bec2eccd8714cfeff7d8e9 +/agent-note-locale-owned-client-ui-copy: + en: 048ebc19d489b40d + zh: 681d1c4167f0101f +/agent-note-locale-owned-client-ui-copy/problem: + en: b007d31d9998b878 + zh: 857921e0d57288f9 +/agent-note-locale-owned-client-ui-copy/decision: + en: 8a5e0abec93fcb91 + zh: bf9fe95e48fc7eb6 +/agent-note-locale-owned-client-ui-copy/verification: + en: bc9daa07456e8496 + zh: 9edeae0d970cc6b2 +/agent-note-locale-owned-client-ui-copy/alternatives-considered: + en: b04fd6aaa9b4fff5 + zh: 7551d86cad9a862a +/agent-note-locale-owned-client-ui-copy/consequences: + en: fd435e249b7409e1 + zh: e0b147cfcb565516 diff --git a/.agents/notes/implemented/architecture/2026-08-24-browser-token-authentication.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-24-browser-token-authentication.i18n.yaml index af52bdcb23..a67b37efe1 100644 --- a/.agents/notes/implemented/architecture/2026-08-24-browser-token-authentication.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-24-browser-token-authentication.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-24-browser-token-authentication.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-24-browser-token-authentication.md -2026-08-24-browser-token-authentication.md: 47d6afe1bf4cd8169eb4e8ec92a30bf0fee32c8a -2026-08-24-browser-token-authentication.zh.md: 13ecf55e41c7bb1455177bdd6a87a3a83d94ca6f +/agent-note-browser-launch-token-authentication: + en: 7ab4daa548c2b5a7 + zh: 33a76129efc2079a +/agent-note-browser-launch-token-authentication/problem: + en: 01293500639c9d79 + zh: 6d19e4843955c811 +/agent-note-browser-launch-token-authentication/decision: + en: 063f9698b8a94287 + zh: 848b2c1134b7a100 +/agent-note-browser-launch-token-authentication/verification: + en: 189b36d0fc5f3a17 + zh: 08993cb585204fc0 +/agent-note-browser-launch-token-authentication/alternatives-considered: + en: 5275c87f19fe6eee + zh: ccb922367c4bb3e2 +/agent-note-browser-launch-token-authentication/consequences: + en: 0714a8a7cc74918a + zh: 0f3878b09463ab2e diff --git a/.agents/notes/implemented/architecture/2026-08-25-electron-desktop-packaging-and-updates.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-25-electron-desktop-packaging-and-updates.i18n.yaml index 6a9b597434..7dc21e59f4 100644 --- a/.agents/notes/implemented/architecture/2026-08-25-electron-desktop-packaging-and-updates.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-25-electron-desktop-packaging-and-updates.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-25-electron-desktop-packaging-and-updates.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-25-electron-desktop-packaging-and-updates.md -2026-08-25-electron-desktop-packaging-and-updates.md: a985e1c91a1ccdb9c4aab0bc519974f9b6fafd4a -2026-08-25-electron-desktop-packaging-and-updates.zh.md: 17ace865477d4fae3650b56d6725be07c7bd0e0f +/agent-note-package-and-update-the-electron-desktop-application: + en: eb6e843bc5a11195 + zh: b245e9a3615e01f0 +/agent-note-package-and-update-the-electron-desktop-application/problem: + en: 5a39322836f06cd9 + zh: 7a7ab48fe38a5788 +/agent-note-package-and-update-the-electron-desktop-application/decision: + en: bd6d1e19da0d5a87 + zh: f194ae90331a27ea +/agent-note-package-and-update-the-electron-desktop-application/ownership: + en: 50e16f318c5d0e1a + zh: 84b2ba8f1a6932b0 +/agent-note-package-and-update-the-electron-desktop-application/filesystem-layout: + en: 4990a8ba137e28f0 + zh: b12f68d30a5d18fa +/agent-note-package-and-update-the-electron-desktop-application/installation-and-resolution: + en: 29def175ab33b7d6 + zh: 87e55ec28c20c7c1 +/agent-note-package-and-update-the-electron-desktop-application/updates-and-recovery: + en: 9c9e8a54a11bec8b + zh: 305cf1f6ed374d0b +/agent-note-package-and-update-the-electron-desktop-application/security-and-release-policy: + en: 4fb110927a3ed7a9 + zh: 5a263577f097490a +/agent-note-package-and-update-the-electron-desktop-application/implementation: + en: 041a6d35ed61b149 + zh: 617c6b90a6f4fa4d +/agent-note-package-and-update-the-electron-desktop-application/alternatives-considered: + en: 10b1b0a8afe38def + zh: 0a4df988f72b8d11 +/agent-note-package-and-update-the-electron-desktop-application/consequences: + en: 44dc044cfcd6ec17 + zh: 5e978dec54783b4e +/agent-note-package-and-update-the-electron-desktop-application/review-decisions: + en: 54c4c2a4bcdfa834 + zh: c280351bb3bf085f +/agent-note-package-and-update-the-electron-desktop-application/risks: + en: af59c819ae700ee1 + zh: 6c0b4b80690fc6a2 +/agent-note-package-and-update-the-electron-desktop-application/related-proposals: + en: b6c0cbd39966f1ec + zh: 5c7a919abec643ba diff --git a/.agents/notes/implemented/architecture/2026-08-25-session-observations-and-projection-owned-client-state.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-25-session-observations-and-projection-owned-client-state.i18n.yaml index f53d8aec09..90546ac5db 100644 --- a/.agents/notes/implemented/architecture/2026-08-25-session-observations-and-projection-owned-client-state.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-25-session-observations-and-projection-owned-client-state.i18n.yaml @@ -1,6 +1,58 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-25-session-observations-and-projection-owned-client-state.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-25-session-observations-and-projection-owned-client-state.md -2026-08-25-session-observations-and-projection-owned-client-state.md: 8573ea89fae6f52a9d28cc75261aea529df4f075 -2026-08-25-session-observations-and-projection-owned-client-state.zh.md: 55c477e994df72ef8f6b6e4bb97b8b35e5783c9b +/agent-note-session-observations-and-projection-owned-client-state: + en: 00b84161c373744e + zh: 7243e7f32ae1fa3f +/agent-note-session-observations-and-projection-owned-client-state/problem: + en: af1f72affe6ae77e + zh: 3d76b6310bc572b1 +/agent-note-session-observations-and-projection-owned-client-state/decision: + en: 00e13f9c63b7820a + zh: b043556c3b8d9f50 +/agent-note-session-observations-and-projection-owned-client-state/decision/data-flow: + en: 480284ae1a6ce210 + zh: d42c72ada9f019f8 +/agent-note-session-observations-and-projection-owned-client-state/decision/observation-is-the-point-read-unit: + en: fac92f8547482a49 + zh: 60240c47fbe4611f +/agent-note-session-observations-and-projection-owned-client-state/decision/source-resolution-and-lifetime: + en: e550ae9892474276 + zh: fb6a2d9e91ebd4d9 +/agent-note-session-observations-and-projection-owned-client-state/decision/projection-execution-boundary: + en: b463e1854d2cc694 + zh: 84fb04c9ddeb2656 +/agent-note-session-observations-and-projection-owned-client-state/decision/read-audiences: + en: c94cd4f6ed488c24 + zh: 12f3b223fdd72c4a +/agent-note-session-observations-and-projection-owned-client-state/decision/replayable-client-facts-are-projection-owned: + en: efded09f0cd30a8e + zh: 5e16580a39ff3359 +/agent-note-session-observations-and-projection-owned-client-state/decision/client-merge-rules: + en: fb8740be674e4708 + zh: 7dc0c89558f51792 +/agent-note-session-observations-and-projection-owned-client-state/decision/domain-applications: + en: c45a0429091f1cf4 + zh: a76c7fe66e22e410 +/agent-note-session-observations-and-projection-owned-client-state/decision/failure-and-readiness-boundaries: + en: 0f90a8bccedf9e71 + zh: 8452dfdf0af00fb3 +/agent-note-session-observations-and-projection-owned-client-state/decision/ownership-matrix: + en: 4f25ea5ac5b18fb3 + zh: 30af4b15936fc455 +/agent-note-session-observations-and-projection-owned-client-state/decision/extension-rules: + en: 110ca8005f618ad1 + zh: 8f3e83d59334b278 +/agent-note-session-observations-and-projection-owned-client-state/decision/relationship-to-existing-decisions: + en: a794043297325db2 + zh: 6459213d8dc35b1b +/agent-note-session-observations-and-projection-owned-client-state/verification: + en: e1458c504be960a4 + zh: 12c565a2576450cb +/agent-note-session-observations-and-projection-owned-client-state/alternatives-considered: + en: a25138b4298cda16 + zh: 92799a9bd8867d47 +/agent-note-session-observations-and-projection-owned-client-state/consequences: + en: e1f8bd8fa68de603 + zh: 5afcd06f2611bc1e diff --git a/.agents/notes/implemented/architecture/2026-08-27-adjacent-agent-steer-messaging.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-27-adjacent-agent-steer-messaging.i18n.yaml index bc7d37ce4c..231ee0bf64 100644 --- a/.agents/notes/implemented/architecture/2026-08-27-adjacent-agent-steer-messaging.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-27-adjacent-agent-steer-messaging.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-27-adjacent-agent-steer-messaging.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-27-adjacent-agent-steer-messaging.md -2026-08-27-adjacent-agent-steer-messaging.md: 47d9bd05c24871a14f78ebfa0afb8c13a6c2754d -2026-08-27-adjacent-agent-steer-messaging.zh.md: 1fd0fc39b937287ac34a2862c7cb9cde90256c09 +/agent-note-adjacent-agents-share-one-steer-send-message-operation: + en: 758d31ae04ce0d4f + zh: 112475efbd52b9f6 +/agent-note-adjacent-agents-share-one-steer-send-message-operation/problem: + en: c988b8a3be4e6f19 + zh: b58011fd8d2e878e +/agent-note-adjacent-agents-share-one-steer-send-message-operation/decision: + en: 1188c699ce6e6ca2 + zh: 4d5b974cd1216f06 +/agent-note-adjacent-agents-share-one-steer-send-message-operation/decision/one-model-tool-and-one-return-instruction: + en: 8a4be155a4984ca8 + zh: 00c2a61da2443530 +/agent-note-adjacent-agents-share-one-steer-send-message-operation/decision/complete-removal-and-reintroduction-condition: + en: 5a9ec6478cf7430c + zh: f4c2f067cc72040e +/agent-note-adjacent-agents-share-one-steer-send-message-operation/alternatives-considered: + en: 1f62d5d938144666 + zh: dec0f30228c5b7a7 +/agent-note-adjacent-agents-share-one-steer-send-message-operation/consequences: + en: 6a01449bef67c9ab + zh: 9ed7184a4d48038c diff --git a/.agents/notes/implemented/architecture/2026-08-27-handle-based-session-persistence.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-27-handle-based-session-persistence.i18n.yaml index 0521855ea8..29242480fe 100644 --- a/.agents/notes/implemented/architecture/2026-08-27-handle-based-session-persistence.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-27-handle-based-session-persistence.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-27-handle-based-session-persistence.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-27-handle-based-session-persistence.md -2026-08-27-handle-based-session-persistence.md: e2f07856b7ef8ffd8180ed7ff515210c95dde29b -2026-08-27-handle-based-session-persistence.zh.md: 472a1024887ecca67245de27f52c68ec0b34caa1 +/agent-note-handle-based-session-persistence: + en: ca49a1cfae00a590 + zh: f1fe21b5dbaf0d68 +/agent-note-handle-based-session-persistence/problem: + en: e4a62db37d44cc11 + zh: 860058651d2817de +/agent-note-handle-based-session-persistence/decision: + en: 52184217a0939497 + zh: 404783efc001e6cc +/agent-note-handle-based-session-persistence/alternatives-considered: + en: f3f7a3abe905c97d + zh: 28018bc45290a455 +/agent-note-handle-based-session-persistence/consequences: + en: 5917a573cbdc5fa4 + zh: 3c3769070539a0a9 +/agent-note-handle-based-session-persistence/related: + en: 07a1b7d5a0f9b0f7 + zh: 9bfa134b62ff3df7 diff --git a/.agents/notes/implemented/architecture/2026-08-27-outbound-proxy-policy.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-27-outbound-proxy-policy.i18n.yaml index 0f7fcde21b..0d30f02d4f 100644 --- a/.agents/notes/implemented/architecture/2026-08-27-outbound-proxy-policy.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-27-outbound-proxy-policy.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-27-outbound-proxy-policy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-27-outbound-proxy-policy.md -2026-08-27-outbound-proxy-policy.md: e588ff751fd18762fbe5e24aa17f9bbbc4ff8deb -2026-08-27-outbound-proxy-policy.zh.md: 57faea256120f5f76ecc4dab1bd8709003672fd0 +/agent-note-one-outbound-proxy-policy-installed-before-anything-can-request: + en: b19652a0e1cc1826 + zh: 4d3511e4f0db5b9d +/agent-note-one-outbound-proxy-policy-installed-before-anything-can-request/problem: + en: 70e5f3ed33010c98 + zh: 5437d943953f5a40 +/agent-note-one-outbound-proxy-policy-installed-before-anything-can-request/decision: + en: efe23161a54f70c5 + zh: e24ee097918b2724 +/agent-note-one-outbound-proxy-policy-installed-before-anything-can-request/alternatives-considered: + en: df44eb15557b95fe + zh: b757e53da4c0a99f +/agent-note-one-outbound-proxy-policy-installed-before-anything-can-request/consequences: + en: 6a4acbab915f1bd1 + zh: 2c8ffd62ba74ff96 +/agent-note-one-outbound-proxy-policy-installed-before-anything-can-request/testing: + en: 0d7eaa666c94a5cd + zh: 210fa098f154d137 diff --git a/.agents/notes/implemented/architecture/2026-08-28-ctx-remote-failure-vocabulary.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-28-ctx-remote-failure-vocabulary.i18n.yaml index 5952b7afe6..2e76fba547 100644 --- a/.agents/notes/implemented/architecture/2026-08-28-ctx-remote-failure-vocabulary.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-28-ctx-remote-failure-vocabulary.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-28-ctx-remote-failure-vocabulary.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-28-ctx-remote-failure-vocabulary.md -2026-08-28-ctx-remote-failure-vocabulary.md: 7238ae23b4581ab645b2bc9a780b77dc4a59d574 -2026-08-28-ctx-remote-failure-vocabulary.zh.md: db0b2969bc94c3d9c848b187a0521ce5ec387492 +/agent-note-one-remote-failure-vocabulary-for-ctx-remote: + en: 3aca057ba2c3ae29 + zh: 3d54024d40265a2a +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/problem: + en: 990d46f713fb6303 + zh: 592cd6128a9640b1 +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/decision: + en: 120e2fb97ac765d8 + zh: 5d5f110db4a9b717 +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/code-ownership: + en: cc1d8b88f7349b77 + zh: 70f010e3310e2667 +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/discrimination-by-code: + en: 8ca8ea2f3236569f + zh: ffca80a5157af245 +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/fixed-host-facts: + en: 0dfb0ca5cf67b296 + zh: baaa890425996fb3 +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/what-the-wire-carries: + en: 346e655fe98b95bd + zh: 24185f170ef97811 +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/alternatives-considered: + en: d92f46d0827ad0d1 + zh: 640f223d3a27559b +/agent-note-one-remote-failure-vocabulary-for-ctx-remote/consequences: + en: 20d2d65d555ef680 + zh: f8a3de3ce72058c7 diff --git a/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.i18n.yaml index bfe7ee764b..76b43c4348 100644 --- a/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-28-subprocess-native-containment.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.md -2026-08-28-subprocess-native-containment.md: 88acee2d41fab878a0e50380cbb87eaece8e7296 -2026-08-28-subprocess-native-containment.zh.md: 53406f99531953a0330abf08be150da845f37aab +/agent-note-native-owners-contain-escaped-subprocess-descendants: + en: 161c05f390ea3f51 + zh: 1c1c83ad4f9780dd +/agent-note-native-owners-contain-escaped-subprocess-descendants/problem: + en: a88b160c6c1f57e5 + zh: 0b1a7cb68e9aaabd +/agent-note-native-owners-contain-escaped-subprocess-descendants/decision: + en: 0469a956a95bccdf + zh: 2c5ea38a2841e1ae +/agent-note-native-owners-contain-escaped-subprocess-descendants/decision/linux-scope-and-one-shot-bootstrap: + en: 582e6f5f5f7cc940 + zh: b47cee599d22aaa2 +/agent-note-native-owners-contain-escaped-subprocess-descendants/decision/windows-runner-and-job: + en: a6401ee73bb173b7 + zh: 45b9cc7fea6f7921 +/agent-note-native-owners-contain-escaped-subprocess-descendants/decision/private-dispatch-and-protocol: + en: bf25e4b385bf9299 + zh: 6ed1062fbe49f3cf +/agent-note-native-owners-contain-escaped-subprocess-descendants/decision/fallback-and-cleanup: + en: 19da14bf2234744f + zh: 8f723b1c9c8a3a58 +/agent-note-native-owners-contain-escaped-subprocess-descendants/existing-decisions-and-supersession: + en: 8f24a2276aff4bd2 + zh: a3a36dd28f3ab0e0 +/agent-note-native-owners-contain-escaped-subprocess-descendants/verification: + en: 900e10a3f9cd3b67 + zh: efc5d9f09a0e8e5a +/agent-note-native-owners-contain-escaped-subprocess-descendants/alternatives-considered: + en: 12bbc028fbb14667 + zh: 9fea4359308337bd +/agent-note-native-owners-contain-escaped-subprocess-descendants/consequences: + en: 0151145ee6281267 + zh: 5bd2e53ad58107e9 diff --git a/.agents/notes/implemented/architecture/2026-08-30-retain-ignorable-external-session-events.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-30-retain-ignorable-external-session-events.i18n.yaml index 0d29ace9ff..63a2bfdc06 100644 --- a/.agents/notes/implemented/architecture/2026-08-30-retain-ignorable-external-session-events.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-30-retain-ignorable-external-session-events.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-30-retain-ignorable-external-session-events.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-30-retain-ignorable-external-session-events.md -2026-08-30-retain-ignorable-external-session-events.md: e085e429a6ad49cf742694cec7dda05770a5b8a1 -2026-08-30-retain-ignorable-external-session-events.zh.md: 1fe4f81441503287961b993eae444fa4385f4803 +/agent-note-retain-ignorable-session-events-for-external-plugins: + en: 09f4f7ee764601c3 + zh: af6ead8e96015e51 +/agent-note-retain-ignorable-session-events-for-external-plugins/problem: + en: d2df1eb3602af45d + zh: fd162b1c214f1494 +/agent-note-retain-ignorable-session-events-for-external-plugins/decision: + en: a4162e65cf6768f3 + zh: bb700d9630642e7e +/agent-note-retain-ignorable-session-events-for-external-plugins/alternatives-considered: + en: 30ec097e3ba4e951 + zh: 3e90fc035d04b09b +/agent-note-retain-ignorable-session-events-for-external-plugins/consequences: + en: 5f65bfb81f172d49 + zh: 069d41d6bda9f8af diff --git a/.agents/notes/implemented/architecture/2026-08-31-alpha-historical-unknown-event-refusal.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-31-alpha-historical-unknown-event-refusal.i18n.yaml index c976a60147..4453d0d171 100644 --- a/.agents/notes/implemented/architecture/2026-08-31-alpha-historical-unknown-event-refusal.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-31-alpha-historical-unknown-event-refusal.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-31-alpha-historical-unknown-event-refusal.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-31-alpha-historical-unknown-event-refusal.md -2026-08-31-alpha-historical-unknown-event-refusal.md: c63b36f63206e0992416239483d908b0645a98c2 -2026-08-31-alpha-historical-unknown-event-refusal.zh.md: 231c46c11486b05a69a200b857a0ea6df35b6e79 +/agent-note-alpha-session-migration-refuses-every-unknown-historical-event: + en: 4c7472b402f5dd38 + zh: 1d7aa8233d13a083 +/agent-note-alpha-session-migration-refuses-every-unknown-historical-event/problem: + en: 8864f28d0139c490 + zh: 2aa7b6eceb5510c0 +/agent-note-alpha-session-migration-refuses-every-unknown-historical-event/decision: + en: 62afb095b98209a6 + zh: 55b3eae2a6f64989 +/agent-note-alpha-session-migration-refuses-every-unknown-historical-event/consequences: + en: 8416322aefd92a3d + zh: 6e06f732ae2f48fc +/agent-note-alpha-session-migration-refuses-every-unknown-historical-event/alternatives-considered: + en: 3adeafa6fb02ab56 + zh: daf6c67c43804da7 diff --git a/.agents/notes/implemented/architecture/2026-08-31-explicit-agent-runtime-identity.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-31-explicit-agent-runtime-identity.i18n.yaml index 4fac92ed8c..c28606ddd1 100644 --- a/.agents/notes/implemented/architecture/2026-08-31-explicit-agent-runtime-identity.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-31-explicit-agent-runtime-identity.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-31-explicit-agent-runtime-identity.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-31-explicit-agent-runtime-identity.md -2026-08-31-explicit-agent-runtime-identity.md: f52b8ec116c312a27306fe73dc0bd5b99fcd9039 -2026-08-31-explicit-agent-runtime-identity.zh.md: 6b6fd2f2ea1f1645069264f09fd53c3f71e1d02f +/agent-note-explicit-agent-identity-at-runtime-boundaries: + en: f5e76516df025fc5 + zh: 462fe05b46e6c1ea +/agent-note-explicit-agent-identity-at-runtime-boundaries/problem: + en: 0b737a098e4e19ce + zh: 97b4254c4533114f +/agent-note-explicit-agent-identity-at-runtime-boundaries/decision: + en: dfee8c7c574e0001 + zh: 3894ffa7beba4348 +/agent-note-explicit-agent-identity-at-runtime-boundaries/verification: + en: 85130faaa171036b + zh: 06e5e9fab32dbfb4 +/agent-note-explicit-agent-identity-at-runtime-boundaries/alternatives-considered: + en: 2c41456509d54d21 + zh: 5704ee9a2274e300 +/agent-note-explicit-agent-identity-at-runtime-boundaries/consequences: + en: 08ab86b89fc3ec6f + zh: 3866e6557858543a diff --git a/.agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.i18n.yaml index 008e706bbf..38dbc1ec40 100644 --- a/.agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.i18n.yaml @@ -1,6 +1,67 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-31-released-session-format-migrations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.md -2026-08-31-released-session-format-migrations.md: 00672af920cf8369022b4274c1c50552f5407a7e -2026-08-31-released-session-format-migrations.zh.md: 9404d8f454b7c17be69ae064c405c4dcc0794f88 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages: + en: 1a1d3bd9c2311ed6 + zh: 366eded1272efd63 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/problem: + en: a1f71d6123b80d10 + zh: 8e05da34ba92686a +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/problem/whole-artifact-performance-failure: + en: 85ba92c98dd97591 + zh: c464cdd860add9c7 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/problem/the-interfaces-prevented-local-fixes-from-composing: + en: e582758acd683242 + zh: c5a5a27af1f33af7 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/decision: + en: 8756dc3c6235ba0b + zh: 8089fde062466c5c +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/decision/stage-and-context-protocol: + en: ed34c76e1a2c0a42 + zh: 0efe92c6c9ea314e +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/decision/adjacent-version-ownership: + en: 31e5b2e26604110e + zh: 18d27da9b4661702 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/decision/physical-codecs-and-packed-runs: + en: 42e8d5405375cba7 + zh: efd201181e47d579 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/decision/jsonl-integration: + en: 662859038e888672 + zh: a1646f3ff5710e8d +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/decision/durable-format-and-publication-rules: + en: 6e2a76ae14612199 + zh: 3c90fd32d292f9d0 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/problem-to-solution-mapping: + en: 65968c18c3d1b7e9 + zh: 2e43d7ce1391d554 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/problem-to-solution-mapping/parent-catalog-prerequisites: + en: 81b40660b49dbfb0 + zh: 67cfa3f43b6eb53e +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/problem-to-solution-mapping/catalog-scan-measurements: + en: 6b7a79fb81e58bac + zh: 51fc00eaf3a0c3dc +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/verification: + en: 061a112f789c9966 + zh: e78b0b1a83837eae +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/verification/benchmark-input-and-meanings: + en: 3cbcde15a46b4136 + zh: fe899549758f8ee3 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/verification/physical-decode: + en: 1c79e71ee17a156f + zh: 7563d24c9f2befe8 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/verification/historical-file-cold-open: + en: 09fe5e0aa4f57c6e + zh: a103dc631d1b0b79 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/verification/current-format-cold-open: + en: 60f7de284f6ded10 + zh: 877b300503a4615d +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/verification/streaming-serial-migration-breakdown: + en: b9183e6c34a960dd + zh: d64ffecb289e7b74 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/consequences: + en: fa005a93cc0b0906 + zh: 248a08f307d4c1b7 +/agent-note-released-session-formats-migrate-through-stateful-streaming-stages/alternatives-considered: + en: b70193af15b1a2ea + zh: d8a23e47e6b9cf88 diff --git a/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml index 497481e7d2..dcd4dd469f 100644 --- a/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-01-jobs-absorb-activity-record.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.md -2026-09-01-jobs-absorb-activity-record.md: 508608f7eb694bf131bad9a25e856d32c7079559 -2026-09-01-jobs-absorb-activity-record.zh.md: 2c157d951042f1cd6f8a3a66129773bc99cd5b02 +/agent-note-the-job-registry-absorbs-the-observation-record-the-standalone-activity-seam-is-removed: + en: f407477a58d20fb6 + zh: b65bc22b9e1e21c3 +/agent-note-the-job-registry-absorbs-the-observation-record-the-standalone-activity-seam-is-removed/problem: + en: a4008f3bcd1e3bd0 + zh: fa8432ddc47003c4 +/agent-note-the-job-registry-absorbs-the-observation-record-the-standalone-activity-seam-is-removed/decision: + en: c7ada6a40d92daf4 + zh: bd16a02f295c4ae2 +/agent-note-the-job-registry-absorbs-the-observation-record-the-standalone-activity-seam-is-removed/alternatives-considered: + en: 00067552f2fcb740 + zh: aa23082899db1a1a +/agent-note-the-job-registry-absorbs-the-observation-record-the-standalone-activity-seam-is-removed/review-corrections: + en: 93db5342c848587a + zh: d4e67a47d573eb39 +/agent-note-the-job-registry-absorbs-the-observation-record-the-standalone-activity-seam-is-removed/consequences: + en: c1df52910a1ee554 + zh: 50fd15ed06f07f76 diff --git a/.agents/notes/implemented/architecture/2026-09-01-parent-owned-subagent-catalog.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-01-parent-owned-subagent-catalog.i18n.yaml index 59e3f84862..895e659b3a 100644 --- a/.agents/notes/implemented/architecture/2026-09-01-parent-owned-subagent-catalog.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-01-parent-owned-subagent-catalog.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-01-parent-owned-subagent-catalog.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-01-parent-owned-subagent-catalog.md -2026-09-01-parent-owned-subagent-catalog.md: 536ec33148bd675a974622b98ee23de812691dc0 -2026-09-01-parent-owned-subagent-catalog.zh.md: ec78ff9e4b7d54a7309baf21c383ec5ff83a19c8 +/agent-note-parent-owned-subagent-catalog-events: + en: 3fc04c5406fdcf8a + zh: a103082ae858dff3 +/agent-note-parent-owned-subagent-catalog-events/problem: + en: 5a991fec31578cea + zh: 13b75aa36eb22907 +/agent-note-parent-owned-subagent-catalog-events/decision: + en: 198354f20b5d0a42 + zh: 7a6b4392117a60b5 +/agent-note-parent-owned-subagent-catalog-events/alternatives-considered: + en: 7a3d4b9f69c243d8 + zh: 82b03d16ccc94dd2 +/agent-note-parent-owned-subagent-catalog-events/consequences: + en: 97f2a8beb039a075 + zh: 80efa9f6dd12d438 diff --git a/.agents/notes/implemented/architecture/2026-09-01-v2-embedded-assistant-streams.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-01-v2-embedded-assistant-streams.i18n.yaml index 3dcffdc51a..c171926d8d 100644 --- a/.agents/notes/implemented/architecture/2026-09-01-v2-embedded-assistant-streams.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-01-v2-embedded-assistant-streams.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-01-v2-embedded-assistant-streams.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-01-v2-embedded-assistant-streams.md -2026-09-01-v2-embedded-assistant-streams.md: 89b494959fcc10a2c9847908adcf13d5eedcd749 -2026-09-01-v2-embedded-assistant-streams.zh.md: 63cb425740cd2243361ec00a6dadad82c38f6f0f +/agent-note-embed-assistant-streams-in-v2-attempt-settlements: + en: ada7ae6629d0d4e4 + zh: cc1f9a43e87d2dee +/agent-note-embed-assistant-streams-in-v2-attempt-settlements/problem: + en: 9e95306554ecd1ca + zh: 40478697fbc94e33 +/agent-note-embed-assistant-streams-in-v2-attempt-settlements/decision: + en: 14558bfaf20998db + zh: d883b1dd6f024b93 +/agent-note-embed-assistant-streams-in-v2-attempt-settlements/decision/live-presentation-and-durable-replay: + en: daf667b45ce34da3 + zh: 25b17f7b3ec14d9e +/agent-note-embed-assistant-streams-in-v2-attempt-settlements/decision/released-v1-to-v2-migration: + en: c1b5a775aa073a9a + zh: 45a16998d636aec1 +/agent-note-embed-assistant-streams-in-v2-attempt-settlements/verification: + en: 64b75fcbb0c3f819 + zh: 6fe01443a7abec72 +/agent-note-embed-assistant-streams-in-v2-attempt-settlements/alternatives-considered: + en: 74cdc6838df6172e + zh: ebca79a08ff3ebe4 +/agent-note-embed-assistant-streams-in-v2-attempt-settlements/consequences: + en: fc745b93d5e92f50 + zh: 4fa418c30e1968b4 diff --git a/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml index 87f3b7c351..6a8c9879cf 100644 --- a/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-02-projcache-cross-version-read-compat.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.md -2026-09-02-projcache-cross-version-read-compat.md: 160c5c796bacc6f672b06acc0df4246d7008c52b -2026-09-02-projcache-cross-version-read-compat.zh.md: cff7742f6c1f887b905a2c139e4157782aef677c +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7: + en: 5744de86025f278d + zh: 5ba2198c13ac54f9 +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/problem: + en: f8d44a69c7b5fefe + zh: 76a4fb3d87698194 +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/the-on-disk-generations: + en: 221b8afd2599e139 + zh: ba1de634b87edc71 +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/decision: + en: 264e40c0fb90cdc1 + zh: 2e986615bbd656cf +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/decision/v3-v6-v7-disposition: + en: fe188d164c08a7f5 + zh: 30aa9e9201621f35 +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/decision/upgrade-matrix: + en: 5d515bd3cb34b0ee + zh: 0648563a966759c7 +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/alternatives-considered: + en: c53e111219c5da0c + zh: 8c69f6fc2e776981 +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/consequences: + en: ac8b2f4a66c926ea + zh: 5a415436c2fbc4ec +/agent-note-projection-cache-predecessor-recovery-and-session-format-binding-session-projcache-v3-v6-v7/testing: + en: 495058fe5708949d + zh: 67ed95abc946d418 diff --git a/.agents/notes/implemented/architecture/2026-09-02-system-prompt-as-surface-node.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-02-system-prompt-as-surface-node.i18n.yaml index 174aa2592e..6a5de04c23 100644 --- a/.agents/notes/implemented/architecture/2026-09-02-system-prompt-as-surface-node.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-02-system-prompt-as-surface-node.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-02-system-prompt-as-surface-node.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-02-system-prompt-as-surface-node.md -2026-09-02-system-prompt-as-surface-node.md: 1500fd2350f02ab5d8f203c0d62b98832c6c5de5 -2026-09-02-system-prompt-as-surface-node.zh.md: 306f347092caa3e9daf2494fa26d290b1c1ab9a7 +/agent-note-the-system-prompt-is-surface-node-0: + en: 449b745953058cff + zh: 4db99c7d1f06e6b9 +/agent-note-the-system-prompt-is-surface-node-0/problem: + en: 9ff2541082426e31 + zh: d8f0ca49d3548f9b +/agent-note-the-system-prompt-is-surface-node-0/decision: + en: 3911ea80c5466d5e + zh: a0d6844e6f8af462 +/agent-note-the-system-prompt-is-surface-node-0/decision/the-event: + en: 35302b956efc4999 + zh: e45ee0d001b63269 +/agent-note-the-system-prompt-is-surface-node-0/decision/the-operations: + en: a217a08932938062 + zh: 4924d99d55d9c973 +/agent-note-the-system-prompt-is-surface-node-0/decision/ownership-in-the-loop: + en: 88945024c2efe271 + zh: 05dca84a4ce5e614 +/agent-note-the-system-prompt-is-surface-node-0/decision/consumers: + en: 39f9f4acffcccdc6 + zh: 36b23a57e7d28950 +/agent-note-the-system-prompt-is-surface-node-0/decision/v2-to-v3-structural-conversion: + en: 131ae882d0a28735 + zh: ea4bc81f0ba5ddec +/agent-note-the-system-prompt-is-surface-node-0/alternatives-considered: + en: 067e96734ebbce89 + zh: 9f79bc0f4942675d +/agent-note-the-system-prompt-is-surface-node-0/consequences: + en: bccea8236b4c32b3 + zh: a1150784718a6639 +/agent-note-the-system-prompt-is-surface-node-0/testing: + en: f5b21c4863cd92bd + zh: 7d1efed827d55161 diff --git a/.agents/notes/implemented/architecture/2026-09-03-jobs-seam-consolidation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-03-jobs-seam-consolidation.i18n.yaml index 1d1a4bc731..69dfebb312 100644 --- a/.agents/notes/implemented/architecture/2026-09-03-jobs-seam-consolidation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-03-jobs-seam-consolidation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-03-jobs-seam-consolidation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-03-jobs-seam-consolidation.md -2026-09-03-jobs-seam-consolidation.md: 2742ff1a80ec4cc4d8e5948f63d306abb9753733 -2026-09-03-jobs-seam-consolidation.zh.md: 1fa61919a27362ce42419b57e0960e9be86ea07e +/agent-note-one-output-ring-one-projection-one-event-stream-for-background-jobs: + en: f4cb113e6501a363 + zh: 55693cca6db201b0 +/agent-note-one-output-ring-one-projection-one-event-stream-for-background-jobs/problem: + en: 2e213085523c8ebe + zh: 28229d752ccc7ec4 +/agent-note-one-output-ring-one-projection-one-event-stream-for-background-jobs/decision: + en: a7e2bd18a7e647f0 + zh: 1d8f5500a3b0502a +/agent-note-one-output-ring-one-projection-one-event-stream-for-background-jobs/alternatives-considered: + en: d5d9d6c2c05e563b + zh: 66b2489d947365fe +/agent-note-one-output-ring-one-projection-one-event-stream-for-background-jobs/consequences: + en: 23b0112bba743396 + zh: 28f38ff246b4525f diff --git a/.agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.i18n.yaml index f62b326074..3793dc362f 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-canonical-feedback-log.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.md -2026-09-05-canonical-feedback-log.md: ce7b705b24cb0a4f7432215e19589095a9afc719 -2026-09-05-canonical-feedback-log.zh.md: 7d970ff7aea4962ea52c764fec5b6c07e3669099 +/agent-note-canonical-feedback-log-and-request-delivery: + en: 7dd56e2d495370cf + zh: 0977ed8b2f45dbe5 +/agent-note-canonical-feedback-log-and-request-delivery/problem: + en: 702e5973c264ec35 + zh: 71b095565593629c +/agent-note-canonical-feedback-log-and-request-delivery/decision: + en: 7ae952bbc9193865 + zh: f120bed1d1782470 +/agent-note-canonical-feedback-log-and-request-delivery/alternatives-considered: + en: 9ddfc84ac3a25f3b + zh: f185250a0ec512ba +/agent-note-canonical-feedback-log-and-request-delivery/consequences: + en: f1f99907cd77bdef + zh: e97b76e4a19c5581 diff --git a/.agents/notes/implemented/architecture/2026-09-05-client-resource-model.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-client-resource-model.i18n.yaml index aba709660e..76c55ab2c1 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-client-resource-model.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-client-resource-model.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-client-resource-model.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-client-resource-model.md -2026-09-05-client-resource-model.md: e6ad8dae331d8a6392585f5dc8eb8fc52150bdc3 -2026-09-05-client-resource-model.zh.md: d716aa8a42f5c3037a329deabd572a56ab1b0537 +/agent-note-client-resource-model: + en: 48276fc837820219 + zh: 2d99ee9eae22e1e0 +/agent-note-client-resource-model/problem: + en: 22aec3ac5b197342 + zh: 0cd0b1f8094addb3 +/agent-note-client-resource-model/decision: + en: 78afa8698a884b98 + zh: b33cfcae7e75660f +/agent-note-client-resource-model/decision/addresses: + en: 180e3e39813a93b1 + zh: 845befb7c760f7e1 +/agent-note-client-resource-model/decision/the-service: + en: f42277e961bb7209 + zh: 9f3f8a50ad55cf4a +/agent-note-client-resource-model/decision/the-hook: + en: 4f082c4f5a44320a + zh: eba5449b7a1fd52e +/agent-note-client-resource-model/decision/frames: + en: bc1c4e9a9e8e9b20 + zh: f80a77ee66943ce4 +/agent-note-client-resource-model/decision/lifecycle: + en: 4c11bfba97a54646 + zh: a07bda77e918d613 +/agent-note-client-resource-model/alternatives-considered: + en: 288b448e7f1de8af + zh: 997e10c66decce34 +/agent-note-client-resource-model/consequences: + en: 3eda54cb5d74ed00 + zh: ce60b6fef04acb9a +/agent-note-client-resource-model/testing: + en: ca2c610e4f0352ac + zh: fbaa69ee8de7e4c1 +/agent-note-client-resource-model/deferred: + en: 312b46f16d88f301 + zh: a530b3940859079c diff --git a/.agents/notes/implemented/architecture/2026-09-05-nonofficial-feedback-otel.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-nonofficial-feedback-otel.i18n.yaml index 58f161426a..fcea6899f3 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-nonofficial-feedback-otel.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-nonofficial-feedback-otel.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-nonofficial-feedback-otel.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-nonofficial-feedback-otel.md -2026-09-05-nonofficial-feedback-otel.md: 8225d8bea030c4f09b60fd1a228f0425e9489d39 -2026-09-05-nonofficial-feedback-otel.zh.md: e8ea48b3fe2f228ef57ae1a20f92100dfc333f9c +/agent-note-explicit-feedback-only-upload-through-opentelemetry: + en: 96caaaf6a4efc8cf + zh: 2ef629917f3f2567 +/agent-note-explicit-feedback-only-upload-through-opentelemetry/problem: + en: 7849f56f36e297e8 + zh: b98da01a1fd5d974 +/agent-note-explicit-feedback-only-upload-through-opentelemetry/decision: + en: c4558bdfc95ee2f2 + zh: 4fc88ffa4512b66a +/agent-note-explicit-feedback-only-upload-through-opentelemetry/alternatives-considered: + en: 21376ce3ebef2662 + zh: d3168b64bdf093bf +/agent-note-explicit-feedback-only-upload-through-opentelemetry/consequences: + en: 7daf3ebf1bfd2124 + zh: f2cec93e3069a973 diff --git a/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.i18n.yaml index 1e9e2e658d..1cbd6713ec 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-package-manifest-types.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-package-manifest-types.md -2026-09-05-package-manifest-types.md: dc018ba019028b942a17cd016c8670f2405c3bc7 -2026-09-05-package-manifest-types.zh.md: 8fd323bfe6058a6a062e3834a8630c0181a203fc +/agent-note-package-manifest-declaration-ownership: + en: 26d50551c7d49cf8 + zh: eac4a93af773c945 +/agent-note-package-manifest-declaration-ownership/problem: + en: bdc0fcaf27081889 + zh: 45eb034edd0bed82 +/agent-note-package-manifest-declaration-ownership/decision: + en: da43234e14fa9bd5 + zh: 0389015e086f4e25 +/agent-note-package-manifest-declaration-ownership/alternatives-considered: + en: bf99e75ffab5cb45 + zh: 398f5934858aaca5 +/agent-note-package-manifest-declaration-ownership/consequences: + en: ce7c3df526622bf2 + zh: 91d51dff77371cb0 diff --git a/.agents/notes/implemented/architecture/2026-09-05-read-only-session-migration-preparation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-read-only-session-migration-preparation.i18n.yaml index c71a86687b..93080791e0 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-read-only-session-migration-preparation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-read-only-session-migration-preparation.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-read-only-session-migration-preparation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-read-only-session-migration-preparation.md -2026-09-05-read-only-session-migration-preparation.md: 081044e34d5071ba242792c588f43a3b83adddd5 -2026-09-05-read-only-session-migration-preparation.zh.md: 7406e7cf31112df6c9f6bb0d454f38d0cf7eb6a4 +/agent-note-historical-session-reads-prepare-before-write-publication: + en: 9b0c300b8c4ea348 + zh: fb248e39c7c82d21 +/agent-note-historical-session-reads-prepare-before-write-publication/problem: + en: 1064c02bdd0829f6 + zh: b8804a72c487d7f6 +/agent-note-historical-session-reads-prepare-before-write-publication/problem/serial-readiness-cost: + en: d1a38e3967176a41 + zh: 746d22a7b65bbacf +/agent-note-historical-session-reads-prepare-before-write-publication/problem/a-naive-split-would-break-lifecycle-guarantees: + en: b6c28b36e59cff21 + zh: 7c52d50d332204ad +/agent-note-historical-session-reads-prepare-before-write-publication/decision: + en: b1c9289331cc1b1c + zh: cddc6fba651201b3 +/agent-note-historical-session-reads-prepare-before-write-publication/decision/prepared-generation-api: + en: 70013314a5ab75c2 + zh: dc83dc7254554951 +/agent-note-historical-session-reads-prepare-before-write-publication/decision/preparation-ownership-and-cancellation: + en: 1e0583523a341ec1 + zh: a78b8cac656559e9 +/agent-note-historical-session-reads-prepare-before-write-publication/decision/read-handle-transition: + en: a74f92b2e6224c7e + zh: 0190d524f8c84770 +/agent-note-historical-session-reads-prepare-before-write-publication/decision/write-open-publication: + en: 9d2d50cb76754b74 + zh: 9ceed3652475f18d +/agent-note-historical-session-reads-prepare-before-write-publication/decision/follow-and-agent-promotion: + en: 692c29db3e7ab07e + zh: 7da0cfdbc80f407d +/agent-note-historical-session-reads-prepare-before-write-publication/problem-to-solution-mapping: + en: e067e187cd4d0a8c + zh: b0c79b635a637296 +/agent-note-historical-session-reads-prepare-before-write-publication/verification: + en: b2b07b60141996ac + zh: 5280ee3455b8c953 +/agent-note-historical-session-reads-prepare-before-write-publication/verification/first-opening-of-historical-data: + en: 048ea8684231ac22 + zh: 83591137f214478b +/agent-note-historical-session-reads-prepare-before-write-publication/verification/scheduling-observation-points: + en: a91766778611df3b + zh: 2a38f5a865dcd413 +/agent-note-historical-session-reads-prepare-before-write-publication/consequences: + en: 4482da434feb62a0 + zh: 38bf9bbb99d3e246 +/agent-note-historical-session-reads-prepare-before-write-publication/alternatives-considered: + en: c11bc9a1ad9a8568 + zh: 717da2fad77cff17 diff --git a/.agents/notes/implemented/architecture/2026-09-05-shared-client-control-primitives.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-shared-client-control-primitives.i18n.yaml index 55f30d278a..d7f7c0dc3b 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-shared-client-control-primitives.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-shared-client-control-primitives.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-shared-client-control-primitives.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-shared-client-control-primitives.md -2026-09-05-shared-client-control-primitives.md: db8cb9a8bc515918867b27b216fe8edb50c392db -2026-09-05-shared-client-control-primitives.zh.md: 6d4b04a21bf224eaa32b5fbdfb2bf1c3a2cd804d +/agent-note-shared-client-control-primitives: + en: 53e5c771078f4383 + zh: 59e4cc45d06adbee +/agent-note-shared-client-control-primitives/problem: + en: 7a711c1cafe0be88 + zh: 7275b36fdd5094f6 +/agent-note-shared-client-control-primitives/decision: + en: cc335d6820b9ab1c + zh: e375bababc0fccdb +/agent-note-shared-client-control-primitives/finding-the-duplicates: + en: f50ed2aea00a34c5 + zh: a8a27c1d1e0177a8 +/agent-note-shared-client-control-primitives/what-stays-local: + en: e4fb0a84b9924d5a + zh: 30545265b2159f04 +/agent-note-shared-client-control-primitives/alternatives-considered: + en: f77deaa327bc5395 + zh: be8450b665be04bf +/agent-note-shared-client-control-primitives/testing: + en: 578f6bad674e4c40 + zh: 0a8f2e72bb4d1f61 +/agent-note-shared-client-control-primitives/consequences: + en: f94dd6f669d00276 + zh: a67de4bd3f242232 diff --git a/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml index 577fbe18d0..f7b369d628 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-sidebar-tab-types-and-navigation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.md -2026-09-05-sidebar-tab-types-and-navigation.md: 599ce36ed4bb1dfc2cce063a461903e1a4aeb40e -2026-09-05-sidebar-tab-types-and-navigation.zh.md: e4e8de5a389fea77aae705d63cc4fb16f88af647 +/agent-note-right-sidebar-tab-types-and-navigation: + en: 2860d8acc82e4a85 + zh: 7b09ac61a684e36d +/agent-note-right-sidebar-tab-types-and-navigation/problem: + en: 1db34c36cf2dc2bd + zh: 4d4e8d3f09ac18c6 +/agent-note-right-sidebar-tab-types-and-navigation/decision: + en: 905fd6fbedad540f + zh: 5420c0dff38012d8 +/agent-note-right-sidebar-tab-types-and-navigation/decision/the-type-registry-ctx-sidebarrighttabs: + en: 9c0a993b39b2c92f + zh: 0e0c008e425f47e4 +/agent-note-right-sidebar-tab-types-and-navigation/decision/bodies-and-titles-keyed-slot-seats-under-the-definition-s-id: + en: 9e80f2d213b394fe + zh: 79f2e5c504b9863e +/agent-note-right-sidebar-tab-types-and-navigation/decision/tab-occurrence-information: + en: 774c3bf80a48ffbe + zh: c513245789aa8efd +/agent-note-right-sidebar-tab-types-and-navigation/decision/navigation-ctx-sidebarright: + en: b32bad4c3b8c2cc8 + zh: 57ba7b8d3451e478 +/agent-note-right-sidebar-tab-types-and-navigation/decision/addresses: + en: eeb1e7e7478a2f2c + zh: bddbc5bc78245f63 +/agent-note-right-sidebar-tab-types-and-navigation/decision/entry-points: + en: 6386bde2654f9a0a + zh: 700439be6a01e162 +/agent-note-right-sidebar-tab-types-and-navigation/alternatives-considered: + en: 91fbca006e8de5bc + zh: f48d3ce1dd7b63bf +/agent-note-right-sidebar-tab-types-and-navigation/consequences: + en: 3cdb1159ee55d851 + zh: dcd068005e678a89 +/agent-note-right-sidebar-tab-types-and-navigation/testing: + en: 49449a6c8465c098 + zh: 1f476cc1226aa9cd +/agent-note-right-sidebar-tab-types-and-navigation/deferred: + en: fa27b7684e38329b + zh: d270e0cdcab73732 diff --git a/.agents/notes/implemented/architecture/2026-09-05-workspace-files-service.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-05-workspace-files-service.i18n.yaml index f44cffc1fa..d8cfb7a469 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-workspace-files-service.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-05-workspace-files-service.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-workspace-files-service.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-05-workspace-files-service.md -2026-09-05-workspace-files-service.md: 65bebf18175d9a94452c92cd36ada3c5ef267ce5 -2026-09-05-workspace-files-service.zh.md: b4ca420042dc702f9bc1eaf5bb09f2667a19322d +/agent-note-workspace-file-service: + en: 4f48d3f949d8e3eb + zh: 4060f4e66c36439e +/agent-note-workspace-file-service/problem: + en: 55d969715a48c9b3 + zh: 755dab7523cd01c2 +/agent-note-workspace-file-service/decision: + en: 6ab2a1f635cfc87c + zh: 369e3ed9b6cdc159 +/agent-note-workspace-file-service/decision/package-topology: + en: 59c3648960630ff8 + zh: 1891f8659e660e45 +/agent-note-workspace-file-service/decision/the-workspacefiles-file-operations: + en: cb489857d97a1b11 + zh: b1a7880df5607c05 +/agent-note-workspace-file-service/decision/paths-on-the-wire: + en: 7b5a96adc08177bc + zh: ae4692e5e62e7de0 +/agent-note-workspace-file-service/decision/file-checks-and-workspace-containment: + en: 4399dcc29336f886 + zh: 69cf2fc174dc83a2 +/agent-note-workspace-file-service/decision/failures: + en: 0e419dd7bdcf38ba + zh: 6cb588a77593913c +/agent-note-workspace-file-service/decision/configuration: + en: 796ee295af0895bd + zh: 4dfa113ed19f5f9a +/agent-note-workspace-file-service/decision/the-readbyterange-seam-in-dsh-fs: + en: 24d84843c56a012a + zh: 058f959527589302 +/agent-note-workspace-file-service/decision/the-client-file-provider: + en: 0d42d4716dde706f + zh: 4e95b8af2df232b6 +/agent-note-workspace-file-service/decision/related-notes: + en: 6e8cfa03b5222af6 + zh: efdf8f17757fc378 +/agent-note-workspace-file-service/alternatives-considered: + en: 3d598eb6d03d05e5 + zh: 7dac0b7af471a651 +/agent-note-workspace-file-service/consequences: + en: 246bb7aed62f6c9b + zh: debf6d4129ee477b +/agent-note-workspace-file-service/testing: + en: 3ab0dabf8ef85258 + zh: c3d0a634bb5e2928 +/agent-note-workspace-file-service/deferred: + en: b033218338ca0122 + zh: aa48fa67f9eb36c3 diff --git a/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml index f19cf66c4d..f95de9ad8f 100644 --- a/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-embedded-stream-record-readers.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.md -2026-09-06-embedded-stream-record-readers.md: efad86a4f940bf3b56d4b141a8fe1e3659c8dd9c -2026-09-06-embedded-stream-record-readers.zh.md: f7131a27171163954bca8b7013dc6d90f907c552 +/agent-note-embedded-assistant-stream-consumers-read-compact-records: + en: ddc3fed8aa76c1b8 + zh: 409dcb67ef28080e +/agent-note-embedded-assistant-stream-consumers-read-compact-records/problem: + en: 34ceceb99e246ae6 + zh: 0a18314b78557205 +/agent-note-embedded-assistant-stream-consumers-read-compact-records/decision: + en: ad50509c41a7dacf + zh: c8170641203a3184 +/agent-note-embedded-assistant-stream-consumers-read-compact-records/decision/measurements: + en: 2eedf644fa07e35a + zh: cb691c75fbeda518 +/agent-note-embedded-assistant-stream-consumers-read-compact-records/alternatives-considered: + en: 66b6007d582f7521 + zh: a33aa19f7c912fa2 +/agent-note-embedded-assistant-stream-consumers-read-compact-records/consequences: + en: 05cf037a97b4254d + zh: 1a45fae2447678c2 diff --git a/.agents/notes/implemented/architecture/2026-09-06-v3-canonical-session-envelopes.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-06-v3-canonical-session-envelopes.i18n.yaml index e834c8bf6f..85d812f262 100644 --- a/.agents/notes/implemented/architecture/2026-09-06-v3-canonical-session-envelopes.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-06-v3-canonical-session-envelopes.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-v3-canonical-session-envelopes.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-06-v3-canonical-session-envelopes.md -2026-09-06-v3-canonical-session-envelopes.md: 68d4386b9e06025fd44d6d9054a95fb51ec8bc3e -2026-09-06-v3-canonical-session-envelopes.zh.md: d3bfc17fa263f8edb0b6f73ce59c626d772dbc1e +/agent-note-canonical-v3-session-event-envelopes: + en: 17b0c507058d0bba + zh: cc281197005d02c8 +/agent-note-canonical-v3-session-event-envelopes/problem: + en: 60cc4d9e1122118f + zh: c1e8d767dc1999e8 +/agent-note-canonical-v3-session-event-envelopes/decision: + en: f75747b415bfd13b + zh: 18e5e35853e4b506 +/agent-note-canonical-v3-session-event-envelopes/decision/validation-ownership: + en: 6fb18468df0b93e1 + zh: 8dd4dd58a883884f +/agent-note-canonical-v3-session-event-envelopes/decision/released-v2-to-v3-conversion: + en: 1f76511cc4c2fcfd + zh: 77633f9860f14d9d +/agent-note-canonical-v3-session-event-envelopes/alternatives-considered: + en: 08c196bc596a0b2a + zh: 55bbbec345e9a078 +/agent-note-canonical-v3-session-event-envelopes/consequences: + en: 9e88dd3830fb0522 + zh: 8be0d8bde8d0d9d2 +/agent-note-canonical-v3-session-event-envelopes/verification: + en: 31ec0b1095035042 + zh: 05d9f08138da1136 diff --git a/.agents/notes/implemented/architecture/2026-09-07-prebuilt-system-primitives.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-07-prebuilt-system-primitives.i18n.yaml index c11c54f6a9..8a100c6c1a 100644 --- a/.agents/notes/implemented/architecture/2026-09-07-prebuilt-system-primitives.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-07-prebuilt-system-primitives.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-prebuilt-system-primitives.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-07-prebuilt-system-primitives.md -2026-09-07-prebuilt-system-primitives.md: 183cd3ea984cd779417493f0de17a770f38fc001 -2026-09-07-prebuilt-system-primitives.zh.md: f051bba92910086601aa48a877f360e276df524d +/agent-note-prebuilt-system-primitives: + en: eb306b6649dcf8a0 + zh: eab9d3d896e40603 +/agent-note-prebuilt-system-primitives/problem: + en: 1d7458b11272d21a + zh: 534ac9709711f964 +/agent-note-prebuilt-system-primitives/decision: + en: 80093fd5aae0005f + zh: 56f9aa9549c03e7c +/agent-note-prebuilt-system-primitives/alternatives-considered: + en: 8dc5c0319fe6c7eb + zh: 26722ae58a788d0b +/agent-note-prebuilt-system-primitives/consequences: + en: cd0a9aa852ac178b + zh: 6f5376d64625da88 diff --git a/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml index 3a61bfea9c..dd4a23fe04 100644 --- a/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-sidebar-responsive-tab-info.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.md -2026-09-07-sidebar-responsive-tab-info.md: 96f7f047d00a33d6cd48b026ce7762929720d9d6 -2026-09-07-sidebar-responsive-tab-info.zh.md: f020068e71777272fd15a967de547ce153884402 +/agent-note-responsive-sidebar-and-injected-tab-information: + en: 63ced560202cf1a3 + zh: 1ec49cd5ae68f909 +/agent-note-responsive-sidebar-and-injected-tab-information/problem: + en: f9824b1d6f93d329 + zh: 36bc474f646a1a25 +/agent-note-responsive-sidebar-and-injected-tab-information/decision: + en: 1a055f79cb0afcde + zh: 78467751791d42d1 +/agent-note-responsive-sidebar-and-injected-tab-information/alternatives-considered: + en: c05a3ca9a201f01a + zh: b1b30e134a92c8ed +/agent-note-responsive-sidebar-and-injected-tab-information/consequences: + en: 852e827be572c626 + zh: 125ac90be15a5187 diff --git a/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml index 2b1ef7d81a..2d222100c4 100644 --- a/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-workspace-files-dual-face-package.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.md -2026-09-07-workspace-files-dual-face-package.md: adc900865cb8d5f19518828a9cb230a835d025f5 -2026-09-07-workspace-files-dual-face-package.zh.md: ccfa60417284129a280efd7ddad2ea275c242f1e +/agent-note-workspace-files-as-one-dual-face-api-package: + en: fee20bed1c4f69d2 + zh: 8897bf7430250d46 +/agent-note-workspace-files-as-one-dual-face-api-package/problem: + en: 057ac188f6269740 + zh: 4ed1c2f6c3015efb +/agent-note-workspace-files-as-one-dual-face-api-package/decision: + en: 36fdbb0b44b1bb5e + zh: 87a7a9b45231cf28 +/agent-note-workspace-files-as-one-dual-face-api-package/alternatives-considered: + en: 45a93fced31f5980 + zh: 9283fbda48828416 +/agent-note-workspace-files-as-one-dual-face-api-package/consequences: + en: d4558eea4ac3a00b + zh: e625747fd469f146 +/agent-note-workspace-files-as-one-dual-face-api-package/verification: + en: 4c49a2ec778623e8 + zh: 94eacb1ee8e4d36d diff --git a/.agents/notes/implemented/architecture/2026-09-08-desktop-bundled-runtime-and-external-plugins.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-08-desktop-bundled-runtime-and-external-plugins.i18n.yaml index 552cf1b424..6e302c76a3 100644 --- a/.agents/notes/implemented/architecture/2026-09-08-desktop-bundled-runtime-and-external-plugins.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-08-desktop-bundled-runtime-and-external-plugins.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-desktop-bundled-runtime-and-external-plugins.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-08-desktop-bundled-runtime-and-external-plugins.md -2026-09-08-desktop-bundled-runtime-and-external-plugins.md: 61fa9eafb72133d4cbba1b65193275cc8474f7e5 -2026-09-08-desktop-bundled-runtime-and-external-plugins.zh.md: 8d94d5823526ab4e615dab13f8453c8b6da5d8b6 +/agent-note-bundle-the-desktop-runtime-and-retain-external-plugins: + en: f4c2a14c7f0dbd02 + zh: 5c9b9b68885f3ee0 +/agent-note-bundle-the-desktop-runtime-and-retain-external-plugins/problem: + en: fe97fe6ba33cb23a + zh: c83a1f023c4e352d +/agent-note-bundle-the-desktop-runtime-and-retain-external-plugins/decision: + en: e01df5ba880c2972 + zh: e62074a6a9ba5685 +/agent-note-bundle-the-desktop-runtime-and-retain-external-plugins/package-ownership: + en: 37cae6b28fd359ef + zh: 63118e361fa8f84c +/agent-note-bundle-the-desktop-runtime-and-retain-external-plugins/transactions-and-upgrades: + en: 5bdc450be55832fb + zh: 3312fc9e5497e139 +/agent-note-bundle-the-desktop-runtime-and-retain-external-plugins/alternatives-considered: + en: 1558bba473382cbb + zh: b6a6467866ee254d +/agent-note-bundle-the-desktop-runtime-and-retain-external-plugins/consequences: + en: 6dfa581ec6879c5b + zh: f6c735ad6a00b2b3 diff --git a/.agents/notes/implemented/architecture/2026-09-08-desktop-welcome-window-material.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-08-desktop-welcome-window-material.i18n.yaml index 744cb14c8d..5de2a3a586 100644 --- a/.agents/notes/implemented/architecture/2026-09-08-desktop-welcome-window-material.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-08-desktop-welcome-window-material.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-desktop-welcome-window-material.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-08-desktop-welcome-window-material.md -2026-09-08-desktop-welcome-window-material.md: 4ee5f6d2934378b06754c4a8f134a4ca07a80840 -2026-09-08-desktop-welcome-window-material.zh.md: 1689af8481925c787c1d2412173fbd7d8c2f4b64 +/agent-note-desktop-welcome-window-material: + en: a362add86cddc144 + zh: c6f482e5f9a66bdf +/agent-note-desktop-welcome-window-material/problem: + en: 8578b584bda3abdc + zh: 85dcf44aab2cfd51 +/agent-note-desktop-welcome-window-material/decision: + en: df31ede930b7c3c0 + zh: c7fc4272bc6b2d85 +/agent-note-desktop-welcome-window-material/alternatives-considered: + en: 6e095dceffe75fa8 + zh: 679a6026afd735a7 +/agent-note-desktop-welcome-window-material/consequences: + en: 8ab73e6c67f4ce88 + zh: 6b1edad02f90ba5b diff --git a/.agents/notes/implemented/architecture/2026-09-08-document-preview-operations.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-08-document-preview-operations.i18n.yaml index 6ccdf5d446..ec7374517f 100644 --- a/.agents/notes/implemented/architecture/2026-09-08-document-preview-operations.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-08-document-preview-operations.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-document-preview-operations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-08-document-preview-operations.md -2026-09-08-document-preview-operations.md: 220db6db0474f244f902cdeb89b297856243672b -2026-09-08-document-preview-operations.zh.md: 7b838711e5118b8fcc072e4efb753abfc9756b56 +/agent-note-document-preview-and-file-addresses: + en: fffa621b7586f221 + zh: d9c7e9bea55fc11f +/agent-note-document-preview-and-file-addresses/problem: + en: a35075e6babe3f7a + zh: 3a64ac57761e1009 +/agent-note-document-preview-and-file-addresses/decision: + en: d0a2923efefbcfe1 + zh: 34f71d092c0e706b +/agent-note-document-preview-and-file-addresses/alternatives-considered: + en: 8e9616e954df488c + zh: 10801341ec53bbe8 +/agent-note-document-preview-and-file-addresses/consequences: + en: cc810ba19e203ead + zh: 9421857a5eb2abe2 diff --git a/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.i18n.yaml index 35d6b7f310..d16bba3786 100644 --- a/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-global-main-panels.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-08-global-main-panels.md -2026-09-08-global-main-panels.md: 63530a6b498bd8099cf627d82c888846d3d96767 -2026-09-08-global-main-panels.zh.md: 776787c3de3b79ca7948dcf949ac0393f87e7808 +/agent-note-global-main-panels-without-default-ui-additions: + en: df950323f9032f3b + zh: d08172be0c9ca71c +/agent-note-global-main-panels-without-default-ui-additions/problem: + en: da6aa479acac3baf + zh: ed6316ea9953ff99 +/agent-note-global-main-panels-without-default-ui-additions/decision: + en: e732d64ac12c0ac5 + zh: e8ff462ae93bf259 +/agent-note-global-main-panels-without-default-ui-additions/alternatives-considered: + en: 18c8461d961490ee + zh: a26b37ff3aa15bbc +/agent-note-global-main-panels-without-default-ui-additions/consequences: + en: 31db82c87448a292 + zh: 1923a60d2f0845f9 diff --git a/.agents/notes/implemented/architecture/2026-09-09-awaited-agent-creation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-awaited-agent-creation.i18n.yaml index 50f7a2eb8b..a8255aa82a 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-awaited-agent-creation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-awaited-agent-creation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-awaited-agent-creation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-awaited-agent-creation.md -2026-09-09-awaited-agent-creation.md: 27353225a8d99d038d5c61b1eea0fa67d9120a55 -2026-09-09-awaited-agent-creation.zh.md: f664e89da0794acd1d2a6c0c8a4820a7056dcac6 +/agent-note-awaited-per-agent-initialization: + en: 982ac05aa02da2f0 + zh: 225f89c994efb1c4 +/agent-note-awaited-per-agent-initialization/problem: + en: 03e6b75365b29406 + zh: cc880a33cf2303d0 +/agent-note-awaited-per-agent-initialization/decision: + en: f1db71d1fdb4388e + zh: 6c5a43a770f4cffd +/agent-note-awaited-per-agent-initialization/alternatives-considered: + en: 466a9ebbb13f68c6 + zh: ab88fb34786d2c2b +/agent-note-awaited-per-agent-initialization/consequences: + en: d8cfe8d88ccacfc8 + zh: 8d2aa21408e6e40e diff --git a/.agents/notes/implemented/architecture/2026-09-09-consumer-owned-startup-strictness.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-consumer-owned-startup-strictness.i18n.yaml index bf6ed1340c..51149ea2fb 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-consumer-owned-startup-strictness.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-consumer-owned-startup-strictness.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-consumer-owned-startup-strictness.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-consumer-owned-startup-strictness.md -2026-09-09-consumer-owned-startup-strictness.md: bbe975e13b251e2e0d18c4e002efbf1d362548f3 -2026-09-09-consumer-owned-startup-strictness.zh.md: 4bd2bfe026a13ccbd46215d2c0165b5a8c5327f7 +/agent-note-consumer-owned-startup-strictness: + en: 52b6747530b4c023 + zh: dc2f8c1f0c300d0a +/agent-note-consumer-owned-startup-strictness/problem: + en: 4548e7fbdbee5b5a + zh: 0078762ea92fa180 +/agent-note-consumer-owned-startup-strictness/decision: + en: eb2b83f5f65c6b6a + zh: b85a9aa4645c9a20 +/agent-note-consumer-owned-startup-strictness/alternatives-considered: + en: 1b67e062213184cd + zh: 91cc8a015de2bfe4 +/agent-note-consumer-owned-startup-strictness/consequences: + en: 283dec1b336c540d + zh: 2ed358079072cfff +/agent-note-consumer-owned-startup-strictness/testing: + en: d8cafae30ea1347b + zh: de47e4e7ba863261 diff --git a/.agents/notes/implemented/architecture/2026-09-09-deprecate-synchronous-session-event-reads.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-deprecate-synchronous-session-event-reads.i18n.yaml index 0cae49b087..f52d6e969f 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-deprecate-synchronous-session-event-reads.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-deprecate-synchronous-session-event-reads.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-deprecate-synchronous-session-event-reads.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-deprecate-synchronous-session-event-reads.md -2026-09-09-deprecate-synchronous-session-event-reads.md: a2a86b0d6500269531ca1088738aaa612076bfb4 -2026-09-09-deprecate-synchronous-session-event-reads.zh.md: 38468708a5323b6ebf94377f3cc8f2c86dc95dde +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events: + en: c8011fa4e61dea2f + zh: afb60a2e5d39f6dc +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events/problem: + en: 95224617f6a308be + zh: 1d4187bb1e50efb4 +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events/decision: + en: 29d7cb4415f01a29 + zh: a414d90693e7150e +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events/decision/state-needed-after-resume: + en: e393309432e87d21 + zh: e1de0efa07abfdba +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events/decision/operations-that-require-complete-history: + en: 38653e50be5bd235 + zh: a2e4dead2ad61124 +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events/alternatives-considered: + en: 82d983c9c1110797 + zh: 2f491c4bb559b4f2 +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events/consequences: + en: eadd46697f6ad6bf + zh: 38de0e9a72c027e9 +/agent-note-deprecate-synchronous-reads-of-arbitrary-session-events/related-decisions: + en: 037813a1627520ee + zh: b0f7a75ab4c26bff diff --git a/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.i18n.yaml index c41d31830d..2516370b2e 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-desktop-build-release-validation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.md -2026-09-09-desktop-build-release-validation.md: 23aeeaa98d2647f8b9f54e94ea2aedaa82b19e55 -2026-09-09-desktop-build-release-validation.zh.md: 266bca5bbd593907c9a8fadd43050113ede94100 +/agent-note-verify-desktop-release-compatibility-during-packaging: + en: 4183cb362d89a8fb + zh: ede5e45ba6245b6b +/agent-note-verify-desktop-release-compatibility-during-packaging/problem: + en: ae3f1e31ba929c0e + zh: 1a42684e41531547 +/agent-note-verify-desktop-release-compatibility-during-packaging/decision: + en: 352372f213c43a76 + zh: 54dc9826254e56f2 +/agent-note-verify-desktop-release-compatibility-during-packaging/alternatives-considered: + en: 515cec0d22c8373c + zh: e3a5b3058b6316c2 +/agent-note-verify-desktop-release-compatibility-during-packaging/consequences: + en: 5193e3ce82faa984 + zh: 1bd7a31152e3b71c diff --git a/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml index 628396c454..ecc422ab61 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-desktop-immediate-window-and-direct-start.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md -2026-09-09-desktop-immediate-window-and-direct-start.md: e7ccf9b7456213d69795a40d9cd2a8509adfc44e -2026-09-09-desktop-immediate-window-and-direct-start.zh.md: c59cc91f0013293cbaf2c086822085000dd3afd2 +/agent-note-show-the-desktop-window-before-starting-the-host: + en: aed1efe0e21399a1 + zh: dd45a0ed4bfa731e +/agent-note-show-the-desktop-window-before-starting-the-host/problem: + en: bd8f14bc0beaac9e + zh: 20b0521f27ad231f +/agent-note-show-the-desktop-window-before-starting-the-host/decision: + en: 6ac14061a85b3da6 + zh: ec35f11c15b34be8 +/agent-note-show-the-desktop-window-before-starting-the-host/alternatives-considered: + en: 4d476b25f3647e1b + zh: 4a1b0252005c8c22 +/agent-note-show-the-desktop-window-before-starting-the-host/consequences: + en: 98119090f2133d33 + zh: 53ad4539d677ee4e diff --git a/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml index 030a4eadb9..6c34e86274 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-plugin-management-in-the-web-sidebar.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md -2026-09-09-plugin-management-in-the-web-sidebar.md: ba359aeefe3883445fd5f3e3dc164262e0613219 -2026-09-09-plugin-management-in-the-web-sidebar.zh.md: 91664deeb422c1dc6c34f826a85f398183128d1c +/agent-note-plugin-management-moves-to-the-web-sidebar: + en: efdb6c8f366dd2c2 + zh: 5c55e2882753d481 +/agent-note-plugin-management-moves-to-the-web-sidebar/problem: + en: b0d11556425397b0 + zh: 00968088bec13102 +/agent-note-plugin-management-moves-to-the-web-sidebar/decision: + en: eb93a33f64907b80 + zh: 4073f2da219ad798 +/agent-note-plugin-management-moves-to-the-web-sidebar/alternatives-considered: + en: e5cea1a5e97884be + zh: d5544ae935a48f0a +/agent-note-plugin-management-moves-to-the-web-sidebar/consequences: + en: 74c0051937f03444 + zh: 256b38ff34549a4d +/agent-note-plugin-management-moves-to-the-web-sidebar/testing: + en: 9d08eb02abc00595 + zh: 56c7d26016f9deec diff --git a/.agents/notes/implemented/architecture/2026-09-09-producer-owned-message-sources.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-producer-owned-message-sources.i18n.yaml index 1514b7c6d3..7a4ee1cacd 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-producer-owned-message-sources.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-producer-owned-message-sources.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-producer-owned-message-sources.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-producer-owned-message-sources.md -2026-09-09-producer-owned-message-sources.md: 83f8cb9368b516b7b6fde8717f9e5f8e9d4f7d4e -2026-09-09-producer-owned-message-sources.zh.md: f5cdfc48286f7b92883938c8e316a7751580f52c +/agent-note-producer-owned-message-sources-at-the-v4-edge: + en: 57c1c2cecb09ee0f + zh: 30b6a2c42ce573ca +/agent-note-producer-owned-message-sources-at-the-v4-edge/problem: + en: 4633a3379711846d + zh: aca05b06105b2683 +/agent-note-producer-owned-message-sources-at-the-v4-edge/decision: + en: a6f3c4040206a623 + zh: f44c3343e36cac01 +/agent-note-producer-owned-message-sources-at-the-v4-edge/alternatives-considered: + en: 99e30ba3f8782544 + zh: 3b443115115389f8 +/agent-note-producer-owned-message-sources-at-the-v4-edge/consequences: + en: 18b1b6ccbf1f299b + zh: 1bc741beb049185e diff --git a/.agents/notes/implemented/architecture/2026-09-09-profile-resolution-generations.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-profile-resolution-generations.i18n.yaml index 1d1ecb3a28..c1cc88bcdd 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-profile-resolution-generations.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-profile-resolution-generations.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-profile-resolution-generations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-profile-resolution-generations.md -2026-09-09-profile-resolution-generations.md: 649c6c358fece5557031b4a21f3d3ebdd9dac8f7 -2026-09-09-profile-resolution-generations.zh.md: 4e84cc1f1b763c88b4ae96c4c44ae79de0d4c0d6 +/agent-note-add-immutable-profile-resolution-generations: + en: 6a4338564c01ad91 + zh: 241248cff9bd4cfc +/agent-note-add-immutable-profile-resolution-generations/problem: + en: 8e192c176fe48c4c + zh: adb965d650088eb0 +/agent-note-add-immutable-profile-resolution-generations/decision: + en: a3022a87337058c5 + zh: 1d53a08a25ed6eb3 +/agent-note-add-immutable-profile-resolution-generations/decision/one-selection-algorithm: + en: eae0faee66f97e5e + zh: 6d400543869aa7b3 +/agent-note-add-immutable-profile-resolution-generations/decision/ordinary-and-linked-package-examples: + en: f77ef79e2499a0dc + zh: 4bc28292763a1075 +/agent-note-add-immutable-profile-resolution-generations/decision/source-and-built-module-identity: + en: 53a9e92698ce9a5d + zh: 6124d446e8d4a532 +/agent-note-add-immutable-profile-resolution-generations/decision/immutable-generations: + en: cd4e64bd80f448a2 + zh: 585e1fbd8721ae99 +/agent-note-add-immutable-profile-resolution-generations/decision/shared-esm-and-commonjs-rule: + en: 0e0575a04a081b52 + zh: 94c74334939e6d13 +/agent-note-add-immutable-profile-resolution-generations/decision/active-plugin-list-and-package-metadata: + en: 031404dd5b36d408 + zh: de21e819edffbcf7 +/agent-note-add-immutable-profile-resolution-generations/decision/workers-and-generation-updates: + en: 99308bd758859e02 + zh: 35f1e7719fe80d2e +/agent-note-add-immutable-profile-resolution-generations/decision/additive-package-changes: + en: 718dfa7826783f2a + zh: 21c3d5fdfae9cb99 +/agent-note-add-immutable-profile-resolution-generations/decision/filesystem-and-runtime-carriers: + en: b0607713102a093d + zh: 2de9c33bfaa0e3e2 +/agent-note-add-immutable-profile-resolution-generations/decision/performance-and-verification: + en: bf7bd2f8371f54f3 + zh: 426c3b33af8874b8 +/agent-note-add-immutable-profile-resolution-generations/alternatives-considered: + en: 2426173c58a17a48 + zh: 0423b3700273accd +/agent-note-add-immutable-profile-resolution-generations/verification: + en: fbb17aa8fe62b1e8 + zh: 2ed091fdfd995fc8 +/agent-note-add-immutable-profile-resolution-generations/consequences: + en: 54cae20b2734a07e + zh: caa334f8f7a40452 diff --git a/.agents/notes/implemented/architecture/2026-09-09-workspace-file-read-authority.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-09-workspace-file-read-authority.i18n.yaml index eed28e3666..3d1c6c968a 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-workspace-file-read-authority.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-09-workspace-file-read-authority.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-workspace-file-read-authority.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-09-workspace-file-read-authority.md -2026-09-09-workspace-file-read-authority.md: 140816e8c48a6628133cf9208d5b48545e2e5eaf -2026-09-09-workspace-file-read-authority.zh.md: 75ffee32c40930c459018ab0fde42d5324371ba8 +/agent-note-workspace-file-read-authority: + en: 7ca22246a308d511 + zh: c51c7343db9c8cfa +/agent-note-workspace-file-read-authority/problem: + en: ee5703dcce5d81c5 + zh: 6c1aec04723d211b +/agent-note-workspace-file-read-authority/decision: + en: 92dbdf6087e00f04 + zh: 2c8720a081d492f9 +/agent-note-workspace-file-read-authority/alternatives-considered: + en: 329e575be02d7392 + zh: a78f428b36d40f59 +/agent-note-workspace-file-read-authority/consequences: + en: 5596ccd54a474e24 + zh: d31721c8d39b7fdc diff --git a/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml index 5ea95513d9..85ab4e3c03 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-command-identities-and-composer-file-action.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.md -2026-09-10-command-identities-and-composer-file-action.md: 696c3486c5e007416da3fd5e7be1d4b41cb5f582 -2026-09-10-command-identities-and-composer-file-action.zh.md: 2ce803bad5d39a6d4f40b665fb4ef7456e987912 +/agent-note-command-identities-and-composer-owned-file-action: + en: 96db2d4653b47858 + zh: b914d79ab95b0e51 +/agent-note-command-identities-and-composer-owned-file-action/problem: + en: ad2c360593eb7a42 + zh: 503a9c31a5eb55e7 +/agent-note-command-identities-and-composer-owned-file-action/decision: + en: c78d13ee6a59c04d + zh: 53fc322d351e437b +/agent-note-command-identities-and-composer-owned-file-action/alternatives-considered: + en: 94ccabd1fe224408 + zh: bfa28806f0218ce8 +/agent-note-command-identities-and-composer-owned-file-action/consequences: + en: 08f25ff5e0d227cf + zh: a26663e5b7d9feeb diff --git a/.agents/notes/implemented/architecture/2026-09-10-compact-tool-details.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-10-compact-tool-details.i18n.yaml index 484c0c2a3b..50d4ce7a3d 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-compact-tool-details.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-10-compact-tool-details.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-compact-tool-details.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-10-compact-tool-details.md -2026-09-10-compact-tool-details.md: 6c1f29c5554c74b01fc2a86c2dee3750a529a6b5 -2026-09-10-compact-tool-details.zh.md: d0822a48f100f9f21ef4706204087fcd1e627da4 +/agent-note-compact-tool-details-from-recorded-results: + en: 7495c26039484440 + zh: d1907caf1f139054 +/agent-note-compact-tool-details-from-recorded-results/problem: + en: e4ce66f2cdb08516 + zh: 3f45374f23fa8f3b +/agent-note-compact-tool-details-from-recorded-results/decision: + en: 668e06f5146a78de + zh: 4af1edf74eb8121c +/agent-note-compact-tool-details-from-recorded-results/alternatives-considered: + en: 1f0bf45e4ecc0bfa + zh: c46b173dc7ee180b +/agent-note-compact-tool-details-from-recorded-results/consequences: + en: e02acb07b752c285 + zh: b29f9a5ad44ff10f diff --git a/.agents/notes/implemented/architecture/2026-09-10-component-factories-and-local-slots.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-10-component-factories-and-local-slots.i18n.yaml index 993f4391a6..ede649c464 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-component-factories-and-local-slots.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-10-component-factories-and-local-slots.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-component-factories-and-local-slots.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-10-component-factories-and-local-slots.md -2026-09-10-component-factories-and-local-slots.md: 801e77644d9d2c80c4a9f3cad263420d1deda163 -2026-09-10-component-factories-and-local-slots.zh.md: 3ccd5f01633a1aa4ae830e1ee41243f5d1b65cc5 +/agent-note-reusable-component-factories-with-local-slots: + en: c59d9a681b69c8e0 + zh: 987e95099a9bbe2a +/agent-note-reusable-component-factories-with-local-slots/problem: + en: ba5734b4b97a73b5 + zh: 29f3fc9b7b88f25a +/agent-note-reusable-component-factories-with-local-slots/decision: + en: 21aa3e44ee63ef30 + zh: dbbed5107b354ff1 +/agent-note-reusable-component-factories-with-local-slots/decision/opposite-registration-directions: + en: cbe40f4b1db77180 + zh: d471b9b15c1180a8 +/agent-note-reusable-component-factories-with-local-slots/decision/definition-and-occurrence-lifecycle: + en: 5b1dbbc3cdadb743 + zh: 8efdfb12b80d305d +/agent-note-reusable-component-factories-with-local-slots/decision/local-slots-and-ordinary-children: + en: 4efed23287a0332e + zh: fa4079f4e47dd3f3 +/agent-note-reusable-component-factories-with-local-slots/decision/first-shipped-use: + en: 39d1d419e793b2d9 + zh: e5aa14bace690f52 +/agent-note-reusable-component-factories-with-local-slots/decision/type-and-runtime-enforcement: + en: dfa80b7d19335a1f + zh: 19fddd013bac8cee +/agent-note-reusable-component-factories-with-local-slots/alternatives-considered: + en: b20072038b089ea9 + zh: 129aa0705c030356 +/agent-note-reusable-component-factories-with-local-slots/consequences: + en: 14271ca39d681ca6 + zh: 76bceb0182164a6d diff --git a/.agents/notes/implemented/architecture/2026-09-10-desktop-web-wrapper.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-10-desktop-web-wrapper.i18n.yaml index 62399c273d..2de0be6d61 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-desktop-web-wrapper.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-10-desktop-web-wrapper.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-desktop-web-wrapper.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-10-desktop-web-wrapper.md -2026-09-10-desktop-web-wrapper.md: 4f43cc650777596c807cf79463edc7a9131db44b -2026-09-10-desktop-web-wrapper.zh.md: bc41b4f8eff1dca7fc3dd9b934dac257a9d10a6b +/agent-note-run-desktop-through-the-shared-web-application: + en: 1803d1966797a555 + zh: 6ab64a673a217d34 +/agent-note-run-desktop-through-the-shared-web-application/problem: + en: 085b445846af76c1 + zh: fdddf72401292bbd +/agent-note-run-desktop-through-the-shared-web-application/decision: + en: 7767ab2839440970 + zh: 9a998e72b728fd17 +/agent-note-run-desktop-through-the-shared-web-application/alternatives-considered: + en: 9c5dfbf9cc788040 + zh: 631f851909dd7234 +/agent-note-run-desktop-through-the-shared-web-application/consequences: + en: 43a80c01a8a95170 + zh: 0d7a2d1d1c676a61 diff --git a/.agents/notes/implemented/architecture/2026-09-10-image-offload-events.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-10-image-offload-events.i18n.yaml index 6953db3edf..6a7a9b2152 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-image-offload-events.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-10-image-offload-events.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-image-offload-events.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-10-image-offload-events.md -2026-09-10-image-offload-events.md: e80c4ae17b148d9eb46517b92111a8d768160def -2026-09-10-image-offload-events.zh.md: 2aa2b8b1fbffd117b5d716aba28755a02a155bb8 +/agent-note-durable-image-offload-events: + en: 13b817438040d321 + zh: 490038f3c93551c7 +/agent-note-durable-image-offload-events/problem: + en: 93c2241e0f40fca1 + zh: fe3528cff00e07b3 +/agent-note-durable-image-offload-events/decision: + en: e1cbaf46e6a6a7be + zh: c3640a44c9be69af +/agent-note-durable-image-offload-events/alternatives-considered: + en: f1ab95c3bf1a17f8 + zh: 2708521190143182 +/agent-note-durable-image-offload-events/consequences: + en: 3a9b13af9673349b + zh: 7da10694e24edadc +/agent-note-durable-image-offload-events/testing: + en: 6fa4e40e7666aa68 + zh: e31ffd143463ca15 diff --git a/.agents/notes/implemented/architecture/2026-09-10-public-package-manifest.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-10-public-package-manifest.i18n.yaml index de121c7c16..493f5002ab 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-public-package-manifest.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-10-public-package-manifest.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-public-package-manifest.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-10-public-package-manifest.md -2026-09-10-public-package-manifest.md: 2d35a3ad17c5aa62df4a5eccde351f325936a84f -2026-09-10-public-package-manifest.zh.md: 7dc03e5160b3837ea07e19469b1d8a0a4f64ebe6 +/agent-note-public-package-manifest-fields: + en: 1ea0f036c6d0ba67 + zh: 3e885b6827315f74 +/agent-note-public-package-manifest-fields/problem: + en: e4bafc2b26cae6d2 + zh: f8226b200b627c55 +/agent-note-public-package-manifest-fields/decision: + en: 9351e430c86c51fe + zh: 486496885b77824a +/agent-note-public-package-manifest-fields/alternatives-considered: + en: 656ef2c1e7853d01 + zh: 21c525fda71c6def +/agent-note-public-package-manifest-fields/consequences: + en: 7221805e563eceb2 + zh: d171144ecef841e9 diff --git a/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.i18n.yaml index 304ebc1404..30d6654c2d 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-windows-native-installer-pages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.md -2026-09-10-windows-native-installer-pages.md: 93aa4839620207447ad85b1027a68fcfdc5d3e2c -2026-09-10-windows-native-installer-pages.zh.md: da28e22f82c6e403696904362bcbe6c8b96881b8 +/agent-note-native-windows-installer-pages: + en: 2170ba78b248756f + zh: 6e5852f4685fbc81 +/agent-note-native-windows-installer-pages/problem: + en: 5d148a332b151928 + zh: a79cdfd0f1556c58 +/agent-note-native-windows-installer-pages/decision: + en: 3357e9aca4862152 + zh: c2fa86534f9c8737 +/agent-note-native-windows-installer-pages/alternatives-considered: + en: a5b1e11a1b30ab99 + zh: 8495f05dc87b831a +/agent-note-native-windows-installer-pages/consequences: + en: 16243ca0777d1ff8 + zh: e35cb7f33a756b47 diff --git a/.agents/notes/implemented/architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml index d8b4bc7ee7..65fd19d68d 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-desktop-electron-node-runtime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-11-desktop-electron-node-runtime.md -2026-09-11-desktop-electron-node-runtime.md: 71516bb930f8eee22c1c6a988b6dab596a53a215 -2026-09-11-desktop-electron-node-runtime.zh.md: 162908392b98ee6a666ca414b602207ad8344937 +/agent-note-use-electron-as-the-desktop-node-runtime: + en: 06290013c52b169d + zh: 5e876829cf708f34 +/agent-note-use-electron-as-the-desktop-node-runtime/problem: + en: 67e580ac6d9298d9 + zh: bb2bd7486090bde4 +/agent-note-use-electron-as-the-desktop-node-runtime/decision: + en: 3cac5d877b18179d + zh: 0376bce7b099e0a6 +/agent-note-use-electron-as-the-desktop-node-runtime/consequences: + en: b407d0ce648beea5 + zh: 7ab329aa1d7a237c +/agent-note-use-electron-as-the-desktop-node-runtime/alternatives-considered: + en: 880e255d56b45345 + zh: 5952d9685c564284 diff --git a/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.i18n.yaml index eea688362d..5879ae942a 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-node-office-kit.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-11-node-office-kit.md -2026-09-11-node-office-kit.md: 2c95b7e27e059f6aaee21970fb30fca9ba1bb11b -2026-09-11-node-office-kit.zh.md: bec5d6bb59f987f629ebfd81bb753eee121566f3 +/agent-note-node-office-conversion-with-independently-packaged-engines: + en: 04142abd8eef58bc + zh: 1a2fe733f74e88ef +/agent-note-node-office-conversion-with-independently-packaged-engines/problem: + en: ac8ace90fa115f0d + zh: 18b9977031cbadeb +/agent-note-node-office-conversion-with-independently-packaged-engines/decision: + en: 61d2e96b5b3782c5 + zh: 49780b672e681b0e +/agent-note-node-office-conversion-with-independently-packaged-engines/alternatives-considered: + en: 70315a46124cbde7 + zh: ee258ed0ef7effb0 +/agent-note-node-office-conversion-with-independently-packaged-engines/consequences: + en: bb32631217be9743 + zh: 1ea86613ade03732 diff --git a/.agents/notes/implemented/architecture/2026-09-11-plugin-owned-message-projections.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-11-plugin-owned-message-projections.i18n.yaml index 86af0d0570..552e27d0a6 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-plugin-owned-message-projections.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-11-plugin-owned-message-projections.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-plugin-owned-message-projections.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-11-plugin-owned-message-projections.md -2026-09-11-plugin-owned-message-projections.md: 9e1eca92567fc035d48c1c42ad86d371f2542c5b -2026-09-11-plugin-owned-message-projections.zh.md: b26b5d4549294b37665ac933944b7f51ef7a5717 +/agent-note-plugin-owned-message-projections: + en: 534c84d25c21d930 + zh: 30964b3e14ffaeac +/agent-note-plugin-owned-message-projections/problem: + en: bd3ad5505204ec0b + zh: 770b6089c760d99f +/agent-note-plugin-owned-message-projections/decision: + en: 2b33d4a1cfba0f53 + zh: 55347f3ecf234862 +/agent-note-plugin-owned-message-projections/alternatives-considered: + en: c6e4c770739dca68 + zh: 7bfcb3dda06a22a1 +/agent-note-plugin-owned-message-projections/consequences: + en: c2f3ff0b9639bec5 + zh: 357f90d9a3423751 diff --git a/.agents/notes/implemented/architecture/2026-09-11-posix-ssh-runtime.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-11-posix-ssh-runtime.i18n.yaml index d7adb64692..423de99127 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-posix-ssh-runtime.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-11-posix-ssh-runtime.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-posix-ssh-runtime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-11-posix-ssh-runtime.md -2026-09-11-posix-ssh-runtime.md: d54600faa68524b569f219627537ce250158d9b1 -2026-09-11-posix-ssh-runtime.zh.md: a6b3a84c37b0d7b4438e8c766ef4e010443fe744 +/agent-note-posix-ssh-execution-providers: + en: 416e4093259a80aa + zh: a04797294e6af446 +/agent-note-posix-ssh-execution-providers/problem: + en: f67f6add03a36e85 + zh: 656be288f8b2e1d2 +/agent-note-posix-ssh-execution-providers/decision: + en: b2d1e370d008f0f3 + zh: 3e98919538d3fb78 +/agent-note-posix-ssh-execution-providers/alternatives-considered: + en: 4efffb3edba91689 + zh: 40100a70e5f55a42 +/agent-note-posix-ssh-execution-providers/consequences: + en: f29359ab89feb084 + zh: db7505b8d4a5351a +/agent-note-posix-ssh-execution-providers/verification: + en: 822c7c029a77f3c0 + zh: 4a2eaaf3372cba8b +/agent-note-posix-ssh-execution-providers/deferred-work: + en: f300f112c9a09f7e + zh: b4708a0b7f596420 diff --git a/.agents/notes/implemented/architecture/2026-09-11-sandboxed-node-ptc-runtime.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-11-sandboxed-node-ptc-runtime.i18n.yaml index f40d8780e9..834d15576d 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-sandboxed-node-ptc-runtime.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-11-sandboxed-node-ptc-runtime.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-sandboxed-node-ptc-runtime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-11-sandboxed-node-ptc-runtime.md -2026-09-11-sandboxed-node-ptc-runtime.md: f851775460c5bd01760d31552bde8c691807ec06 -2026-09-11-sandboxed-node-ptc-runtime.zh.md: 94f3a37eb702a97161c1d08cec531fcffb3460f2 +/agent-note-sandboxed-node-execution-for-ptc: + en: 0fb682d787b23a30 + zh: a7bdbbe987f53dcb +/agent-note-sandboxed-node-execution-for-ptc/problem: + en: 66ac3d7ce7eb8e15 + zh: abb9d41b71900bbf +/agent-note-sandboxed-node-execution-for-ptc/decision: + en: cf072f53de09faca + zh: 9edd5c4a2bfaae5a +/agent-note-sandboxed-node-execution-for-ptc/decision/resolved-inputs-and-policy: + en: e93df995efab569a + zh: 850daf02d1207028 +/agent-note-sandboxed-node-execution-for-ptc/decision/control-and-lifetime: + en: 2c7a694b04951772 + zh: 133b95b0477b127f +/agent-note-sandboxed-node-execution-for-ptc/decision/resource-limits: + en: 84c73cf3ff33bc03 + zh: a228080683d6252c +/agent-note-sandboxed-node-execution-for-ptc/alternatives-considered: + en: 8ffcc2b32a2243d7 + zh: 81d48d38947abc76 +/agent-note-sandboxed-node-execution-for-ptc/consequences: + en: c0aa3a23a03ba234 + zh: 257c7d35a17abbea +/agent-note-sandboxed-node-execution-for-ptc/deferred-timeout-design: + en: 455d66252cd23253 + zh: bf3839a13dbaaab5 diff --git a/.agents/notes/implemented/architecture/2026-09-11-subprocess-control-pipe.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-11-subprocess-control-pipe.i18n.yaml index 5e270a8b60..991ebb72c1 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-subprocess-control-pipe.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-11-subprocess-control-pipe.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-subprocess-control-pipe.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-11-subprocess-control-pipe.md -2026-09-11-subprocess-control-pipe.md: 438f840958cb2f7f576b899335602ecff1e8a5ef -2026-09-11-subprocess-control-pipe.zh.md: f4305d279342bb6c91162db5748ed49743d352c6 +/agent-note-subprocess-control-pipe: + en: dca4818e974b5b20 + zh: c4d2bd1dbb65e62e +/agent-note-subprocess-control-pipe/problem: + en: 64028c0449b6699c + zh: 6ad143bac0ce23bf +/agent-note-subprocess-control-pipe/decision: + en: 69dfe0cce4199d64 + zh: 80e2b847f9119372 +/agent-note-subprocess-control-pipe/alternatives-considered: + en: 8c677c2cf3cb15bd + zh: 4fccc1d9da7f041a +/agent-note-subprocess-control-pipe/consequences: + en: b5dd21f7c58f50a5 + zh: 24abcc7136d35211 diff --git a/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.i18n.yaml index 91e716d129..35bfbf6d4b 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-windows-directory-installation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.md -2026-09-11-windows-directory-installation.md: 8208c6cc4b28de8d1ab947cb8e6afba7bfa4f673 -2026-09-11-windows-directory-installation.zh.md: d337397e8ea654d14cccd0839460763b66a19457 +/agent-note-replace-windows-application-directories-after-staging: + en: 7cdd071dd6ad760f + zh: eb8510c6c09f0068 +/agent-note-replace-windows-application-directories-after-staging/problem: + en: fa0015dca8cd9e85 + zh: a826baa59c0a3bd1 +/agent-note-replace-windows-application-directories-after-staging/decision: + en: 5bec9a233d21bb35 + zh: 50e8ba778b14b48e +/agent-note-replace-windows-application-directories-after-staging/consequences: + en: 3562fbc117967fb3 + zh: 6600b28ea6202f68 +/agent-note-replace-windows-application-directories-after-staging/alternatives-considered: + en: 0971baacd045ddef + zh: c908624104e242f9 +/agent-note-replace-windows-application-directories-after-staging/verification: + en: 650fdccdf35ad9d3 + zh: 6069b9acb5f03878 diff --git a/.agents/notes/implemented/architecture/2026-09-12-browser-use-provider-registration.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-12-browser-use-provider-registration.i18n.yaml index d2e46abf6d..3c86f14974 100644 --- a/.agents/notes/implemented/architecture/2026-09-12-browser-use-provider-registration.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-12-browser-use-provider-registration.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-browser-use-provider-registration.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-12-browser-use-provider-registration.md -2026-09-12-browser-use-provider-registration.md: a0d3cfdbd798dadee6a9514dffdc619d95811c4d -2026-09-12-browser-use-provider-registration.zh.md: b0016b6655292ccb5259adcb5a07decedda2e21e +/agent-note-browser-use-provider-registration-and-session-ownership: + en: 68473a007451cf68 + zh: f7a8281c5a5a2e11 +/agent-note-browser-use-provider-registration-and-session-ownership/problem: + en: b3513236c712132d + zh: df7701029eae9b31 +/agent-note-browser-use-provider-registration-and-session-ownership/decision: + en: ffca30883c040835 + zh: 3bfc6ebae9a1fe55 +/agent-note-browser-use-provider-registration-and-session-ownership/alternatives-considered: + en: 44408473ef24d8f9 + zh: 448ca799d905e9a9 +/agent-note-browser-use-provider-registration-and-session-ownership/consequences: + en: 8eb33d4073f96236 + zh: 42c456f778e36485 diff --git a/.agents/notes/implemented/architecture/2026-09-12-computer-use-provider-registration.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-12-computer-use-provider-registration.i18n.yaml index b3c762547c..5867eb3e2a 100644 --- a/.agents/notes/implemented/architecture/2026-09-12-computer-use-provider-registration.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-12-computer-use-provider-registration.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-computer-use-provider-registration.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-12-computer-use-provider-registration.md -2026-09-12-computer-use-provider-registration.md: 52e51ac9c4f89b6ad730e647280ba3f0c04ea3c9 -2026-09-12-computer-use-provider-registration.zh.md: 2d8802e1d8cb3c5262cbc2ba6185262f949bca01 +/agent-note-computer-use-provider-registration: + en: 7179585d8663cf3c + zh: e0ac002425dfd40b +/agent-note-computer-use-provider-registration/problem: + en: 915ca3edbd83a8fd + zh: 98fe85c63c6b2135 +/agent-note-computer-use-provider-registration/decision: + en: 7166d067e8955c9b + zh: 719263b97c5874e8 +/agent-note-computer-use-provider-registration/alternatives-considered: + en: 12913da00ffb6aa6 + zh: cbb08d075d1b91c0 +/agent-note-computer-use-provider-registration/consequences: + en: eed0c10237bf13b1 + zh: e077a9b42e2d9e71 diff --git a/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml index 64a55ac887..ac5f77829d 100644 --- a/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-ptc-runtime-vocabulary.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.md -2026-09-12-ptc-runtime-vocabulary.md: 86d2132b735166fb0ee7c4a4929d5ca64ba0880a -2026-09-12-ptc-runtime-vocabulary.zh.md: 5951c43b9554a6266d96cc60d99c11e84acc138f +/agent-note-ptc-runtime-vocabulary: + en: 4e585bb88c918c48 + zh: 1ee36889df928e84 +/agent-note-ptc-runtime-vocabulary/problem: + en: 1281bbda56bc41e0 + zh: 719dc99572bd7921 +/agent-note-ptc-runtime-vocabulary/decision: + en: b3ca07cb6a92f358 + zh: f3b763124b483563 +/agent-note-ptc-runtime-vocabulary/alternatives-considered: + en: 38af2c476cc408bc + zh: 9f1ebd14829250e3 +/agent-note-ptc-runtime-vocabulary/consequences: + en: bb68774fb0a4bcc3 + zh: b866e8763b3a4f74 diff --git a/.agents/notes/implemented/architecture/2026-09-13-workflow-ptc-sandbox-reuse.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-13-workflow-ptc-sandbox-reuse.i18n.yaml index dad55cc0ce..46f602667d 100644 --- a/.agents/notes/implemented/architecture/2026-09-13-workflow-ptc-sandbox-reuse.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-13-workflow-ptc-sandbox-reuse.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-13-workflow-ptc-sandbox-reuse.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-13-workflow-ptc-sandbox-reuse.md -2026-09-13-workflow-ptc-sandbox-reuse.md: 9454ffef28e1ab5ba7791a30f4bcd67093a34ba3 -2026-09-13-workflow-ptc-sandbox-reuse.zh.md: c51706065703866520bfcad11beffc02eb1f5551 +/agent-note-reuse-the-ptc-node-sandbox-for-workflows: + en: 6db90d1dcfccd294 + zh: 0b66b16319b023a0 +/agent-note-reuse-the-ptc-node-sandbox-for-workflows/problem: + en: 42235162e945e015 + zh: 4edc5633720cd6cc +/agent-note-reuse-the-ptc-node-sandbox-for-workflows/decision: + en: b55a2a59b8039cdd + zh: fd6bbe987a49266f +/agent-note-reuse-the-ptc-node-sandbox-for-workflows/alternatives-considered: + en: 56d9a25713227146 + zh: 2cd89bf6ccc3b3bd +/agent-note-reuse-the-ptc-node-sandbox-for-workflows/consequences: + en: e650b834a6f6a3f2 + zh: de677719cdd49047 diff --git a/.agents/notes/implemented/architecture/2026-09-14-current-profile-plugin-management.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-14-current-profile-plugin-management.i18n.yaml index 6ec18af290..e9aab02a20 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-current-profile-plugin-management.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-14-current-profile-plugin-management.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-current-profile-plugin-management.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-14-current-profile-plugin-management.md -2026-09-14-current-profile-plugin-management.md: 8d4d4c40f033e490f09ebf8d367e1fb621037a6d -2026-09-14-current-profile-plugin-management.zh.md: a8dce606d00321bd96e643a9ba842581c961d6c1 +/agent-note-current-profile-plugin-management-shares-cli-transactions: + en: 86224d16fc754163 + zh: 1c9948a6f80f2544 +/agent-note-current-profile-plugin-management-shares-cli-transactions/problem: + en: 6bb727a659ba1503 + zh: d2ebf5c8164a807e +/agent-note-current-profile-plugin-management-shares-cli-transactions/decision: + en: 863b4369c39f3933 + zh: 7dd44a91ccaaef8f +/agent-note-current-profile-plugin-management-shares-cli-transactions/alternatives-considered: + en: 30c609de89084351 + zh: 27f2747ad9d9b752 +/agent-note-current-profile-plugin-management-shares-cli-transactions/consequences: + en: a51baa71aa3fe3f4 + zh: 291db9e4ba5723d2 diff --git a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml index 60eec8a71e..6580682ec7 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-deepseek-account-login.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md -2026-09-14-deepseek-account-login.md: 458e020c2000fd3db5ee9806e99d4b653710cb1e -2026-09-14-deepseek-account-login.zh.md: 2fb59009302309a67e2c3ec99050685ba39b4212 +/agent-note-deepseek-account-browser-login: + en: 666b3732ccc1c2fb + zh: 37dffad1bb4e26ae +/agent-note-deepseek-account-browser-login/problem: + en: 67c00444d9dcf06d + zh: ef294910952ba052 +/agent-note-deepseek-account-browser-login/decision: + en: db9297d04d25d0f6 + zh: 20938f92c1563146 +/agent-note-deepseek-account-browser-login/alternatives-considered: + en: b7694861ea5282b6 + zh: a5ff57bdcc9fcf60 +/agent-note-deepseek-account-browser-login/consequences: + en: 348fcdb33c193cf2 + zh: ad82da41941d3afb +/agent-note-deepseek-account-browser-login/verification: + en: 881edcb454b941a6 + zh: 7dc5a9b7a066f623 +/agent-note-deepseek-account-browser-login/related: + en: 3efeda0686194f07 + zh: 9c3ddc3b8baf9381 diff --git a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md index 458e020c20..165cd2d0a2 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md +++ b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md @@ -30,7 +30,7 @@ Putting the protocol in Electron duplicates the implementation for Web consumers Sign out removes the local grant before starting Platform POST /auth-api/v0/users/logout with the captured token. Remote failure never restores login. The provider retries at most five times after the initial request, with configurable exponential backoff starting at one second by default. Retry jobs retain only their old token, cannot change later login state, and end at provider shutdown without durable storage. Local credential deletion must succeed before publishing signed-out state. Sign out belongs to the sidebar account menu; Account settings owns profile, balance and sign-in. Both read one plugin-owned Host stream through framework hooks. -API keys and account grants remain separately stored. Account tokens have no expiry or refresh flow; exhausted logout retries can leave the removed token valid remotely. Provider initialization discards grants from a different configured Platform issuer locally, without remote revocation, so switching environments starts signed out instead of aborting Desktop startup. API keys and device identity survive this cleanup. Profile and balance query failures preserve login state; authorization-attempt deadlines apply only before token issuance. The same grant authenticates Platform current and get_user_summary queries on its configured issuer origin. Host preserves Platform-masked contact details and drops response tokens; account changes invalidate pending results. UI shows normal_wallets recharge balances and positive bonus_wallets in separate rows, so promotional credit is never presented as recharge funds. +API keys and account grants remain separately stored. Account tokens have no proactive refresh flow; exhausted logout retries can leave the removed token valid remotely. Provider initialization discards grants from a different configured Platform issuer locally, without remote revocation, so switching environments starts signed out instead of aborting Desktop startup. API keys and device identity survive this cleanup. Profile and balance HTTP 401 responses clear the rejected credential; other query failures preserve login state; authorization-attempt deadlines apply only before token issuance. The same grant authenticates Platform current and get_user_summary queries on its configured issuer origin. Host preserves Platform-masked contact details and drops response tokens; account changes invalidate pending results. UI shows normal_wallets recharge balances and positive bonus_wallets in separate rows, so promotional credit is never presented as recharge funds. The account plugin supplies choice, waiting, failure and timeout dialogs through settings.models.sign-in. The model package owns credential readiness and the existing API-key editor; the settings shell coordinates explicit reopening so login and API-key onboarding do not mount competing dialogs. diff --git a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md index 2fb5900930..5e09c0a17c 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md +++ b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md @@ -30,7 +30,7 @@ Desktop profile 为 Host API 请求头提供原生平台信息。账号与更新 退出登录先删除本地授权,再使用捕获的 token 调用 Platform POST /auth-api/v0/users/logout。远程失败不会恢复登录态。首次请求失败后,提供者最多重试五次,使用可配置的指数退避,默认从一秒开始。重试任务只保留旧 token,不改变后续登录态,并在提供者关闭时结束,不持久化。本地凭证删除成功后才发布已退出状态。退出登录位于侧边栏账号菜单;账号设置负责资料、余额和登录。两者通过框架 hook 读取插件持有的同一条 Host 状态流。 -API Key 与账号记录独立保存。账号 token 没有过期或刷新流程;退登重试耗尽后,已从本地删除的 token 在远端仍可能有效。提供者初始化时在本地丢弃与配置的 Platform 来源不同的授权,不调用远端撤销,使环境切换以未登录态启动,而不导致 Desktop 启动失败。API Key 和设备标识保留。资料与余额查询失败保留登录态;授权尝试的有效期仅适用于 token 签发前。同一授权 token 可认证已配置签发来源上的 Platform current 和 get_user_summary 查询。Host 原样保留 Platform 脱敏后的联系方式并丢弃响应 token;账号变化使未完成结果失效。UI 分行显示 normal_wallets 充值余额与正额 bonus_wallets 赠金余额,避免将赠金额度显示为充值资金。 +API Key 与账号记录独立保存。账号 token 没有主动刷新流程;退登重试耗尽后,已从本地删除的 token 在远端仍可能有效。提供者初始化时在本地丢弃与配置的 Platform 来源不同的授权,不调用远端撤销,使环境切换以未登录态启动,而不导致 Desktop 启动失败。API Key 和设备标识保留。资料与余额接口的 HTTP 401 响应清除被拒绝的凭据,其他查询错误保留登录态;授权尝试的有效期仅适用于 token 签发前。同一授权 token 可认证已配置签发来源上的 Platform current 和 get_user_summary 查询。Host 原样保留 Platform 脱敏后的联系方式并丢弃响应 token;账号变化使未完成结果失效。UI 分行显示 normal_wallets 充值余额与正额 bonus_wallets 赠金余额,避免将赠金额度显示为充值资金。 账号插件通过 settings.models.sign-in 提供选择、等待、失败和超时对话框。模型包保留凭证就绪检查和现有 API Key 编辑器;设置外壳协调显式重开,避免登录与 API Key 引导同时挂载冲突的对话框。 diff --git a/.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.i18n.yaml index c3570fad78..a0da60252b 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-independent-libreoffice-kit.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-14-independent-libreoffice-kit.md -2026-09-14-independent-libreoffice-kit.md: 13efc41e56a4810273fbb6d9314eeda6053dbe92 -2026-09-14-independent-libreoffice-kit.zh.md: 720ca2ba3f57546825ae14b5b5f0b086fbb7f287 +/agent-note-independent-libreoffice-kit-ownership: + en: ee1625b5a309d9e6 + zh: c3e78e1b1aa92fd8 +/agent-note-independent-libreoffice-kit-ownership/problem: + en: 2fc4ac7bdd4a3474 + zh: 21ebdd3ac9264132 +/agent-note-independent-libreoffice-kit-ownership/decision: + en: 31200a9be3940dc0 + zh: 8e22be1d160ec3e4 +/agent-note-independent-libreoffice-kit-ownership/alternatives-considered: + en: 55175bb30630bf0c + zh: 788853ddd5f7a4e9 +/agent-note-independent-libreoffice-kit-ownership/consequences: + en: ace5eeafb4795ab6 + zh: 136489e75455c8e7 diff --git a/.agents/notes/implemented/architecture/2026-09-14-session-log-upload-default.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-14-session-log-upload-default.i18n.yaml index 420bcd267c..60583babce 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-session-log-upload-default.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-14-session-log-upload-default.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-session-log-upload-default.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-14-session-log-upload-default.md -2026-09-14-session-log-upload-default.md: c1e7c9e050d1b1809ff3abba03fe4e17a3779daa -2026-09-14-session-log-upload-default.zh.md: d7b6e64098eca3fe07c43272fcba18a3790182e2 +/agent-note-default-deepseek-session-log-upload: + en: fcb31f3679ced0e2 + zh: 0e07b8a08f7e004f +/agent-note-default-deepseek-session-log-upload/problem: + en: f9721b730c7e70c7 + zh: 367e7839912cb726 +/agent-note-default-deepseek-session-log-upload/decision: + en: ec3b05fb70ae490f + zh: 59b0691e327855b4 +/agent-note-default-deepseek-session-log-upload/alternatives-considered: + en: 4cc4b61d76f84ff3 + zh: bdd29ea66037f744 +/agent-note-default-deepseek-session-log-upload/consequences: + en: 1302d84a3d2b168b + zh: aec67b793539f898 diff --git a/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml index 515ead78da..621d099284 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-sidebar-layout-provider-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.md -2026-09-14-sidebar-layout-provider-recovery.md: f7ec0324f9205a556750e0af54eb856002a4ea74 -2026-09-14-sidebar-layout-provider-recovery.zh.md: 02440391e5601e3ba125c33c4c8971d4d46cbaa8 +/agent-note-sidebar-layout-persistence-and-provider-recovery: + en: 78dee80210908b7d + zh: 01a490734740a523 +/agent-note-sidebar-layout-persistence-and-provider-recovery/problem: + en: 8adb7105e89be803 + zh: 96c4e92e85b6980e +/agent-note-sidebar-layout-persistence-and-provider-recovery/decision: + en: aa09cb90f663dfe8 + zh: edaabb76aa6dc8de +/agent-note-sidebar-layout-persistence-and-provider-recovery/alternatives-considered: + en: 4a9b1234b0289ae7 + zh: 81854e0e9d32b6da +/agent-note-sidebar-layout-persistence-and-provider-recovery/consequences: + en: 4daf813b59205ca3 + zh: 917c2b975c9a67dd diff --git a/.agents/notes/implemented/architecture/2026-09-14-web-document-relative-app-routes.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-14-web-document-relative-app-routes.i18n.yaml index 8f06bf7290..7d6b05d9fa 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-web-document-relative-app-routes.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-14-web-document-relative-app-routes.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-web-document-relative-app-routes.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-14-web-document-relative-app-routes.md -2026-09-14-web-document-relative-app-routes.md: fbf30253bbfcc23eb09847f93c1b1f047459d31b -2026-09-14-web-document-relative-app-routes.zh.md: c302ec88a4205239148132513d1ff2a4385033e8 +/agent-note-web-app-owned-routes-are-document-relative: + en: c31a8b2eeced1d7a + zh: 718b29b0f1e3f995 +/agent-note-web-app-owned-routes-are-document-relative/problem: + en: ce92162dd5ef0b2a + zh: a487cfd441b9fe1a +/agent-note-web-app-owned-routes-are-document-relative/decision: + en: 5d61f3f037df8f7e + zh: fbea19a5868d45b9 +/agent-note-web-app-owned-routes-are-document-relative/alternatives-considered: + en: 14cd7d83f28ef818 + zh: 5a429ab09dae43e5 +/agent-note-web-app-owned-routes-are-document-relative/consequences: + en: e3601f867e8c1825 + zh: 5c7ba5acb63a98a3 +/agent-note-web-app-owned-routes-are-document-relative/testing: + en: 3845fc2e126b858c + zh: 5a63b358be90e565 diff --git a/.agents/notes/implemented/architecture/2026-09-15-bounded-office-conversion.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-15-bounded-office-conversion.i18n.yaml index 2f64b37f55..a6d52473fa 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-bounded-office-conversion.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-15-bounded-office-conversion.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-bounded-office-conversion.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-15-bounded-office-conversion.md -2026-09-15-bounded-office-conversion.md: b15aa5421c575451ddb4a7bf91169bcb2fa38d3c -2026-09-15-bounded-office-conversion.zh.md: f23c38096764cf32207125cc0c3ebbdf1c04d009 +/agent-note-bounded-shared-office-conversion: + en: 10c171aa2a5ab0c2 + zh: 13e8e134e3a68e98 +/agent-note-bounded-shared-office-conversion/problem: + en: b305613daff5a763 + zh: 1aba13289664f65c +/agent-note-bounded-shared-office-conversion/decision: + en: bcd0780f95f173bf + zh: 2a7f49db2575c59d +/agent-note-bounded-shared-office-conversion/alternatives-considered: + en: 9d5cfb7fa5f66bd6 + zh: 4f4133daa2f02f43 +/agent-note-bounded-shared-office-conversion/consequences: + en: c2800ff56c8f89d1 + zh: 3b3710072b59c443 +/agent-note-bounded-shared-office-conversion/related: + en: 2e7b1a0f01c1f617 + zh: ed2abc0181ea4abe diff --git a/.agents/notes/implemented/architecture/2026-09-15-client-session-references.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-15-client-session-references.i18n.yaml index 0a33e19e2c..f664219cd9 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-client-session-references.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-15-client-session-references.i18n.yaml @@ -1,6 +1,49 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-client-session-references.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-15-client-session-references.md -2026-09-15-client-session-references.md: 162ef08875e5b0591b3b4099c9bdcadb18e7d175 -2026-09-15-client-session-references.zh.md: 3af8932f7c002b3b63de21c689ae91e3017a164e +/agent-note-client-session-references-reference-sources-and-ui-status: + en: 720fca3e1f085f8f + zh: 3480eb43eb5f0e44 +/agent-note-client-session-references-reference-sources-and-ui-status/problem: + en: 0f4d2b6e8b0393dc + zh: fe20aca8b4fd0701 +/agent-note-client-session-references-reference-sources-and-ui-status/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-client-session-references-reference-sources-and-ui-status/decision/scope-and-ownership: + en: d9d52caab1468205 + zh: 1b7665610bb025c6 +/agent-note-client-session-references-reference-sources-and-ui-status/decision/addresses-bindings-and-references: + en: 3743abc8bca00348 + zh: d79e6a9311f0a2fe +/agent-note-client-session-references-reference-sources-and-ui-status/decision/acquisition-failure-and-release: + en: 84e9528d4f995460 + zh: f79f197d3dfbe8e9 +/agent-note-client-session-references-reference-sources-and-ui-status/decision/reference-sources-and-session-list-records: + en: e2de83d10542f93b + zh: 3855b38fc8c48ea3 +/agent-note-client-session-references-reference-sources-and-ui-status/decision/unified-ui-session-status: + en: 2d75aef5cf5f1fc8 + zh: 87a7051f24f9871a +/agent-note-client-session-references-reference-sources-and-ui-status/decision/explicit-providers-and-consumer-lifetimes: + en: 04802baa0147fec1 + zh: b86037bf2e4bc936 +/agent-note-client-session-references-reference-sources-and-ui-status/decision/main-area-navigation-and-presentation: + en: c46c9ca54ea9eaad + zh: 918dc8eebff5edf3 +/agent-note-client-session-references-reference-sources-and-ui-status/decision/presets-and-creation-flows: + en: 790eda215b64ee37 + zh: a4b5d3a61cc80cbc +/agent-note-client-session-references-reference-sources-and-ui-status/decision/host-event-context-ownership-and-typert: + en: eb3be89cf9431c44 + zh: bfc26899286b37ad +/agent-note-client-session-references-reference-sources-and-ui-status/alternatives-considered: + en: 658731de6bc235f3 + zh: be16e5067f450b6e +/agent-note-client-session-references-reference-sources-and-ui-status/verification: + en: b7a7bb90877fedc3 + zh: 8b39d7a9624d6b43 +/agent-note-client-session-references-reference-sources-and-ui-status/consequences: + en: aa1b46303452c3e8 + zh: 01571143251dfc61 diff --git a/.agents/notes/implemented/architecture/2026-09-15-desktop-native-fatal-recovery.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-15-desktop-native-fatal-recovery.i18n.yaml index a57f31af0a..b5ebc209af 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-desktop-native-fatal-recovery.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-15-desktop-native-fatal-recovery.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-desktop-native-fatal-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-15-desktop-native-fatal-recovery.md -2026-09-15-desktop-native-fatal-recovery.md: fc1564b02e2f7b707d2b6f6d8e0947b1a78f142d -2026-09-15-desktop-native-fatal-recovery.zh.md: ceda54b4141c5fe58e6b385c86e6c1e4958dd261 +/agent-note-native-desktop-fatal-recovery: + en: 753dfd819203ac69 + zh: 5ea088778b13d940 +/agent-note-native-desktop-fatal-recovery/problem: + en: 9cf7ba7dfd36aee0 + zh: 356fdbb01870981e +/agent-note-native-desktop-fatal-recovery/decision: + en: a3b9aa3659117524 + zh: 6f25cb295c37cddd +/agent-note-native-desktop-fatal-recovery/alternatives-considered: + en: 624d62bc0b73c37a + zh: 81c3d7cd66782f73 +/agent-note-native-desktop-fatal-recovery/consequences: + en: 309a935614b0b6a1 + zh: 58db41cd59568a6d diff --git a/.agents/notes/implemented/architecture/2026-09-15-first-class-tool-role-messages.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-15-first-class-tool-role-messages.i18n.yaml index d44576c5b1..7ebb9aaaf1 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-first-class-tool-role-messages.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-15-first-class-tool-role-messages.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-first-class-tool-role-messages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-15-first-class-tool-role-messages.md -2026-09-15-first-class-tool-role-messages.md: 3749ad698890073634b1753d3370f9c9dc9a2e18 -2026-09-15-first-class-tool-role-messages.zh.md: c97d84a7b3ceaee17ebb6fe828bd739dba5fb0ea +/agent-note-first-class-tool-role-messages: + en: 7241f8eb82eda881 + zh: fecbc696803c619b +/agent-note-first-class-tool-role-messages/problem: + en: d1bff2dd3b7c5070 + zh: 866aecc4211992fd +/agent-note-first-class-tool-role-messages/decision: + en: fd6733aee2f00a16 + zh: 9dd9c2e7525ba9be +/agent-note-first-class-tool-role-messages/alternatives-considered: + en: 5f727366e0885a7a + zh: b1ac16578076c286 +/agent-note-first-class-tool-role-messages/consequences: + en: 6fb4a2047b748ba7 + zh: 5382786860f2e624 diff --git a/.agents/notes/implemented/architecture/2026-09-15-guided-plugin-installation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-15-guided-plugin-installation.i18n.yaml index e1a4357fcd..9283aaa9e4 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-guided-plugin-installation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-15-guided-plugin-installation.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-guided-plugin-installation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-15-guided-plugin-installation.md -2026-09-15-guided-plugin-installation.md: 68bd519b7cb4342c42761dfaef53940c83ceb2d8 -2026-09-15-guided-plugin-installation.zh.md: f3cbefedeb151d37078b55140635b69516fafed2 +/agent-note-guided-plugin-installation: + en: 6b8375e59efb720e + zh: d94f130f72639233 +/agent-note-guided-plugin-installation/problem: + en: edefff7cd986a509 + zh: a270839fa86976a2 +/agent-note-guided-plugin-installation/decision: + en: b661fb786e7182c5 + zh: 4cdeb584639fda23 +/agent-note-guided-plugin-installation/alternatives-considered: + en: be64b541f4d81e7c + zh: 8600531c08ab4288 +/agent-note-guided-plugin-installation/consequences: + en: e4536b20f3587497 + zh: a8eeb1d3c578b785 +/agent-note-guided-plugin-installation/testing: + en: 1e121dca5f7dc572 + zh: bcdb1b6482cc1af6 diff --git a/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml index 3201431720..7e6309f2da 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-narrow-pi-ai-runtime-imports.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md -2026-09-15-narrow-pi-ai-runtime-imports.md: 307d880f3fce22b0e1b96efb9c3a220a511eff15 -2026-09-15-narrow-pi-ai-runtime-imports.zh.md: 139983446a2f0cd5315629c4e0a632f8c125a837 +/agent-note-narrow-pi-ai-runtime-imports: + en: d29340bbc4bf0e5b + zh: 12a39c4efe53b580 +/agent-note-narrow-pi-ai-runtime-imports/problem: + en: 4b2048b356064ada + zh: 9926d7c54da73852 +/agent-note-narrow-pi-ai-runtime-imports/decision: + en: d425c01ec05ee7f2 + zh: 8d58d6db913720c4 +/agent-note-narrow-pi-ai-runtime-imports/alternatives-considered: + en: c663ce67f3831d3f + zh: de280dc149d5a6a0 +/agent-note-narrow-pi-ai-runtime-imports/consequences: + en: 9707284a83c1294a + zh: c53be621aac00fc9 diff --git a/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.i18n.yaml index 7ba1bf8a3e..c20b10b6fe 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-platform-office-engines.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-15-platform-office-engines.md -2026-09-15-platform-office-engines.md: 4272054672c6163f22b910ab64b6472a9dbdfb4c -2026-09-15-platform-office-engines.zh.md: d0a317333049734415ab9c0c05a5624b63b27447 +/agent-note-one-office-engine-per-platform: + en: 5ba8eea6deb11824 + zh: 7d1cb289fa278c74 +/agent-note-one-office-engine-per-platform/problem: + en: 803030fa18966fef + zh: bb1bbd185860f533 +/agent-note-one-office-engine-per-platform/decision: + en: 8cea2cb889666af7 + zh: 346adb1e99787c78 +/agent-note-one-office-engine-per-platform/alternatives-considered: + en: d406d0a9f4dd503a + zh: b2685e11d706799e +/agent-note-one-office-engine-per-platform/consequences: + en: 7e236c479975eee6 + zh: 94a8e0e8883bd324 diff --git a/.agents/notes/implemented/architecture/2026-09-16-creator-persistent-plugin-management.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-16-creator-persistent-plugin-management.i18n.yaml index 2e5d7be1ec..0c59a93381 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-creator-persistent-plugin-management.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-16-creator-persistent-plugin-management.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-creator-persistent-plugin-management.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-16-creator-persistent-plugin-management.md -2026-09-16-creator-persistent-plugin-management.md: 04ccbb83fe6d2f5c460f53100a9087cce119ea4d -2026-09-16-creator-persistent-plugin-management.zh.md: 91afa00cd3f0adb8b21a52ee958bac61bc0912fc +/agent-note-creator-mode-installs-persistent-plugin-bundles: + en: c73c641d920a1431 + zh: c8ee5e861cc8bad3 +/agent-note-creator-mode-installs-persistent-plugin-bundles/problem: + en: 44615a7a0939054e + zh: b8efa721321ba0d7 +/agent-note-creator-mode-installs-persistent-plugin-bundles/decision: + en: 3530a89a72e35bdd + zh: 3601941563747b5d +/agent-note-creator-mode-installs-persistent-plugin-bundles/alternatives-considered: + en: af527d8aabdfd59c + zh: 34388da992d2ab56 +/agent-note-creator-mode-installs-persistent-plugin-bundles/consequences: + en: f27b9e492a6035e0 + zh: 3d7832ad169b7daa diff --git a/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml index ecb789a14d..8a90598c63 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-desktop-cos-upload-transport.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.md -2026-09-16-desktop-cos-upload-transport.md: 84504b32fd02d1fbaf8276b4f1baf7d85f7dcbd5 -2026-09-16-desktop-cos-upload-transport.zh.md: 2a2080f95b39ab433b4ccb3bec60e5ba61f52dc9 +/agent-note-upload-desktop-releases-through-the-tencent-cos-sdk: + en: acead237faaa9390 + zh: ca5d23451f3b4577 +/agent-note-upload-desktop-releases-through-the-tencent-cos-sdk/problem: + en: 74f8515cdbb2a0aa + zh: a00d1b08db6d6158 +/agent-note-upload-desktop-releases-through-the-tencent-cos-sdk/decision: + en: 54cef8eacccce2e8 + zh: 8bad9ce5c932e0dd +/agent-note-upload-desktop-releases-through-the-tencent-cos-sdk/testing: + en: c15a405f365ca499 + zh: ee59d1b593473ee7 +/agent-note-upload-desktop-releases-through-the-tencent-cos-sdk/alternatives-considered: + en: faae1f132d6cd404 + zh: 1683143fbe6b07ce +/agent-note-upload-desktop-releases-through-the-tencent-cos-sdk/consequences: + en: 2453f558b12db1ec + zh: 15d77bfb842f9b31 diff --git a/.agents/notes/implemented/architecture/2026-09-16-experimental-voice-input.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-16-experimental-voice-input.i18n.yaml index 65566f68ce..9845fb1909 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-experimental-voice-input.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-16-experimental-voice-input.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-experimental-voice-input.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-16-experimental-voice-input.md -2026-09-16-experimental-voice-input.md: 30c81ab233f27242dcf1fe2ef89bbb86542f9c04 -2026-09-16-experimental-voice-input.zh.md: 76aa8d6fc4bea32f194b20d05db4bf49af0be313 +/agent-note-experimental-voice-input-with-explicit-recognition-providers: + en: 8d4bb68acfedbb76 + zh: e2fd06ac5d0d1f21 +/agent-note-experimental-voice-input-with-explicit-recognition-providers/problem: + en: 098f766687e70ec0 + zh: 5f75407de5357c36 +/agent-note-experimental-voice-input-with-explicit-recognition-providers/decision: + en: ac3b8f0534c8bc4b + zh: 8480dbb4bdf9e695 +/agent-note-experimental-voice-input-with-explicit-recognition-providers/alternatives-considered: + en: 660a547861d966ad + zh: d597eac0b15d81b4 +/agent-note-experimental-voice-input-with-explicit-recognition-providers/consequences: + en: 75189a3d36b12ccd + zh: 2d88b1c723a2f02e diff --git a/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml index 8a8f6629f8..a857ff2101 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-plugin-configuration-on-the-plugins-page.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md -2026-09-16-plugin-configuration-on-the-plugins-page.md: 700ada15385d0ff95e2f7f1cc58545a28677a507 -2026-09-16-plugin-configuration-on-the-plugins-page.zh.md: 23935312d2b09a524a1571f81c18ad8b5ffafc3f +/agent-note-plugin-configuration-on-the-plugins-page: + en: e3cb8f2cfd31ee99 + zh: 75c7c498bb5b29e4 +/agent-note-plugin-configuration-on-the-plugins-page/problem: + en: 9ca845902f1df3a2 + zh: 41e3157a843a511e +/agent-note-plugin-configuration-on-the-plugins-page/decision: + en: edce6321f96653c1 + zh: b9af8efeff5a05ed +/agent-note-plugin-configuration-on-the-plugins-page/consequences: + en: d3d131d6c46bc32e + zh: eb7c06f119dfbe8d +/agent-note-plugin-configuration-on-the-plugins-page/alternatives-considered: + en: 14c6db09f23c2005 + zh: 979730121cd837c3 +/agent-note-plugin-configuration-on-the-plugins-page/testing: + en: b58fdf0d5922f52b + zh: 0b999255d2b9b832 diff --git a/.agents/notes/implemented/architecture/2026-09-16-size-neutral-product-icon-weights.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-16-size-neutral-product-icon-weights.i18n.yaml index 758bca04da..de00746f9a 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-size-neutral-product-icon-weights.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-16-size-neutral-product-icon-weights.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-size-neutral-product-icon-weights.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-16-size-neutral-product-icon-weights.md -2026-09-16-size-neutral-product-icon-weights.md: 3850fcbddfef6d096f648d5b3efa73790f40f8c1 -2026-09-16-size-neutral-product-icon-weights.zh.md: 84031677e9b13b8dbf3b8e5d959359824e0c94fc +/agent-note-size-neutral-product-icon-weights: + en: f0d742af33e3297e + zh: 5db6cdc26635d843 +/agent-note-size-neutral-product-icon-weights/problem: + en: aae2bf56f8695ee8 + zh: 491fa683d7cc580f +/agent-note-size-neutral-product-icon-weights/decision: + en: c0680b384d4198c8 + zh: a34f4481b7784b4f +/agent-note-size-neutral-product-icon-weights/alternatives-considered: + en: bda83cdc7a7c59a9 + zh: d3592cdf068556ea +/agent-note-size-neutral-product-icon-weights/consequences: + en: bceee31f65a32e69 + zh: d8fad0a01f1a7e7a diff --git a/.agents/notes/implemented/architecture/2026-09-16-user-terminal-permissions.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-16-user-terminal-permissions.i18n.yaml index e8df386371..f065cf26a3 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-user-terminal-permissions.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-16-user-terminal-permissions.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-user-terminal-permissions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-16-user-terminal-permissions.md -2026-09-16-user-terminal-permissions.md: f45b96419c34f8ebddc30431b42c9859c46de6b9 -2026-09-16-user-terminal-permissions.zh.md: 62bb152a1b899d026c8d7bddb350317ba12f14cf +/agent-note-user-terminal-permissions: + en: 806fc2a4c3bc2294 + zh: dfdae2dc3c49b0b3 +/agent-note-user-terminal-permissions/problem: + en: 2948b4f40ebe9d3b + zh: a59676148531470f +/agent-note-user-terminal-permissions/decision: + en: 23aad535d7f8d41e + zh: 543ecefce61bee7f +/agent-note-user-terminal-permissions/alternatives-considered: + en: a4f8d5ac653db322 + zh: 9671639c5a2c746b +/agent-note-user-terminal-permissions/consequences: + en: b1c2a8059cd44cc2 + zh: 83aba1c4de722bdc diff --git a/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.i18n.yaml new file mode 100644 index 0000000000..883bb12bc0 --- /dev/null +++ b/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.i18n.yaml @@ -0,0 +1,19 @@ +# Bilingual-pair consistency record for 2026-09-17-account-provider-signout.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-account-provider-signout.md +/agent-note-account-provider-and-active-request-cancellation: + en: 3b8b363041dd596b + zh: 7c9b2eb195435b1f +/agent-note-account-provider-and-active-request-cancellation/problem: + en: 8d4d00e33af763b2 + zh: 61977c82d66ae9bf +/agent-note-account-provider-and-active-request-cancellation/decision: + en: d5eb12a1644c6226 + zh: 513d4f22ab74e039 +/agent-note-account-provider-and-active-request-cancellation/alternatives-considered: + en: a072026c1495a1ca + zh: bf053cc04fb33914 +/agent-note-account-provider-and-active-request-cancellation/consequences: + en: 8fd00b6d69b380c0 + zh: 3830dc3a93d5de3c diff --git a/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.md b/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.md new file mode 100644 index 0000000000..6b8ef842c5 --- /dev/null +++ b/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.md @@ -0,0 +1,27 @@ +# Agent Note: Account provider and active request cancellation + +Status: implemented + +English | [中文](2026-09-17-account-provider-signout.zh.md) + +## Problem + +Selecting credentials from login state changes the billing identity of an existing provider route. Sign-out also needs to stop account-dependent work without classifying requests from settings that may have changed while a request or tool is still running. + +## Decision + +`deepseek-official` and `deepseek-account` are independent routes sharing the DeepSeek protocol implementation. Each adapter has exactly one credential resolver and authentication header mode. Neither route falls back to the other credential. The account service retains the origin and issuer validation defined by the [login decision](2026-09-14-deepseek-account-login.md). + +Account cancellation reads each running Agent’s latest `Session.requestContext()` instead of maintaining another provider field. This logged value remains through tools and retries and follows the next bound request. Idle Agents are excluded. During a new turn’s first preparation it can still name the previous turn’s account route, so sign-out can also interrupt an API-key turn that has not bound its new request yet. A missing account credential rejects a first request without a previous context before transport. + +Successful local sign-out publishes an account event. The platform account provider installs the account module’s listener, which enumerates the Agent registry and cancels matching account routes through `Agent.cancel`, preserving inboxes. The account controller shares its predicate for sign-out confirmation. Each registered child is classified independently; existing parent-owned cancellation still applies to children whose lifetime is attached to a cancelled parent. The existing HTTP signal carries cancellation to transport. + +## Alternatives considered + +A historical set of providers wrongly cancels a turn after it switches to an API-key route. Current settings misclassify an older in-flight request. A second provider field or module-global map duplicates information already recorded in request context. A login-level cancellation signal duplicates the existing Agent and HTTP cancellation chain. + +## Consequences + +Model selection exposes both routes, and choosing an account route requires login even when an API key exists. The `llm-deepseek-account` and `llm-deepseek-api-key` plugins independently own catalogs, connection settings, and credentials; both use the `llm-deepseek` protocol library. Cancellation preserves queued input without waking it automatically. The recorded hook reason produces a localized conversation notice without changing durable event types. + +Behavior tests cover credential separation, first preparation, tool-stage cancellation, and route replacement. The SDK account-provider-signout scenario boots the shipped profile and records interrupted output plus the cancellation cause. diff --git a/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.zh.md b/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.zh.md new file mode 100644 index 0000000000..588dd38bf9 --- /dev/null +++ b/.agents/notes/implemented/architecture/2026-09-17-account-provider-signout.zh.md @@ -0,0 +1,27 @@ +# Agent Note: 账号提供方与当前请求取消 + +Status: implemented + +[English](2026-09-17-account-provider-signout.md) | 中文 + +## Problem + +根据登录态选择凭证会改变现有提供方路由的计费身份。退登也需要停止依赖账号的任务,不能根据请求或工具运行期间可能已经改变的设置判断归属。 + +## Decision + +`deepseek-official` 和 `deepseek-account` 是独立路由,共享 DeepSeek 协议实现。每个适配器仅有一个凭证解析器和认证请求头模式。两条路由均不回退到另一凭证。账号服务保留[登录决策](2026-09-14-deepseek-account-login.zh.md)定义的来源及签发方校验。 + +账号取消读取运行中 Agent 最近的 `Session.requestContext()`,不维护额外提供方字段。该已记录值在工具和重试阶段保留,随下一次绑定请求更新;空闲 Agent 不计入。新轮次首次准备期间,它仍可能指向上一轮的账号路由,因此退登也可能打断尚未绑定新请求的 API key 轮次。没有历史上下文的首请求若缺少账号凭据,会在传输前失败。 + +本地退登成功后发布账号事件。Platform 账号提供方安装账号模块的监听器,遍历 Agent 注册表,通过 `Agent.cancel` 取消匹配的账号路由并保留收件箱。账号控制器的退登确认复用同一判断函数。每个已注册子代理独立分类;生命周期绑定到已取消父代理的子代理仍受现有父级取消规则约束。现有 HTTP 信号将取消传递到传输层。 + +## Alternatives considered + +历史提供方集合会在轮次切换到 API Key 路由后仍错误取消它。当前设置会误判更早的在途请求。额外的提供方字段或模块级全局映射重复保存请求上下文中已有的信息。登录级取消信号重复现有 Agent 与 HTTP 取消链路。 + +## Consequences + +模型选择展示两条路由,即使存在 API Key,选择账号路由仍要求登录。两个路由分别由 `llm-deepseek-account` 和 `llm-deepseek-api-key` 注册,拥有独立的模型目录与连接设置,共用 `llm-deepseek` 协议实现。取消保留排队输入,不自动唤醒。已记录的 hook 原因生成本地化对话提示,无须改变持久事件类型。 + +行为测试覆盖凭证分离、首请求准备、工具阶段取消及路由替换。SDK account-provider-signout 场景启动随附 profile,记录被中断的输出和取消原因。 diff --git a/.agents/notes/implemented/architecture/2026-09-17-developer-session-changes.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-developer-session-changes.i18n.yaml index db3f3c7cb5..70fd453cb1 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-developer-session-changes.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-developer-session-changes.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-developer-session-changes.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-developer-session-changes.md -2026-09-17-developer-session-changes.md: 0545dfa4344f8ed87fe6343e13901647a5ccdac4 -2026-09-17-developer-session-changes.zh.md: 81c53115aaf4447dac358febcbd1310bb2a36cb2 +/agent-note-developer-messages-for-incremental-session-changes: + en: 1460291daf64190e + zh: 0456570fdcfbff56 +/agent-note-developer-messages-for-incremental-session-changes/problem: + en: 4b02ed98a500205c + zh: e1a075f6a8251059 +/agent-note-developer-messages-for-incremental-session-changes/decision: + en: 5fecb076fa475b6d + zh: b59c76222ec00123 +/agent-note-developer-messages-for-incremental-session-changes/alternatives-considered: + en: a9ec42fb650d6cd8 + zh: c748181c603e675f +/agent-note-developer-messages-for-incremental-session-changes/consequences: + en: 28e92dab15059d0c + zh: 31b4f1955d82c02c diff --git a/.agents/notes/implemented/architecture/2026-09-17-frame-shell-leading-window-chrome-seat.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-frame-shell-leading-window-chrome-seat.i18n.yaml index 08712a98da..16d3ced836 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-frame-shell-leading-window-chrome-seat.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-frame-shell-leading-window-chrome-seat.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-frame-shell-leading-window-chrome-seat.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-frame-shell-leading-window-chrome-seat.md -2026-09-17-frame-shell-leading-window-chrome-seat.md: cc3ef576900e38dc26c46438fd5d490ac4361be0 -2026-09-17-frame-shell-leading-window-chrome-seat.zh.md: c652f313d4f4863decc14e556a1674487d1d3fea +/agent-note-frame-owned-shell-leading-window-chrome-seat: + en: 3e2cfa57af6b53e7 + zh: 78fe101ad11a6330 +/agent-note-frame-owned-shell-leading-window-chrome-seat/problem: + en: 09b5defb78287f7e + zh: b7333ce5077914a2 +/agent-note-frame-owned-shell-leading-window-chrome-seat/decision: + en: 04853eeed03a00c5 + zh: 9542acfaa6258842 +/agent-note-frame-owned-shell-leading-window-chrome-seat/alternatives-considered: + en: 81e997e43d185834 + zh: 38eda1f9a4bac318 +/agent-note-frame-owned-shell-leading-window-chrome-seat/consequences: + en: 7d95c4c155f8e3c3 + zh: b3f88fe2fb7a77f0 +/agent-note-frame-owned-shell-leading-window-chrome-seat/testing: + en: 2fcc157c9c4f0b81 + zh: 3b0e6135b1c10db1 diff --git a/.agents/notes/implemented/architecture/2026-09-17-native-v4-read-validation.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-native-v4-read-validation.i18n.yaml index c3afeacd89..cfe428cf55 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-native-v4-read-validation.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-native-v4-read-validation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-native-v4-read-validation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-native-v4-read-validation.md -2026-09-17-native-v4-read-validation.md: b111e9f1dd4aae6557b7893a9f334445ef0c85bc -2026-09-17-native-v4-read-validation.zh.md: 20f1dc53b6eda42834e169c18f7b269e2933d27c +/agent-note-mandatory-native-v4-relationship-validation: + en: 67bc5b987df97d21 + zh: 173eb273e11a24a9 +/agent-note-mandatory-native-v4-relationship-validation/problem: + en: cfb527c1c2ca661a + zh: b61a906330cdaf97 +/agent-note-mandatory-native-v4-relationship-validation/decision: + en: 14feaf74a58d5609 + zh: 8aea80c89110e638 +/agent-note-mandatory-native-v4-relationship-validation/alternatives-considered: + en: d6296e00a6b30d48 + zh: 9f7074c69fb42e5f +/agent-note-mandatory-native-v4-relationship-validation/consequences: + en: b76aaca1c35dcc6c + zh: b933c2518c64c60c diff --git a/.agents/notes/implemented/architecture/2026-09-17-persistence-attribution-policy.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-persistence-attribution-policy.i18n.yaml index e2b272908e..2cb18a5a75 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-persistence-attribution-policy.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-persistence-attribution-policy.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-persistence-attribution-policy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-persistence-attribution-policy.md -2026-09-17-persistence-attribution-policy.md: 19bebc8bc186f4b2b7e2e561fb6a53ceadcebabf -2026-09-17-persistence-attribution-policy.zh.md: 3561c1d1afca5402cb94b1578603c4f1a2fc89a4 +/agent-note-recorded-user-source-attribution-compatibility: + en: db7dca9aee8a5f49 + zh: 1c5aace5cb896738 +/agent-note-recorded-user-source-attribution-compatibility/problem: + en: 21904d2f57e4e159 + zh: 589fe41a93ec9e5d +/agent-note-recorded-user-source-attribution-compatibility/decision: + en: 10bd45b099218280 + zh: c21ab6c74dd1afbf +/agent-note-recorded-user-source-attribution-compatibility/alternatives-considered: + en: 2e1b3bcd9e00b5be + zh: e5a1725390346470 +/agent-note-recorded-user-source-attribution-compatibility/consequences: + en: cb2b35edfe2a006f + zh: e73c28367e78c44c diff --git a/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml index 5bd9f6000c..5b7f7e9b6b 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-plugin-detail-page-extension-slots.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.md -2026-09-17-plugin-detail-page-extension-slots.md: d4bbca0c4466fbb78a8c56cfc4e327100385368f -2026-09-17-plugin-detail-page-extension-slots.zh.md: f07efc3d3cadded04a7551867680cc058d532943 +/agent-note-plugin-detail-pages-as-an-extension-point: + en: 71b432dfc4475c08 + zh: a9f9a7e272c32093 +/agent-note-plugin-detail-pages-as-an-extension-point/problem: + en: 39f7e246e6ab3beb + zh: dba3ba5206d81d8d +/agent-note-plugin-detail-pages-as-an-extension-point/decision: + en: df2cba037b6bcb4d + zh: 82d0a5dc61a1716c +/agent-note-plugin-detail-pages-as-an-extension-point/alternatives-considered: + en: cdcc8710be8ab1be + zh: d82781a3c353984f +/agent-note-plugin-detail-pages-as-an-extension-point/consequences: + en: 0567cb3fbfbdb4f8 + zh: 256811c9a7271da1 +/agent-note-plugin-detail-pages-as-an-extension-point/testing: + en: 8957db157d2f743e + zh: fb24db99bb5a55aa diff --git a/.agents/notes/implemented/architecture/2026-09-17-process-local-blank-sessions.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-process-local-blank-sessions.i18n.yaml index e89e510aea..25c6bed4ad 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-process-local-blank-sessions.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-process-local-blank-sessions.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-process-local-blank-sessions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-process-local-blank-sessions.md -2026-09-17-process-local-blank-sessions.md: 58d222185ae67c1f70874c0d0a73910eaa1e0e5b -2026-09-17-process-local-blank-sessions.zh.md: 0f3fdf050931d11a80e92d98577ac8b42628bb60 +/agent-note-writer-acquisition-for-blank-session-reuse: + en: a78ef0f5b14debe5 + zh: 8b7ef954fe622783 +/agent-note-writer-acquisition-for-blank-session-reuse/problem: + en: 837ebb0071a5611b + zh: 23d0f0713889ead6 +/agent-note-writer-acquisition-for-blank-session-reuse/decision: + en: 932bc5c0be3721de + zh: 000425c5f053e74e +/agent-note-writer-acquisition-for-blank-session-reuse/alternatives-considered: + en: 2a67a53f7f396ba8 + zh: 6df6ccc071fb0de2 +/agent-note-writer-acquisition-for-blank-session-reuse/consequences: + en: 2e1f1894337689a2 + zh: d0cab07cc48083ee +/agent-note-writer-acquisition-for-blank-session-reuse/verification: + en: 4680e845e2ab294e + zh: ea5890c5ffb09831 diff --git a/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml index 0a9151134f..40bc5939fe 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-session-row-menu-actions-slot.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.md -2026-09-17-session-row-menu-actions-slot.md: 034144b2b7c9d260f41565d3835687e52353c381 -2026-09-17-session-row-menu-actions-slot.zh.md: 6ad15d263fd41a0ad97a386506c8f581290d032f +/agent-note-session-row-actions-as-slot-lists: + en: 6c14eadc272cbe5f + zh: d0fb9907cddcae5a +/agent-note-session-row-actions-as-slot-lists/problem: + en: 1afb986570a4bb49 + zh: 22862e82275038b7 +/agent-note-session-row-actions-as-slot-lists/decision: + en: 7a353dd9c0642f56 + zh: e503a953cccfdc47 +/agent-note-session-row-actions-as-slot-lists/alternatives-considered: + en: 19fc0c951e9e49b5 + zh: 9010c3fb55b71ce0 +/agent-note-session-row-actions-as-slot-lists/consequences: + en: cfc90eb041452a48 + zh: 882748ceb29f21ea diff --git a/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml index 665be1daa4..34faaaba25 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-settings-pages-as-companion-packages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.md -2026-09-17-settings-pages-as-companion-packages.md: de2f2897938fcc158c49bed772f399b4d9328d19 -2026-09-17-settings-pages-as-companion-packages.zh.md: 27d00faa156f0f48c6dc3995930be9ca629a732d +/agent-note-settings-pages-as-companion-packages: + en: ada5eadeb6e921e4 + zh: 1cc804b1720c2c98 +/agent-note-settings-pages-as-companion-packages/problem: + en: 8c23fffd3cef6ea8 + zh: 6072e1e4197afd7c +/agent-note-settings-pages-as-companion-packages/decision: + en: d0610e0445b8fdb7 + zh: 5e8af1fce960cae5 +/agent-note-settings-pages-as-companion-packages/alternatives-considered: + en: cc29e94d925d84b4 + zh: bdaec6d6ff2d511a +/agent-note-settings-pages-as-companion-packages/consequences: + en: ef4733505d43fb1e + zh: 320475e4b5a0f5e0 +/agent-note-settings-pages-as-companion-packages/testing: + en: 92bef8e1c609359b + zh: c4f2016243441b1e diff --git a/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.i18n.yaml index f3e123135e..4aa201536b 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-shared-office-runtime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.md -2026-09-17-shared-office-runtime.md: 25b6ddccbb5b17b93bec2c0b024dfcb63e94abc3 -2026-09-17-shared-office-runtime.zh.md: 99dffe8d0233e60480689ff983b6261cbb83bb7b +/agent-note-shared-office-runtime-for-desktop-and-sdk: + en: 28af688a50a2d5c6 + zh: ee73d6dd4fab9184 +/agent-note-shared-office-runtime-for-desktop-and-sdk/problem: + en: 4d08aed08c8aff27 + zh: d618b4ac68832867 +/agent-note-shared-office-runtime-for-desktop-and-sdk/decision: + en: f92ce88d82a076ed + zh: 341e486effad4b6d +/agent-note-shared-office-runtime-for-desktop-and-sdk/alternatives-considered: + en: d85334a384a32a7d + zh: 61c370390d9fdcf9 +/agent-note-shared-office-runtime-for-desktop-and-sdk/consequences: + en: f236fec61d99ba16 + zh: 859ee94e05a95aa4 diff --git a/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml index 4531b00628..735a46bdc2 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-web-feature-routes-and-route-gate.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.md -2026-09-17-web-feature-routes-and-route-gate.md: 3939bdcd0c53e766827e8fcf05f64fb4d284c59b -2026-09-17-web-feature-routes-and-route-gate.zh.md: fb329c8fc1f93b9f979612b7163e838cc521428b +/agent-note-feature-routes-follow-the-document-base-and-a-gate-keeps-them-there: + en: ca746e8d558cfc31 + zh: 3524931b0bf9991f +/agent-note-feature-routes-follow-the-document-base-and-a-gate-keeps-them-there/problem: + en: d4a1124ae3b6f6a8 + zh: 4814da5d08947bc7 +/agent-note-feature-routes-follow-the-document-base-and-a-gate-keeps-them-there/decision: + en: 5b89e02010c2da46 + zh: d11e67d86ef27908 +/agent-note-feature-routes-follow-the-document-base-and-a-gate-keeps-them-there/alternatives-considered: + en: d90dbd0c95914085 + zh: 6256f4fd76a7cb55 +/agent-note-feature-routes-follow-the-document-base-and-a-gate-keeps-them-there/consequences: + en: 94530852d7746ddb + zh: ad2383c465053822 +/agent-note-feature-routes-follow-the-document-base-and-a-gate-keeps-them-there/testing: + en: 95c952092857cb53 + zh: 232cd731afcd3288 diff --git a/.agents/notes/implemented/architecture/2026-09-17-workspace-file-binary-transfer.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-17-workspace-file-binary-transfer.i18n.yaml index 7eef4b0fa9..5fbbb120e6 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-workspace-file-binary-transfer.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-17-workspace-file-binary-transfer.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-workspace-file-binary-transfer.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-17-workspace-file-binary-transfer.md -2026-09-17-workspace-file-binary-transfer.md: b419c8bd15f51246825ceddf2905ec055bbc70ae -2026-09-17-workspace-file-binary-transfer.zh.md: 9cf3d7074c3d536a5c8a39732231c6996d6f6ead +/agent-note-binary-workspace-file-transfer: + en: ea1888ee2f867b71 + zh: fd32b8b9f29347cb +/agent-note-binary-workspace-file-transfer/problem: + en: 7da36071204124c9 + zh: c90cdeaef381b252 +/agent-note-binary-workspace-file-transfer/decision: + en: e1e0224605793212 + zh: 4e55f4b57a4b8739 +/agent-note-binary-workspace-file-transfer/alternatives-considered: + en: c548577bd53db153 + zh: 2880f3751b7fcad3 +/agent-note-binary-workspace-file-transfer/consequences: + en: 44733fbb2102c581 + zh: a0290e25401a40de +/agent-note-binary-workspace-file-transfer/validation: + en: 6d62210510b842d8 + zh: 6c5a2436ed59c354 diff --git a/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml index ecf9b0571e..83ed8c5841 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-agent-teams-single-bundle.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.md -2026-09-18-agent-teams-single-bundle.md: b417061d24928877d8d31739e1e3bde6b8512d51 -2026-09-18-agent-teams-single-bundle.zh.md: ed20dac79f39f6648767d57556ed97b42d0e1c65 +/agent-note-enable-agent-teams-with-one-bundle: + en: c595b526791a8dfd + zh: 61f4bf6948e41bee +/agent-note-enable-agent-teams-with-one-bundle/problem: + en: 8dd802c775d24e42 + zh: 53cf2818dd93181e +/agent-note-enable-agent-teams-with-one-bundle/decision: + en: d513c3239b59b2ee + zh: 7692b7ae43befc9d +/agent-note-enable-agent-teams-with-one-bundle/alternatives-considered: + en: 32952c4e1b6f486d + zh: 6c9b91eaf0460d30 +/agent-note-enable-agent-teams-with-one-bundle/consequences: + en: be92cb1ce7c86cb6 + zh: 0da06f76df72f97e +/agent-note-enable-agent-teams-with-one-bundle/verification: + en: 8fc694c4c84401f1 + zh: 6540462f6896bef7 diff --git a/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.i18n.yaml index 257088effa..d8ea21a542 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-chat-navigation-performance.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.md -2026-09-18-chat-navigation-performance.md: d82c68098fc422abb181ed4e5e1ca41189cd0951 -2026-09-18-chat-navigation-performance.zh.md: 9c2f81a51ce53660aabf2dd1e729d02e8028b7b6 +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps: + en: c37ea37bfa045a00 + zh: 88a75b8739e99fb5 +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/problem: + en: c3ca28379b414fc5 + zh: 4a25378cef3f2259 +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/decision: + en: a15c7c13f167e5ac + zh: a15c7c13f167e5ac +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/decision/fixed-pitch-virtual-rail: + en: 79e61c0dbffe6f01 + zh: 47dd4758d115f8bb +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/decision/two-layer-transcript-navigation: + en: 022a8ad83ac099f1 + zh: b4393e39bfdd401d +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/decision/one-publication-per-historical-jump: + en: 510e80edc58ebdea + zh: cfbff46bff1e43bb +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/decision/theoretical-work-model: + en: 6786e39e812ad355 + zh: eca00072cf880a08 +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/alternatives-considered: + en: f590762936560d5c + zh: 0fc836bf1841733e +/agent-note-bound-turn-navigation-work-and-batch-historical-jumps/consequences: + en: 5f50c3d4a539f48c + zh: 5aee80a99d52233e diff --git a/.agents/notes/implemented/architecture/2026-09-18-declarative-agent-presets.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-18-declarative-agent-presets.i18n.yaml index 8c41c47eeb..41b02cd5ae 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-declarative-agent-presets.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-18-declarative-agent-presets.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-declarative-agent-presets.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-18-declarative-agent-presets.md -2026-09-18-declarative-agent-presets.md: 55ec173b33b7ddd62c88c68afc8b7546074aae0a -2026-09-18-declarative-agent-presets.zh.md: 60c81de4d981818f805b1014c2e3f05f16d1e8a9 +/agent-note-declarative-agent-presets-and-retained-revisions: + en: 0a9b9ab7a29ddce9 + zh: 10893a464cde0f97 +/agent-note-declarative-agent-presets-and-retained-revisions/problem: + en: 725f773bb350218e + zh: dd8fbc09ef48208d +/agent-note-declarative-agent-presets-and-retained-revisions/decision: + en: fa2ac428de2ba3d0 + zh: c75da98e1cf076ef +/agent-note-declarative-agent-presets-and-retained-revisions/alternatives-considered: + en: 09f40eab4659e9f6 + zh: 7a70da0d0ae6845b +/agent-note-declarative-agent-presets-and-retained-revisions/consequences: + en: 24179c31261b0942 + zh: 651c61bb5e53fd78 +/agent-note-declarative-agent-presets-and-retained-revisions/testing: + en: d1a38a45212d4ebd + zh: 6ca7a86078515284 diff --git a/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.i18n.yaml index 89a7fa2cc4..828454ccca 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-localized-package-metadata.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.md -2026-09-18-localized-package-metadata.md: a7e41cccbbce63547e8e5f175ec2350bcf515bc2 -2026-09-18-localized-package-metadata.zh.md: d70aed2a57db4c474245806d4bd3db0129f4beb4 +/agent-note-plugin-owned-localized-display-metadata: + en: b78ee8e580f068ea + zh: 17dd59c9b6273897 +/agent-note-plugin-owned-localized-display-metadata/problem: + en: 4022a58baf82e77d + zh: 8439268ed4df9b69 +/agent-note-plugin-owned-localized-display-metadata/decision: + en: f6c3e24681977f48 + zh: 84ae52ec62f4af96 +/agent-note-plugin-owned-localized-display-metadata/existing-decisions: + en: a84f44d6a3179d47 + zh: 8fb62f08bec5f75d +/agent-note-plugin-owned-localized-display-metadata/alternatives-considered: + en: abbdb1b8ab360380 + zh: edfe6c06b1d67fd7 +/agent-note-plugin-owned-localized-display-metadata/verification: + en: 8541a2431321ef61 + zh: 77599e0855d93da9 +/agent-note-plugin-owned-localized-display-metadata/consequences: + en: 2a4547c9657038df + zh: 1a4bebd06d2b9e38 diff --git a/.agents/notes/implemented/architecture/2026-09-18-plugin-install-registries.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-18-plugin-install-registries.i18n.yaml index 7ca268a8fc..ac4c62e4a0 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-plugin-install-registries.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-18-plugin-install-registries.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-plugin-install-registries.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-18-plugin-install-registries.md -2026-09-18-plugin-install-registries.md: bee870a87b1f5427af8f05a32396bd52bd1524b7 -2026-09-18-plugin-install-registries.zh.md: 65fe35c78910d1cdf1ce45aea7d9fa7ae8617006 +/agent-note-plugin-install-registries: + en: 88c789616a978d0c + zh: 27c9b37d12be8a6a +/agent-note-plugin-install-registries/problem: + en: 0b7713b33c9b665b + zh: eab1dac3e14c8587 +/agent-note-plugin-install-registries/decision: + en: 23bb185c5795943d + zh: 7939b6a738290adf +/agent-note-plugin-install-registries/alternatives-considered: + en: 247f164eaf0196fa + zh: 7863dcfed12161c0 +/agent-note-plugin-install-registries/consequences: + en: 9a4c2233b869350a + zh: 86562a4c8573d1c1 +/agent-note-plugin-install-registries/testing: + en: 6c7a39b22be31df7 + zh: 6eee9b14ed9be704 diff --git a/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml index d8c7d77519..4325837109 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-profile-plugin-host-runtime-instances.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.md -2026-09-18-profile-plugin-host-runtime-instances.md: 76135318b3a935e4588c360df3210618a6c69216 -2026-09-18-profile-plugin-host-runtime-instances.zh.md: b2229574876b0ad326348ababd6b6fca6f3a1ac2 +/agent-note-profile-plugins-share-the-installation-s-host-runtime-instances: + en: 04d5248dde932469 + zh: 877d263ca4b0beef +/agent-note-profile-plugins-share-the-installation-s-host-runtime-instances/problem: + en: f9c4830ba4be20bc + zh: be46323e2eae9247 +/agent-note-profile-plugins-share-the-installation-s-host-runtime-instances/decision: + en: bcd92c487ebfab32 + zh: c50478b864562f0d +/agent-note-profile-plugins-share-the-installation-s-host-runtime-instances/alternatives-considered: + en: 1443d5fc869ffcf9 + zh: 76b21473d2892e7f +/agent-note-profile-plugins-share-the-installation-s-host-runtime-instances/consequences: + en: 075067e84219ae67 + zh: 035c60f3e11783d5 diff --git a/.agents/notes/implemented/architecture/2026-09-18-volatile-config-references.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-18-volatile-config-references.i18n.yaml index ef7c78129d..729ecfe793 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-volatile-config-references.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-18-volatile-config-references.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-volatile-config-references.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-18-volatile-config-references.md -2026-09-18-volatile-config-references.md: afaa6affdc3d18da182ec069126033cb55393b72 -2026-09-18-volatile-config-references.zh.md: 3d8800cb92dec4da80b698cb8b3c073331ed266f +/agent-note-volatile-configuration-references: + en: 6a5845c609acc131 + zh: f63fc95d58f06272 +/agent-note-volatile-configuration-references/problem: + en: da97e9a3eabc9a36 + zh: bca53a3021689d06 +/agent-note-volatile-configuration-references/decision: + en: 5798a8dd943987b1 + zh: 090d2b49958c3158 +/agent-note-volatile-configuration-references/alternatives-considered: + en: cf68e95cde8ff288 + zh: 817667d5c8c93056 +/agent-note-volatile-configuration-references/consequences: + en: 7941168bdfa2dc96 + zh: 29385474a4902a8a diff --git a/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml index a66f2afe77..93be98ebc5 100644 --- a/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-lossless-projection-checkpoint-json.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.md -2026-09-19-lossless-projection-checkpoint-json.md: 9c7d15dbd2d570eaa544f168d2c2ef882558d5ca -2026-09-19-lossless-projection-checkpoint-json.zh.md: 8c2b720358351af33a6d07888002c65d0cc30363 +/agent-note-lossless-projection-checkpoint-json: + en: 2b7b5f9e5da030df + zh: 76d65ddc85776939 +/agent-note-lossless-projection-checkpoint-json/problem: + en: 26e613246f31ee5a + zh: e0aa1e2f63bce802 +/agent-note-lossless-projection-checkpoint-json/decision: + en: 01161e9c42142971 + zh: e05e52d2af7fc4c5 +/agent-note-lossless-projection-checkpoint-json/alternatives-considered: + en: 1d64345d3d72ed5f + zh: 4c9d3410cfd815b3 +/agent-note-lossless-projection-checkpoint-json/consequences: + en: 94b619dc13cfff0b + zh: c432227d3333175f diff --git a/.agents/notes/implemented/architecture/2026-09-19-profile-owned-live-configuration.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-19-profile-owned-live-configuration.i18n.yaml index 8c966f2cfd..599afcc6f0 100644 --- a/.agents/notes/implemented/architecture/2026-09-19-profile-owned-live-configuration.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-19-profile-owned-live-configuration.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-profile-owned-live-configuration.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-19-profile-owned-live-configuration.md -2026-09-19-profile-owned-live-configuration.md: 7acf10986987960a9748308c9fe19060a97cfcc0 -2026-09-19-profile-owned-live-configuration.zh.md: c9b88462a5e0a8601d9dcd83f7d82b49e7ce5b5c +/agent-note-keep-live-configuration-in-the-owning-profile: + en: 4331f70f04ab7bac + zh: 68dece695f6f43a8 +/agent-note-keep-live-configuration-in-the-owning-profile/problem: + en: 2abacff687661d28 + zh: 2d7ba3ae27dba888 +/agent-note-keep-live-configuration-in-the-owning-profile/decision: + en: 66c3884425cfb90a + zh: 0fe6a1f1a576470b +/agent-note-keep-live-configuration-in-the-owning-profile/alternatives-considered: + en: 4089464ad1fb60bd + zh: 3168e9e4a205145d +/agent-note-keep-live-configuration-in-the-owning-profile/consequences: + en: 6033aaa12b2a521b + zh: 43934413c97670de diff --git a/.agents/notes/implemented/architecture/2026-09-19-profile-resolution-lookup-order.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-19-profile-resolution-lookup-order.i18n.yaml index da2d68745b..8892007905 100644 --- a/.agents/notes/implemented/architecture/2026-09-19-profile-resolution-lookup-order.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-19-profile-resolution-lookup-order.i18n.yaml @@ -1,6 +1,64 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-profile-resolution-lookup-order.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-19-profile-resolution-lookup-order.md -2026-09-19-profile-resolution-lookup-order.md: 6dfb5511afe885875a778b8a4f1b7c5fc3c0d842 -2026-09-19-profile-resolution-lookup-order.zh.md: 2474a9b040cb4917e71b7002d36c1e61fe3bc106 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer: + en: 7754ffbd03cff339 + zh: cbf34c74b346654a +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/problem: + en: 51374538814c0796 + zh: ebd74420bec9687a +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision: + en: d69f81d4fc545e29 + zh: 9fc532af8015cb28 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-1-resolution-rules: + en: de6ea16534218e69 + zh: fd8e1d470a2cf056 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-1-resolution-rules/1-the-ancestor-chain-node-s-ancestor-node-modules-lookup: + en: 197a263bc0152b74 + zh: ab05b5033f0a74e0 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-1-resolution-rules/2-the-interception-layer-the-runtime-resolution-occupies-dsh-home-profiles-node-modules-package: + en: 7acd592cb967f08f + zh: 5b20fd69c832287b +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-1-resolution-rules/3-linked-directories-peer-interception-at-each-ancestor-position: + en: 8b0ded021ddb87b4 + zh: 2f4d5c33dadf50e7 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-1-resolution-rules/4-what-the-interception-layer-holds-the-runtime-resolution-s-scan-contents: + en: 5fffd66f08d4b977 + zh: 020ef8953b20cc8a +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-1-resolution-rules/5-hook-coverage: + en: 644f6f9a6ff8d6c8 + zh: 7a81f928551e9041 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-1-resolution-rules/6-package-directories-and-module-files: + en: c85f82cb1c60360e + zh: c535f1c0ec58345e +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-2-walkthroughs: + en: 906e0d58e3c2aff3 + zh: ccc3a709034865b9 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-2-walkthroughs/table-1-ancestor-chain-and-interception-for-esm-and-commonjs-across-request-forms: + en: c88d52e8715281f6 + zh: f69aaf44655bc935 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-2-walkthroughs/table-2-interception-position-for-the-web-and-desktop-profiles: + en: e9dce1779952a066 + zh: d51cf26a192f3f91 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-2-walkthroughs/table-3-ancestor-chain-when-a-plugin-is-linked-outside-the-tree: + en: 6fc9735fac937ec2 + zh: e9502a116339c7c3 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-3-developer-integration-guide: + en: 35f27b53d995d59f + zh: 58a47c7bfced79a0 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-3-developer-integration-guide/1-normal-installation: + en: d0bed60317e6e3a8 + zh: 5714160678adc049 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/decision/part-3-developer-integration-guide/2-development-mode-the-plugin-repository-is-outside-the-profile-tree: + en: d7ec5a747ebcb93e + zh: 7e1d0724973b32c1 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/alternatives-considered: + en: 5466618bb5e3d4d9 + zh: 7d0b6d727e33d0d1 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/verification: + en: 328fbaca95eac5ff + zh: b41fbe45097d3ea9 +/agent-note-resolve-profile-modules-along-the-ancestor-chain-with-an-interception-layer/consequences: + en: 4a748267ef8d0480 + zh: 0ecc79b3c82bf9bb diff --git a/.agents/notes/implemented/architecture/2026-09-19-projection-cache-listing-identity-and-cached-rows.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-19-projection-cache-listing-identity-and-cached-rows.i18n.yaml index ea121beb8c..fa28db5307 100644 --- a/.agents/notes/implemented/architecture/2026-09-19-projection-cache-listing-identity-and-cached-rows.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-19-projection-cache-listing-identity-and-cached-rows.i18n.yaml @@ -1,6 +1,49 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-projection-cache-listing-identity-and-cached-rows.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-19-projection-cache-listing-identity-and-cached-rows.md -2026-09-19-projection-cache-listing-identity-and-cached-rows.md: 61b82e5003ba4b634230941f5d3df65e65491e25 -2026-09-19-projection-cache-listing-identity-and-cached-rows.zh.md: ef49d90bc68ca501f7496adbac1d1aa8a5d706a7 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows: + en: 04813e762d48995c + zh: b0ed6656adc7c5f0 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/problem: + en: 2e7f99c81fbc941f + zh: b0fac7cd5eb86ffe +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/problem/mechanism: + en: faa32b20dc128571 + zh: d01263a543be675d +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/problem/the-cache-s-two-uses-and-where-validation-lives: + en: 7bec01a054dffbad + zh: e158b106a079a770 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/problem/the-client-store-cannot-guarantee-that-connected-data-replaces-hints: + en: 597b346459a9d8b0 + zh: f7282a40061d645c +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/decision: + en: a15c7c13f167e5ac + zh: a15c7c13f167e5ac +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/decision/two-read-faces-the-cut-is-compared-only-on-the-fold-face: + en: 30bb0f92e2ba046b + zh: 25ae7e78a5887643 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/decision/why-the-read-only-face-may-skip-the-cut: + en: 1138b58239be186b + zh: cf5fc5f1d3f21bd3 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/decision/consumers: + en: 5b8c1e5eb06f7d59 + zh: 4018838c3390342a +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/decision/the-client-store-separates-cached-and-sequenced-rows: + en: 8a4e9e9ac2ada06f + zh: b5884535cd934f72 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/decision/what-stays-untouched: + en: 1cefba02bbfb2647 + zh: 5a96942565ab9d72 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/decision/worst-case-walked-through: + en: 396d75331b3b0143 + zh: 2eb41ac09de87de0 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/alternatives-considered: + en: d71031c0dc256d80 + zh: 753c948a90a0c9ad +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/consequences: + en: c95faf40ca336afb + zh: 95d6030671113056 +/agent-note-projection-cache-read-only-face-matches-the-lifecycle-identity-the-client-store-separates-cached-and-sequenced-rows/testing: + en: 20aef0e3d10b7f98 + zh: 478b2d22eb3fcc2a diff --git a/.agents/notes/implemented/architecture/2026-09-19-remote-duplex-stream.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-19-remote-duplex-stream.i18n.yaml index 9a6d0df300..eba3d7545a 100644 --- a/.agents/notes/implemented/architecture/2026-09-19-remote-duplex-stream.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-19-remote-duplex-stream.i18n.yaml @@ -1,6 +1,142 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-remote-duplex-stream.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-19-remote-duplex-stream.md -2026-09-19-remote-duplex-stream.md: ea8e8cebcc8285c97ebdb70f4e37805d3ce8bfe9 -2026-09-19-remote-duplex-stream.zh.md: 2e119bf054e20d076e22758178b5e0168092be18 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context: + en: c52d4b55f470a50f + zh: d2d446516b1011bc +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/problem: + en: 70a969dce3283824 + zh: 18c61bf840a6518a +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/problem/current-state: + en: 8fb06638898de59e + zh: 79ed0cfe79e40be1 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/problem/three-unrelated-uplink-mechanisms: + en: 386be7b691ab63e7 + zh: 935e0db22ae1cf5d +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/problem/concrete-costs: + en: f374976b43645d15 + zh: 26b2c7aaafa41fba +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/problem/relation-to-background-jobs: + en: 5e67475010d52ddb + zh: ce23aad2d4aa0d67 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/problem/goals: + en: 1f8e6d20dd4b2bf7 + zh: c6939e72e9bac277 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision: + en: a15c7c13f167e5ac + zh: ff261e3705c47ff0 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/in-one-sentence: + en: 943208904785f7eb + zh: bda1969132a16101 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/terms: + en: 401703adbd9cc1c2 + zh: 56d960c0b6fdff57 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/type-signatures: + en: 5f9cd00890b6f4c3 + zh: 600ecba7e60b63f6 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/host-face: + en: 37f59749e1703ca8 + zh: d220eded761d83c0 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/host-face/how-the-invocation-context-reaches-the-method: + en: a7180d3c194cf9d9 + zh: 0dd7833e0e5d0a71 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/peerscope: + en: 202aa6e8e8b04bd6 + zh: b1fc897c09074a7c +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/client-face: + en: 9f10347a73402b8b + zh: b939c7a254a8e579 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/wire-frames: + en: 490c19bf403bc76f + zh: 55ad5cff840d0421 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/logical-stream-state-machine: + en: 438963f156ea05b1 + zh: e738fca49b9bc1cc +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/logical-stream-state-machine/host-side: + en: 959d7f191895af71 + zh: 9b70e5e36233e301 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/logical-stream-state-machine/client-side: + en: 6a6f94f54a29c1ed + zh: 1306602bae8a219b +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/half-close-and-termination: + en: 52e2097ea66452e8 + zh: 0cc058365773a792 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/cancellation-wait-lifetime: + en: a21405b6607345a7 + zh: 70b3be4327ab59d5 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/ordering-guarantees: + en: d176a388014d0bf8 + zh: db4a4988dcb36690 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/backpressure: + en: 607a1afd89892d15 + zh: a0aa85124340458c +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/security-and-validation: + en: 46a0c0b3ce1e5671 + zh: 7743707de42b1d1d +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/in-process-and-worker-carriers: + en: ec339e57dc2c0603 + zh: 3570be8c094ea24c +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/decision/relation-to-events: + en: a011793e5a4400ed + zh: df8b20115f0348b8 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/type-and-wire-definitions: + en: b8a63bcefdea2704 + zh: d2aa576cf736b1b7 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/type-and-wire-definitions/typert-protocol-packages-typert-protocol-src: + en: e1b2ae30d8a8a62d + zh: 8790a068aa3a10e9 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/type-and-wire-definitions/typert-generator-packages-typert-generator-src: + en: 3b0b1398141b9a3d + zh: 6a96f6785c59dad3 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/type-and-wire-definitions/two-names-one-entry-point: + en: 59188926c8e586de + zh: 3298be0413d14274 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/type-and-wire-definitions/gateway-host-packages-api-gateway-src: + en: 9c8122ce6048a432 + zh: 58f28ebe6d484a9d +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/type-and-wire-definitions/gateway-host-mux-stream-server-ts: + en: eb4b18a979c0665d + zh: 148bf697825ddc49 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/type-and-wire-definitions/gateway-client-packages-api-gateway-src-client: + en: 26dcd8bebdc8d974 + zh: e74bcef7c549e70c +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/placement: + en: 41128746334320c7 + zh: 558a676340aae3a2 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/key-sequences: + en: 130e4f9ec7296a10 + zh: 2a5aa1302a8db61a +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/key-sequences/open-uplink-half-close-downlink-end: + en: 3e8f671254c2b462 + zh: d2dba924dfc0f09e +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/key-sequences/client-dispose: + en: a5b474d42af07bd9 + zh: df2bd41480beb07e +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/key-sequences/inbox-overflow: + en: 32b009b9d90dc36c + zh: 52590ffa9bf9f90b +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/boundary-matrix: + en: c6a08daa98e3c189 + zh: 0c9dbe16f4cdaa79 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/error-codes: + en: 7da8cacc0a6892f2 + zh: e22ca8d3d9161568 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/minimal-echo-method: + en: b42ab0932f8b31b4 + zh: 7fed8cb5b6e36788 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/alternatives-considered: + en: 04e72789417d6e3a + zh: b57c5cc68dff45a5 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/consequences: + en: 07524e0c2dc22ad5 + zh: 5bf4f27160d78b43 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/testing: + en: 5c8188930b9d4fdb + zh: 1d94e6563cedde13 +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/deferred: + en: 3b99a327464edc3e + zh: dcffdc75369925dc +/agent-note-remote-duplex-stream-one-kind-of-stream-an-uplink-channel-and-an-invocation-context/related: + en: f8995f478dc1d478 + zh: 96621e80a4d3cefc diff --git a/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.i18n.yaml new file mode 100644 index 0000000000..d2ba163848 --- /dev/null +++ b/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.i18n.yaml @@ -0,0 +1,25 @@ +# Bilingual-pair consistency record for 2026-09-19-window-drag-coverage-contract.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.md +/agent-note-window-drag-coverage-as-a-contract: + en: 120846e859b20561 + zh: 9511a261d15f87b5 +/agent-note-window-drag-coverage-as-a-contract/problem: + en: e4a1c339c31fb1b5 + zh: 0e9db2a9ba74e6c7 +/agent-note-window-drag-coverage-as-a-contract/decision: + en: 1cef50cc0c973afb + zh: c97495c70292f32c +/agent-note-window-drag-coverage-as-a-contract/alternatives-considered: + en: d3c08cbcee308605 + zh: 93bc631a31c16855 +/agent-note-window-drag-coverage-as-a-contract/consequences: + en: d312ce6aad9dc358 + zh: 96905d1acb95ed7c +/agent-note-window-drag-coverage-as-a-contract/testing: + en: bac710df115cac90 + zh: 236874d8df1caa27 +/agent-note-window-drag-coverage-as-a-contract/manual-state-matrix: + en: 8b86cf80458055b1 + zh: 55cece531251548a diff --git a/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.md b/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.md new file mode 100644 index 0000000000..c73d9230a4 --- /dev/null +++ b/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.md @@ -0,0 +1,64 @@ +# Agent Note: Window drag coverage as a contract + +Status: implemented + +English | [中文](2026-09-19-window-drag-coverage-contract.zh.md) + +## Problem + +The macOS desktop window's draggable area is authored twice. The layout decides where chrome rows are — their heights and what they contain — while hand-written app-region declarations decide what drags: one row declaration per chrome row (the sidebar's top strip and logo row, ui-dockkit's strip row, the Conversation header, the plugin manager's page heads, the Platform overlay's return bar) plus per-box subtractions spread across ui-web, ui-settings-general and ui-sidebar-right. The two descriptions are kept in step by hand, so they drift: a row whose box does not match the band leaves chrome outside the drag surface (the reported "the header drags, but some blank runs and controls do not") or puts content inside it (a press that misses a control by a few pixels drags the window, and a double click there runs the system's title-bar action). + +## Decision + +Coverage becomes a contract with four executed parts: + +1. ui-web's `window-drag/regions.ts` publishes the composition rule as an executable model — a point is draggable when the last collected app-region box containing it declares `drag`, the geometry-in-DOM-order composition the native window applies — together with `INTERACTIVE_SELECTOR`, the single source for the interactive subtraction ui-web base.css declares. The base-styles spec asserts the sheet declares exactly that list, so the two cannot drift. +2. The shell declares the darwin drag surface exactly once: `html[data-platform='darwin'] [data-window-drag]` in ui-web base.css. Every chrome row marks its own element in markup, so the row's box is the window's draggable geometry and no fixed band has to match any row's height. The ui-theme app-region gate holds a manifest that pairs each row's markup mark with its sheet, its class selector and its authored height, and refuses a mark on any element the manifest does not name — so a row that stops marking itself, an unmarked row added to the composition, and a mark on a content container all fail the same gate. +3. The browser lane gains `window-drag-coverage`, which boots the shipped composition in Chromium with `data-platform='darwin'` and asserts, through the model, that no interactive box lies inside the drag surface, plus per-row probes for the chrome rows and a page whose head row marks itself while its scrollable body stays content. +4. The shell owns the one recollection watcher — ui-web's `window-drag/recall.ts`, installed by the boot kernel. It measures every marked row once per frame while the surface can be moving, sets `data-window-drag-recall` on the body for each frame whose geometry changed, and clears it once the geometry holds still through a short grace window, so a report that arrives before a CSS transition moves anything cannot end the loop on its first unchanged sample. It reports every reason the surface can move: a DOM change touching a marked row or the container holding one, a marked row's box resizing, and a transition or animation starting on an element that holds a marked row. No chrome row carries a pulse of its own. + +The native half — whether a press really drags or reaches the page — stays a checklist, because no keyless CI lane reaches the window server: the state matrix below is run for any change to this layer. + +## Alternatives considered + +**Publishing measured rectangles from JavaScript as synthetic drag boxes.** Geometry would have to be re-derived at pointer cadence, and one stale frame is exactly the swallow class this work removes; CSS-derived regions cannot be stale by construction. + +**A global background drag (the `movableByWindowBackground` reading).** Dragging anywhere that is not a control would break text selection and blank-area clicks. + +**One drag declaration per row in each row's own sheet.** That was this work's first shape, with a manifest pinning each row's height and the band over it. Every sheet then restates the window's geometry, and a row whose box moves in layout alone still has to be re-declared in CSS; one shell rule over a markup mark keeps the declaration count at one, and the manifest pairs the marks with the geometry that the gate can still check. + +**Pinning current coverage as one golden snapshot.** That would freeze the two failure classes next to the correct behaviour; the manifest separates the invariant (no swallowed control) from the gaps (a budget that only shrinks). + +## Consequences + +- A new control needs no drag declaration: the interactive selector subtracts it. A new chrome row marks its element `data-window-drag` and adds a manifest entry pinning its height, so no band arithmetic and no other sheet changes. +- A row's own box is the whole draggable geometry, and a content container is never one. The plugin manager's detail views mark the head row they share, not the detail container they are rendered in: marking the container would drag the window over its text and form labels, and the lane samples the body below that head to keep it so. +- No coverage gap remains: every chrome row owns its run, and the gate asserts the whole package tree declares the drag surface in exactly two places — the shell's mark rule and the Windows caption row. The plugin manager's page head and its detail views' shared head row include the 48px clearance inside the row, so the entry-page gap closed with them. +- The settings overlay portals beside `#root` (like the Modal primitive) and dropped its per-sheet `no-drag` rule: a covering surface inside the root precedes the columns' chrome, so a drag row declared later would override its subtraction, and ui-web base.css's `body > :not(#root)` rule subtracts a portalled one wherever it overlaps a drag row. The browser lane asserts that placement with the overlay open. Because a step's onboarding overlay marks only `#root` inert, the panel closes when an onboarding step mounts rather than staying focusable behind it. +- The Platform overlay's return bar is a darwin drag row only. Its former per-sheet `app-region: drag` carried no platform scope, so Windows dragged the window from that 48px bar; under the one scoped rule the bar declares drag on macOS alone, where it is the window's top strip. Windows keeps the native caption row as its drag surface, and the shell ships no Linux desktop target. The manual state matrix gains a cell for this bar. +- A row that slides across a hidden/visible edge cannot rely on the layout change alone: Electron recollects the window's drag rects only when a computed app-region value changes (electron#32341), and Blink skips hidden boxes when it collects them. The watcher closes that gap for every row at once — it re-arms on a DOM change that touches a marked row or on a marked row's box resizing, then pulses each frame in which a box moved — so the right panel carries no pulse of its own. + +## Testing + +- `packages/client/web/tests/window-drag-regions.client.spec.ts` — the composition rule, including order sensitivity and box edges. +- `packages/client/web/tests/base-styles.client.spec.ts` — base.css declares the model's interactive selector, the one darwin drag rule, and the recall mark's subtraction. +- `packages/client/ui-theme/tests/app-region-styles.client.spec.ts` — drag ownership, the row manifest, and each row's mark; a mark outside the manifest or a changed row height fails. +- `packages/client/ui-dockkit/tests/app-region-styles.client.spec.ts` — the strip row's own subtraction; its drag is the markup mark's, so the sheet declares none. +- `packages/client/web/tests/window-drag-recall.client.spec.ts` — the watcher through its two seams: what re-arms it, what it ignores, the settle loop, the shell defaults, and disposal. +- `apps/web/tests/window-drag-coverage.e2e.ts` — real Chromium: no swallowed control, per-row probes, a detail page whose head row drags while its body does not, and the recall pulse the shell fires while the right panel slides. +- Real-machine verification (2026-09-20, both platforms, HID-level pointer input plus window-frame readback): the macOS matrix above ran on a real `hiddenInset` window and the Windows cells ran on a Windows 11 ARM64 VM — chrome rows drag, content and the covering overlay do not, controls keep their clicks, and the right panel's strip row drags after its slide. + +## Manual state matrix + +Run on the packaged macOS app for any change to this layer. Each cell means both halves: drag the row's blank run (the window must move) and click the row's controls (they must act rather than drag). + +| State | Rows to walk | +| --- | --- | +| Sidebar expanded, Conversation selected, view tabs shown | sidebar top strip, sidebar logo row, conversation title row, conversation tab-strip row, every control in those rows | +| Sidebar expanded, Conversation selected, single view (no tabs) | same rows, plus the transcript's first rows below the header | +| Sidebar collapsed | Conversation header over the centre, `shell.leading` seat controls, reopen and New session | +| Right sidebar pushed | panel strip row and its controls, the pane body run below the strip, the pane divider's top run | +| Right sidebar fullscreen | panel strip row at the traffic lights, first pane's strip inset, its controls | +| Entry page (guide, plugin manager, settings) | page head with its 48px clearance, its first control row, and a detail page's head row over its body | +| Window fullscreen on/off | every row above with the traffic lights hidden, in both sidebar states | +| Double click in a chrome row's blank run | on Windows the caption row takes the system title-bar action (maximize/restore); on macOS the darwin rows are app-region areas rather than a title bar, so no system action is expected there — only the controls keep their own double click | diff --git a/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.zh.md b/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.zh.md new file mode 100644 index 0000000000..81fb9bbcc2 --- /dev/null +++ b/.agents/notes/implemented/architecture/2026-09-19-window-drag-coverage-contract.zh.md @@ -0,0 +1,64 @@ +# Agent Note: 把窗口拖拽覆盖变成契约 + +Status: implemented + +[English](2026-09-19-window-drag-coverage-contract.md) | 中文 + +## Problem + +macOS 桌面窗口的可拖区域被写了两遍。布局决定 chrome 行在哪——它们多高、装了什么;手写的 app-region 声明决定什么能拖:每个 chrome 行一条行声明(侧栏顶条与 logo 行、ui-dockkit 的 strip 行、会话 header、插件管理的页头、Platform 浮层的返回栏),加上散落在 ui-web、ui-settings-general、ui-sidebar-right 的逐盒减除。两份描述靠人肉保持一致,于是会漂:盒子与 band 不匹配的行,要么有 chrome 落在拖拽面之外(就是反馈里的"header 能拖,但有些空白与控制不能"),要么有内容落进拖拽面(点偏几个像素就变成拖窗口,双击那里还会触发系统标题栏行为)。 + +## Decision + +覆盖变成由四部分组成的、可执行的契约: + +1. ui-web 的 `window-drag/regions.ts` 把合成规则发布成可执行模型——当包含某点的最后一个 app-region 盒声明 `drag` 时该点可拖,这正是原生窗口施加的"按 DOM 顺序的几何合成"——并发布 `INTERACTIVE_SELECTOR`,作为 ui-web base.css 交互减除的唯一来源。base-styles spec 断言样式表声明的正是该列表,两者无法漂移。 +2. 外壳只声明一次 darwin 拖拽面:ui-web base.css 里的 `html[data-platform='darwin'] [data-window-drag]`。每个 chrome 行在 markup 里给自己的元素打标,于是该行自己的盒子就是窗口的可拖几何,不需要任何固定 band 去匹配行高。ui-theme 的 app-region 门禁持有一份清单,把每行的 markup 标记与其样式表、类选择器和写死的高度配成一条,并拒绝清单未点名的元素上的标记——行不再打标、新增未打标的行、把标记打在内容容器上,都会在同一条门禁上失败。 +3. 浏览器车道增加 `window-drag-coverage`:以 `data-platform='darwin'` 在 Chromium 里启动真实组合,用模型断言没有任何交互盒落在拖拽面内,并对各 chrome 行逐一探测,另加一个"页头行打标、其可滚动正文保持内容"的页面。 +4. 外壳持有唯一那个重收集 watcher——ui-web 的 `window-drag/recall.ts`,由引导内核安装。在表面可能移动期间,它每帧测量每个被打标的行,凡该帧几何发生变化就在 body 上打 `data-window-drag-recall`;几何在一段很短的宽限窗口内保持不动之后才清掉,这样在 CSS transition 真正移动任何东西之前到达的一次报告,不会在它第一帧未测到变化时就终止循环。它会报告表面可能移动的每一种原因:触及被打标行或承载它的容器的 DOM 变化、被打标行的盒子尺寸变化,以及持有被打标行的元素上开始的 transition 或 animation。任何 chrome 行都不再自带脉冲。 + +原生那一半——一次按下到底是拖窗口还是到达页面——仍是清单,因为没有无密钥 CI 车道能到达窗口服务器:对本层的任何改动都要走下面的状态矩阵。 + +## Alternatives considered + +**用 JavaScript 测量矩形并发布合成 drag 盒。** 几何得按指针节拍重新推导,而一帧陈旧正是这项工作要消除的吞点击类别;CSS 推导的区域在构造上不可能陈旧。 + +**全局背景拖拽(`movableByWindowBackground` 的读法)。** 只要不是控件就能拖,会破坏文本选择与空白处点击。 + +**每个行在自己的样式表里各声明一条 drag。** 这是本项工作最初的样子,并配一份清单钉住每行高度与覆盖它的 band。那样每个样式表都要复述窗口几何,而且只在布局里移动的盒子仍得在 CSS 里重新声明;改成"markup 打标 + 外壳一条规则"后声明只有一处,清单则继续把标记与门禁能查的几何配起来。 + +**把当前覆盖钉成一张金标准快照。** 那会把两类故障和正确行为一起冻住;清单把不变量(不得吞掉控件)与缺口(只许缩小的预算)分开。 + +## Consequences + +- 新控件不需要任何 drag 声明:交互选择器会减除它。新 chrome 行只需给元素打上 `data-window-drag` 并在清单里加一条钉住高度,无需 band 算术,也不牵动其它样式表。 +- 行自己的盒子就是完整的可拖几何,内容容器永远不是。插件管理的详情视图给它们共用的页头行打标,而不是给它所在的详情容器打标:标记容器会让窗口在它的正文与表单 label 上拖动;车道会采样该页头下方的正文来守住这一点。 +- 不再有任何缺口:每个 chrome 行自持其拖拽段,门禁断言整个包树只在两处声明拖拽面——外壳的标记规则与 Windows 标题栏行。插件管理页头与其详情视图共用的页头行都把 48px 避让量包含在行内,入口页那条缺口也随之关闭。 +- settings 浮层现在与 Modal primitive 一样 portal 到 `#root` 之外,并删掉了它自己那条 no-drag:挂在 root 内的覆盖层先于各列 chrome,后声明的 drag 行会盖掉它的减除;portal 之后由 ui-web base.css 的 `body > :not(#root)` 规则在它与 drag 行重叠处减除。车道在浮层打开时会断言这个归属。由于 onboarding 步骤的浮层只把 `#root` 置为 inert,onboarding 步骤挂载时面板会自行关闭,而不是留在它背后仍可聚焦。 +- Platform overlay 的返回栏只是 darwin 的 drag 行。它原先那条按表声明的 `app-region: drag` 没有任何平台限定,因此 Windows 上也能从这条 48px 栏拖动窗口;改到唯一那条带作用域的规则之后,该栏只在 macOS 上声明 drag,在那里它就是窗口顶条。Windows 保留原生标题栏行作为拖拽面,且外壳没有 Linux 桌面目标。人工状态矩阵会为这条栏增加一格。 +- 跨越隐藏/显示边界滑动的行不能只靠布局变化:只有当计算出的 app-region 值变化时,Electron 才会重新收集窗口的拖拽矩形(electron#32341),而 Blink 收集时会跳过隐藏的盒子。watcher 一次性把这个缺口对所有行补上——它在"触及被打标行的 DOM 变化"或"被打标行的盒子尺寸变化"时重新启动,随后在盒子仍在移动的每一帧发脉冲——因此右栏不再自带任何脉冲。 + +## Testing + +- `packages/client/web/tests/window-drag-regions.client.spec.ts` —— 合成规则,含顺序敏感与盒子边界。 +- `packages/client/web/tests/base-styles.client.spec.ts` —— base.css 声明的正是模型的交互选择器、唯一那条 darwin drag 规则,以及 recall 标记的减除。 +- `packages/client/ui-theme/tests/app-region-styles.client.spec.ts` —— 拖拽所有权、行清单与每行的标记;清单之外的标记或行高变化即失败。 +- `packages/client/ui-dockkit/tests/app-region-styles.client.spec.ts` —— strip 行自己的减除;它的 drag 属于 markup 标记,因此样式表一条都不声明。 +- `packages/client/web/tests/window-drag-recall.client.spec.ts` —— 通过两个 seam 驱动 watcher:什么会重新启动它、什么被它忽略、收敛循环、外壳默认值,以及销毁。 +- `apps/web/tests/window-drag-coverage.e2e.ts` —— 真 Chromium:无控件被吞、逐行探测、一个页头行可拖而正文不可拖的详情页,以及右栏滑动期间外壳发出的 recall 脉冲。 +- 真机验收(2026-09-20,双平台,HID 级指针输入 + 窗口矩形读数):上面的 macOS 矩阵在真实 `hiddenInset` 窗口上跑过,Windows 各格在 Windows 11 ARM64 虚拟机上跑过——chrome 行可拖、正文与覆盖浮层不可拖、控件保留点击、右栏 strip 行在滑入后可拖。 + +## Manual state matrix + +对本层的任何改动都要在打包 macOS 应用上跑。每个格子包含两半:拖该行的空白段(窗口必须移动),点该行的控件(必须生效而不是拖动)。 + +| 状态 | 要走的行 | +| --- | --- | +| 侧栏展开、选中会话、显示视图 tab | 侧栏顶条、侧栏 logo 行、会话标题行、会话 tab 条行,以及这些行里的每个控件 | +| 侧栏展开、选中会话、单视图(无 tab) | 同上,外加 header 之下的转录区首行 | +| 侧栏收起 | 覆盖中列的 会话 header、`shell.leading` 座的控件、重新打开与新会话 | +| 右栏 push | 面板 strip 行及其控件、strip 下方的 pane body 段、分栏分隔条的顶部一段 | +| 右栏 fullscreen | 红绿灯处的面板 strip 行、首格 strip 内边距、其控件 | +| 入口页(开始页、插件管理、设置) | 含 48px 避让量的页头、它的首个控件行,以及详情页页头行与其正文 | +| 窗口全屏开关 | 以上各行在红绿灯隐藏时、两种侧栏状态各一遍 | +| 在 chrome 行空白段双击 | Windows 上 caption 行走系统标题栏行为(最大化/还原);macOS 上 darwin 行只是 app-region 区域而非标题栏,因此那里没有系统动作——只有控件保留自己的双击 | diff --git a/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.i18n.yaml index 061872368c..641b4a5806 100644 --- a/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-sidebar-retained-tab-layout.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.md -2026-09-20-sidebar-retained-tab-layout.md: 9579a0ba47c56f1d533f066fddd37e7ddf443346 -2026-09-20-sidebar-retained-tab-layout.zh.md: 365ad5682c8610cab5dc855984e58b4303bfae49 +/agent-note-stable-sidebar-tab-mounting-and-session-retention: + en: 79bf4b50c50b52d4 + zh: cfd15cdb020ef7c8 +/agent-note-stable-sidebar-tab-mounting-and-session-retention/problem: + en: fd5b83cd022f1696 + zh: fd14a1bc7f5d9119 +/agent-note-stable-sidebar-tab-mounting-and-session-retention/decision: + en: 3e604325fdf0e8b5 + zh: ddf00764a68532d4 +/agent-note-stable-sidebar-tab-mounting-and-session-retention/decision/layout-ownership: + en: 7095df7c949b8e3c + zh: e7410e44eaa97797 +/agent-note-stable-sidebar-tab-mounting-and-session-retention/decision/session-and-tab-lifetime: + en: 60a4450a1a4f398c + zh: cc0054505b973c91 +/agent-note-stable-sidebar-tab-mounting-and-session-retention/decision/provider-responsibilities: + en: a34c228751a1a329 + zh: 8e8b962b55e7c68e +/agent-note-stable-sidebar-tab-mounting-and-session-retention/decision/retention-versus-recovery: + en: aabfa99401aa0f73 + zh: 465ebf723c4393aa +/agent-note-stable-sidebar-tab-mounting-and-session-retention/alternatives-considered: + en: 84cfe7613657bfdb + zh: 4a0a499eb5d36d22 +/agent-note-stable-sidebar-tab-mounting-and-session-retention/consequences: + en: 9569f8398823e0da + zh: 9b95fb2f5d53b963 +/agent-note-stable-sidebar-tab-mounting-and-session-retention/verification: + en: 8d6fd48c494ba5f6 + zh: 1aa02f822f58d73b diff --git a/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.md b/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.md index 9579a0ba47..3c1e23ad93 100644 --- a/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.md +++ b/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.md @@ -17,7 +17,7 @@ Sidebar owns live-body retention, independently of Browser navigation and Worksp - `DockLayout` renders the Sidebar's one or two horizontal panes with stable tab siblings. The existing recursive `DockSurface` and separate `FloatLayer` remain available for general split-tree rendering; the layout engine and serialized format are unchanged. - Every tab has a stable Grid cell, frame, Header container and Body container. Explicit Grid columns determine docking placement; Flex assigns Header and Body height. Floating changes that same frame to `position: fixed` without changing its parent or replacing Body. - A floating frame's zero-sized Grid cell establishes a stacking context at the float layer. CSS `order` expresses float depth within that layer; DOM order stays sorted by tab identity. Raising many floats cannot increment their layer past menus. Selection and strip order never reorder the content-node list. -- Common ancestors have no transform, clipping or enclosing stacking context. Docked cells own collapse transforms and visibility; each frame clips its content. Fullscreen changes the same root's width and docked layer. Existing window-drag region pulses remain, but no RAF copies content positions. +- Common ancestors have no transform, clipping or enclosing stacking context. Docked cells own collapse transforms and visibility; each frame clips its content. Fullscreen changes the same root's width and docked layer. The right panel carries no window-drag pulse of its own: one shell-owned watcher measures the marked rows each frame while the surface can move and pulses the recall mark itself, so no layout code copies content positions. - Split and float gestures retain their existing measurements and operation state. These update user-selected split fractions and float rectangles, not a second Browser rectangle. Browser resize and content sizing use normal CSS layout. ### Session and tab lifetime diff --git a/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.zh.md b/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.zh.md index 365ad5682c..000174a0c3 100644 --- a/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.zh.md +++ b/.agents/notes/implemented/architecture/2026-09-20-sidebar-retained-tab-layout.zh.md @@ -17,7 +17,7 @@ Sidebar 负责活 Body 的保留,不依赖 Browser 导航和 Workspace 存储 - `DockLayout` 用稳定的 Tab 兄弟节点渲染 Sidebar 的一个或两个水平 Pane。现有递归 `DockSurface` 和独立 `FloatLayer` 仍可用于通用分割树渲染;布局引擎和序列化格式不变。 - 每个 Tab 都有稳定的 Grid cell、frame、Header 容器和 Body 容器。显式 Grid 列决定停靠归属,Flex 分配 Header 与 Body 的高度。浮动只把同一个 frame 改为 `position: fixed`,不改父节点或替换 Body。 - 浮动 frame 的零尺寸 Grid cell 在浮窗层建立层叠上下文。CSS `order` 表达该层内的浮窗深度,DOM 顺序始终按 Tab 身份排序。大量浮窗置顶不会把层级递增到菜单之上;选中项和 Tab 条排序均不重排内容节点列表。 -- 共同祖先不设置 transform、裁剪或包住全部内容的层叠上下文。停靠 cell 负责收起 transform 和显隐,各 frame 裁剪自身内容。Fullscreen 修改同一个根的宽度和停靠层级。窗口拖动区域的既有脉冲仍保留,但没有 RAF 复制内容位置。 +- 共同祖先不设置 transform、裁剪或包住全部内容的层叠上下文。停靠 cell 负责收起 transform 和显隐,各 frame 裁剪自身内容。Fullscreen 修改同一个根的宽度和停靠层级。右栏不再自带窗口拖拽脉冲:由外壳唯一那个 watcher 在表面可能移动时逐帧测量被打标行并自行脉冲 recall 标记,因此没有布局代码复制内容位置。 - 分栏与浮窗手势沿用原有测量和操作状态,更新用户选择的分栏比例与浮窗矩形,而非维护第二份 Browser 矩形。窗口缩放和内容尺寸变化由普通 CSS 布局处理。 ### 会话与 Tab 生命周期 diff --git a/.agents/notes/implemented/architecture/2026-09-21-conversation-build-groups.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-21-conversation-build-groups.i18n.yaml index 1bd7d91641..f715253877 100644 --- a/.agents/notes/implemented/architecture/2026-09-21-conversation-build-groups.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-21-conversation-build-groups.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-21-conversation-build-groups.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-21-conversation-build-groups.md -2026-09-21-conversation-build-groups.md: bccb48b0e40a076bbcb59aaca9e9ef6208e9469d -2026-09-21-conversation-build-groups.zh.md: 5d2ec9e684c75b3db3568c4f046129431295f736 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly: + en: 011f264e0aea8d0c + zh: d0ad8b4334af619e +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/problem: + en: 83dd98f48ee30a1a + zh: 66dec35b4b54f291 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/decision: + en: d4216ce4d80382e8 + zh: 9ee608af410e81e0 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/decision/responsibilities: + en: d7cf1bd544f163ee + zh: 2433f3faa5f5abcb +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/decision/related-decisions: + en: d8307dcaf2a9ac72 + zh: 4852b1e2a4d09af0 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/definition-input-state-and-registration: + en: 9fb89bddbfd75627 + zh: 950c319db123c637 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/node-group-references-and-updates: + en: 13034cf7eb143055 + zh: 4ff0c0be55028258 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/assembly-order-and-lifecycle: + en: 52a1bbfe6e9bcac7 + zh: dabbcd108f68bd14 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/concrete-implementation-locations: + en: 85715eb77bf73713 + zh: 7e6c90830b65281b +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/react-reading-and-presentation: + en: 7636207f33e971a4 + zh: ace1f5bbaf5a01b5 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/alternatives-considered: + en: 21a74f9031f86a92 + zh: c6abd0a5dfbf56a8 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/verification: + en: b42409d029fc0fde + zh: 0f8ab7d206cab772 +/agent-note-definition-owned-grouping-with-generic-node-group-assembly/consequences: + en: 96f1d81b28534661 + zh: 8cb1c7a0f000c335 diff --git a/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml index 61830cb7cd..4a59755b21 100644 --- a/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-21-creator-skills-progressive-disclosure.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.md -2026-09-21-creator-skills-progressive-disclosure.md: bdd70beda7c92584a336cda856d196ac23d1f968 -2026-09-21-creator-skills-progressive-disclosure.zh.md: 265d9db21a5288b4d589078ff85a75eb74f3b237 +/agent-note-creator-skills-disclose-progressively-and-may-read-sources: + en: 374f4a41f3026e59 + zh: 4e7f90d18b03fd14 +/agent-note-creator-skills-disclose-progressively-and-may-read-sources/problem: + en: 1808717550a5e7ba + zh: e18dd5a813a2398d +/agent-note-creator-skills-disclose-progressively-and-may-read-sources/decision: + en: b83fb74f03ca75a7 + zh: e4f6b1c73ef96787 +/agent-note-creator-skills-disclose-progressively-and-may-read-sources/alternatives-considered: + en: d36d4f610925060a + zh: c0ed56b6c631789e +/agent-note-creator-skills-disclose-progressively-and-may-read-sources/consequences: + en: ed908afe74adf3bc + zh: 62a3cfba359dfbb6 diff --git a/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.i18n.yaml index eae4bb9b59..a9e885fe52 100644 --- a/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-21-live-config-inspect-provider.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.md -2026-09-21-live-config-inspect-provider.md: b4be50852693665780da37b03c130339afa0ef57 -2026-09-21-live-config-inspect-provider.zh.md: e1eead7b68f12be320e5c34b621178f44cd26282 +/agent-note-live-plugin-config-inspection-replaces-the-host-builtin-provider: + en: f57edbb8b3fa60ae + zh: 8d0fa0eb73bbdaf1 +/agent-note-live-plugin-config-inspection-replaces-the-host-builtin-provider/problem: + en: e01cc31ce200b24b + zh: 7462a52c3e59ec87 +/agent-note-live-plugin-config-inspection-replaces-the-host-builtin-provider/decision: + en: a7d21366030c31ac + zh: 047299df13e504b7 +/agent-note-live-plugin-config-inspection-replaces-the-host-builtin-provider/alternatives-considered: + en: a19dba57a4108fc6 + zh: 2e64893e8bcf6513 +/agent-note-live-plugin-config-inspection-replaces-the-host-builtin-provider/consequences: + en: efa454977043c76d + zh: d6bf61ac47310d3e diff --git a/.agents/notes/implemented/architecture/2026-09-22-fatal-diagnostics-and-crash-reports.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-22-fatal-diagnostics-and-crash-reports.i18n.yaml index 89a855ae78..567f3220b2 100644 --- a/.agents/notes/implemented/architecture/2026-09-22-fatal-diagnostics-and-crash-reports.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-22-fatal-diagnostics-and-crash-reports.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-22-fatal-diagnostics-and-crash-reports.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-22-fatal-diagnostics-and-crash-reports.md -2026-09-22-fatal-diagnostics-and-crash-reports.md: 01cbb24fc84b19465a15e9f82c03ae87621b5fe9 -2026-09-22-fatal-diagnostics-and-crash-reports.zh.md: 38f6a6802b61b128ab6b8ffda0465691c5244523 +/agent-note-fatal-diagnostics-and-desktop-crash-reports: + en: a87890699e70ccc6 + zh: 189d21b852a20760 +/agent-note-fatal-diagnostics-and-desktop-crash-reports/problem: + en: f7d0c561d7576f9a + zh: ac96a7d1c470c8cf +/agent-note-fatal-diagnostics-and-desktop-crash-reports/decision: + en: ac461e0ea1702ecc + zh: 745def8581dc7974 +/agent-note-fatal-diagnostics-and-desktop-crash-reports/relationship-to-earlier-decisions: + en: 157e52fc4036044a + zh: e474d9c9a36f1381 +/agent-note-fatal-diagnostics-and-desktop-crash-reports/relationship-to-the-desktop-logging-design: + en: 7dc438912d10574a + zh: 07d05f9f17043d67 +/agent-note-fatal-diagnostics-and-desktop-crash-reports/testing: + en: 864a8e71e3b3378b + zh: a71807db24d9409c +/agent-note-fatal-diagnostics-and-desktop-crash-reports/consequences: + en: a9bf0176caf92221 + zh: 169d31d00bd28585 +/agent-note-fatal-diagnostics-and-desktop-crash-reports/alternatives-considered: + en: 5b5cf601759d1ff1 + zh: 2171128e2b3aa799 diff --git a/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.i18n.yaml index bfbfe3cdf3..48da0f768d 100644 --- a/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-22-tool-call-three-phases.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.md -2026-09-22-tool-call-three-phases.md: e7b42a4ed9e340b73257f7053bddd5221ccc0d20 -2026-09-22-tool-call-three-phases.zh.md: 5a68575fd8e2a68199cbedf1ac180a22254b7c54 +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid: + en: d8d1cdcedf0b5d8e + zh: 79e4466489558365 +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/problem: + en: 0539e5f25f594681 + zh: 5446bd08229eab9b +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/decision/one-tool-owns-three-stages: + en: ea65da88c3df35bb + zh: a71afb4683a75290 +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/decision/start-marks-an-initialization-candidate: + en: 696a180246e23391 + zh: aeb2b1fdcfdf9631 +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/decision/converge-on-final-state-without-replaying-preparation: + en: 603cbcf3379ad4f7 + zh: e34d87ea348c756b +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/decision/shared-rows-reuse-their-existing-presentation: + en: 24536588cd0c979b + zh: 992d4c4657d6d034 +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/decision/relationship-to-existing-records: + en: bd4984f66c507785 + zh: 4d2372fdbc4c3cec +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/alternatives-considered: + en: 505095bec889700e + zh: b77c492de3e8641a +/agent-note-tool-calls-own-preparation-dispatch-and-results-by-callid/consequences: + en: 3cf36b54240013da + zh: 67e663b431bc67d2 diff --git a/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.md b/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.md index e7b42a4ed9..f43eaf1a68 100644 --- a/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.md +++ b/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.md @@ -18,7 +18,7 @@ The [Tool Definition](../../../../packages/client/ui-chat/src/client/conversatio | Stage | Creation or update evidence | Available data and presentation | |---|---|---| -| `preparing` | A live delta with a call ID and tool name | Call identity, name, and time; no argument body, and one non-expandable row. | +| `preparing` | A live delta with a call ID and tool name | Call identity, name, and time; no complete arguments, and one non-expandable row. An opt-in Hook can read the raw argument prefix. | | `start` | `tool/call` | Complete arguments; enables the tool's existing call presentation. | | `result` | `tool/result` | The result and any complete arguments paired within the loaded window. | @@ -30,7 +30,7 @@ The [Conversation Definition](../../../../packages/client/ui-conversation/src/cl A named tool delta and `tool/call` are both initialization candidates. A live delta can create preparation; a historical `tool/call` creates the dispatched stage directly. Matching still reads only the current event, without Context lookup, additional roles, registries, or separate caches. -When stream settlement removes temporary deltas, the Assembler selects the start from the remaining Matches, refreshes predecessor indexes, and recomputes State. A published preparation node hides when no call evidence remains; a later dispatch retains the same callId. Undispatched calls do not receive synthetic execution results. +Successful stream settlement publishes the final Assistant message while retaining transient deltas until `step/end`. Each `tool/call` updates its existing callId; the Assistant keeps its live ordering anchor until the same cleanup. Failed, interrupted, or abandoned streams retire their deltas immediately. On retirement the Assembler reselects starts and recomputes State from remaining Matches. Undispatched preparations hide without synthetic execution results. ### Converge on final state without replaying preparation @@ -40,7 +40,7 @@ Groups include Tool nodes from preparation onward and classify and count them by ### Shared rows reuse their existing presentation -[ToolRow](../../../../packages/client/ui-tool/src/client/tool/components/ToolRow.tsx) reuses the existing icon, title, and row component across all stages. The shared row model selects the tool title and combines any generic tool-name prefix with the available argument summary. Preparation has no arguments or result, and the shared argument parser returns null without parsing JSON. ToolRow prevents preparation rows from expanding. +[ToolRow](../../../../packages/client/ui-tool/src/client/tool/components/ToolRow.tsx) reuses the existing icon, title, and row component across all stages. The shared row model selects the tool title and combines any generic tool-name prefix with the available argument summary. Preparation has no complete arguments or result, and the shared argument parser returns null without parsing JSON. The existing slot Hook binding optionally exposes a call-scoped raw prefix; it adds no preparation registration mechanism. ToolRow prevents preparation rows from expanding. Read, read_image, write/edit, search, web, todo, question, details, and the generic fallback use this path. Custom rows such as Bash, Skill, Present, and Cordis keep their own preparation branches. No automatic/custom registration declaration or second tool-classification list in ToolTree is introduced. @@ -62,6 +62,6 @@ This decision replaces the [business-node assembly](2026-08-09-client-conversati - A tool may appear before its arguments are complete, but preparation neither implies execution nor exposes interactions requiring arguments. - Multiple starts with one ID belong to one lifecycle. Independent calls must use distinct IDs; a second-start error no longer detects identity reuse. -- Shared rows do not replace the whole row component when preparation becomes dispatch. Custom rows may still switch their internal components by stage. -- Partial JSON parsing and `useToolCallDelta` are not provided; argument-driven early presentation is outside this implementation. +- The shared row primitive is reused across stages. Write/edit separate preparing and dispatched components so only the former subscribes to raw arguments; custom rows may also switch internal components by stage. +- Partial JSON parsing and `useToolCallDelta` are not provided. `useToolCallArgumentsPartial` exposes the existing Step's raw prefix without a second accumulator; write/edit use only its length for preparation progress. - Assembly tests separately cover live preparation, withdrawal, active-stream reconstruction, durable history, and paged convergence. Component tests cover argument-free presentation and stage changes; a recorded session covers browser preparation and reload results. diff --git a/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.zh.md b/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.zh.md index 5a68575fd8..accbd2e966 100644 --- a/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.zh.md +++ b/.agents/notes/implemented/architecture/2026-09-22-tool-call-three-phases.zh.md @@ -18,7 +18,7 @@ Status: implemented | 阶段 | 创建或更新依据 | 可用数据与展示 | |---|---|---| -| `preparing` | 带调用 ID 和工具名的实时 delta | 调用身份、名称和时间;不提供参数正文,只显示不可展开的一行。 | +| `preparing` | 带调用 ID 和工具名的实时 delta | 调用身份、名称和时间;不提供完整参数,只显示不可展开的一行。可选钩子可读取原始参数前缀。 | | `start` | `tool/call` | 完整参数;启用工具原有的调用展示。 | | `result` | `tool/result` | 调用结果,以及当前窗口内可配对的完整参数。 | @@ -30,7 +30,7 @@ Status: implemented Tool 的具名 delta 和 `tool/call` 都是创建入口。实时先收到 delta,就从 preparing 创建;历史先收到 `tool/call`,就从 start 创建。匹配函数仍然只读取当前事件,不查询 Context,不增加角色、注册表或旁路缓存。 -流结束移除临时 delta 后,Assembler 从剩余 Match 重新选择 start,刷新前序索引并重算 State。没有剩余调用证据时,已发布的准备节点隐藏;后续正式调用仍使用相同 callId。未派发的调用不合成执行结果。 +成功流结束时发布最终 Assistant 消息,瞬态 delta 保留到 `step/end`。每个 `tool/call` 更新已有 callId;Assistant 的实时排序锚点也保留到同一次清理。失败、中断或废弃的流立即移除 delta。清理时,Assembler 从剩余 Match 重新选择 start 并重算 State;未派发的准备节点隐藏,不合成执行结果。 ### 最终状态收敛,不重现准备过程 @@ -40,7 +40,7 @@ Group 从准备阶段起就聚合 Tool 节点,按工具名分类和计数。As ### 通用行复用现有外壳 -[ToolRow](../../../../packages/client/ui-tool/src/client/tool/components/ToolRow.tsx) 在三个阶段复用既有图标、标题和行组件。公共行模型选择工具标题,并组合通用工具名前缀与已有参数摘要。准备阶段没有参数或结果,共享参数解析入口直接返回 null,不解析 JSON;ToolRow 禁止准备行展开。 +[ToolRow](../../../../packages/client/ui-tool/src/client/tool/components/ToolRow.tsx) 在三个阶段复用既有图标、标题和行组件。公共行模型选择工具标题,并组合通用工具名前缀与已有参数摘要。准备阶段没有完整参数或结果,共享参数解析入口直接返回 null,不解析 JSON。既有 slot 钩子绑定可选地提供当前调用的原始前缀,不增加准备态注册机制;ToolRow 禁止准备行展开。 read、read_image、write/edit、search、web、todo、question、details 和通用回退使用这条路径。Bash、Skill、Present、Cordis 等自定义外壳保留自己的准备态分支。不增加自动/自管注册声明,不在 ToolTree 维护另一份工具分类名单。 @@ -62,6 +62,6 @@ read、read_image、write/edit、search、web、todo、question、details 和通 - 工具可以在参数完整前出现,但准备展示不表示工具已经执行,也不暴露依赖参数的交互。 - 同一 ID 的多个 start 被视为同一个生命周期;业务必须为独立调用提供不同 ID,不能再依赖第二个 start 报错检测身份复用。 -- 通用行不因准备/派发分支替换整行组件;自定义外壳仍可按阶段切换内部组件。 -- 不提供部分 JSON 解析或 `useToolCallDelta`,参数驱动的提前展示不属于本次实现。 +- 各阶段复用通用行基础组件。write/edit 分离准备态与派发后组件,只有前者订阅原始参数;自定义外壳也可按阶段切换内部组件。 +- 不提供部分 JSON 解析或 `useToolCallDelta`。`useToolCallArgumentsPartial` 暴露既有 Step 的原始前缀,不另建累积器;write/edit 只使用其长度展示准备进度。 - 组装测试分别覆盖实时准备态、撤回、活跃流重建、持久历史与分页收敛;组件测试检查无参数展示和阶段切换,录制会话覆盖浏览器中的准备态与重载结果。 diff --git a/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml index 84feb26de2..5247ed21c3 100644 --- a/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-20-jsonl-storage-identity.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.md -2026-07-20-jsonl-storage-identity.md: 5224ebf6bebc42b4b72e14243c1af6c02f366372 -2026-07-20-jsonl-storage-identity.zh.md: 05b7150edb99cdf336b9df90bc8e3cc1df9848a3 +/agent-note-bind-jsonl-session-identity-before-mutation: + en: 1d52db2391f1433e + zh: 3bcb9dca6b77bfdd +/agent-note-bind-jsonl-session-identity-before-mutation/problem: + en: 960d783083269ddd + zh: ef52b53d99b520d1 +/agent-note-bind-jsonl-session-identity-before-mutation/decision: + en: 3fc8ab92d1f0f98b + zh: 855b863c7d90cdd9 +/agent-note-bind-jsonl-session-identity-before-mutation/alternatives-considered: + en: 5269f154c37cb8de + zh: 983f18775457361a +/agent-note-bind-jsonl-session-identity-before-mutation/consequences: + en: 2c88ff974542760f + zh: 489996a16ba6907b diff --git a/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml index 438bf04d9c..dbd450eb86 100644 --- a/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-31-fail-loud-releases-the-terminal.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md -2026-07-31-fail-loud-releases-the-terminal.md: 9c8aa41e960764c6d9311c49a8757a25b3996b78 -2026-07-31-fail-loud-releases-the-terminal.zh.md: e44d4672dcf768c33d94b801809cf7aa653aa62f +/agent-note-fail-loud-releases-the-terminal-before-exiting: + en: c070ae81b744a18b + zh: 8379e89b11e263c4 +/agent-note-fail-loud-releases-the-terminal-before-exiting/problem: + en: 705893ebb3a11d92 + zh: 7d19929c62213a3c +/agent-note-fail-loud-releases-the-terminal-before-exiting/decision: + en: a28315c307acdf90 + zh: fb7b2df986ffdffc +/agent-note-fail-loud-releases-the-terminal-before-exiting/alternatives-considered: + en: 5ee239978e8f1ece + zh: 55267740c7726c25 +/agent-note-fail-loud-releases-the-terminal-before-exiting/consequences: + en: 19241cdfdb6c4e56 + zh: 24534e8660ae2f96 +/agent-note-fail-loud-releases-the-terminal-before-exiting/testing: + en: 8a7b0c74ec32d5a0 + zh: 5bbb564ecc8a9870 diff --git a/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml index 07c0e1b202..23c1697c7e 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-03-cli-signal-shutdown-escalation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md -2026-08-03-cli-signal-shutdown-escalation.md: 2f8bdce548318b2172e8e0a5807958e5f8189179 -2026-08-03-cli-signal-shutdown-escalation.zh.md: 8e3b90ff158b896f363165708e34d4a300cf4677 +/agent-note-bounded-escalating-signal-shutdown-for-web-and-headless: + en: d8f8ef8811dfe378 + zh: ca728da97cb35920 +/agent-note-bounded-escalating-signal-shutdown-for-web-and-headless/problem: + en: 1042d3e1c2cb1e45 + zh: d32f05dd83eee04b +/agent-note-bounded-escalating-signal-shutdown-for-web-and-headless/decision: + en: 5738aa92d9185c4f + zh: 1999e41d43063c12 +/agent-note-bounded-escalating-signal-shutdown-for-web-and-headless/alternatives-considered: + en: 53239a7e43d70aa1 + zh: d5ab1cc4c52513e6 +/agent-note-bounded-escalating-signal-shutdown-for-web-and-headless/consequences: + en: 888679c978b87125 + zh: c68d962f516f675e +/agent-note-bounded-escalating-signal-shutdown-for-web-and-headless/testing: + en: e2dd8e925ff94a13 + zh: b9430f38c27982ff diff --git a/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml index ada86f1ca9..a261460c22 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-06-bwrap-private-pid-namespace.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.md -2026-08-06-bwrap-private-pid-namespace.md: c7c83fd274c5dcd6634bdb78a909f1366e1926ba -2026-08-06-bwrap-private-pid-namespace.zh.md: fa53d4eb66669236d3e4ed82b2a4df3adff6dfc5 +/agent-note-isolate-bwrap-from-the-host-pid-namespace: + en: 56e719d5aa015e57 + zh: 2568d89bb33ab663 +/agent-note-isolate-bwrap-from-the-host-pid-namespace/problem: + en: 2da6f0dd324f054d + zh: 4a414f04e638aa47 +/agent-note-isolate-bwrap-from-the-host-pid-namespace/decision: + en: d1000f28dd8cd2c6 + zh: 9b35f7085ae68b99 +/agent-note-isolate-bwrap-from-the-host-pid-namespace/alternatives-considered: + en: e794f6d8578bffef + zh: 61feee3ed99c615d +/agent-note-isolate-bwrap-from-the-host-pid-namespace/verification: + en: 7f9a12f088ce869f + zh: 8d1ea7519de1605d +/agent-note-isolate-bwrap-from-the-host-pid-namespace/consequences: + en: 4543b72f4d669fdf + zh: 7576f60bac467013 diff --git a/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml index 67810e388a..82875f587c 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-06-host-backed-web-preferences.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.md -2026-08-06-host-backed-web-preferences.md: 4b8d52887554899f2aee9253e65354e4c0fc7e46 -2026-08-06-host-backed-web-preferences.zh.md: 9c61de71981c9e4950889cf94eba2645b9247aa8 +/agent-note-persist-web-user-preferences-through-host-settings: + en: da28d8677a4d9f9c + zh: a5311ab734f576d3 +/agent-note-persist-web-user-preferences-through-host-settings/problem: + en: 18b583ecb58b9e06 + zh: 55570d758b75852a +/agent-note-persist-web-user-preferences-through-host-settings/decision: + en: 2846c0d0f8615da7 + zh: 511d61ea4ea6efa6 +/agent-note-persist-web-user-preferences-through-host-settings/alternatives-considered: + en: a91ebb47ec1ee356 + zh: d5ce0b7f48195093 +/agent-note-persist-web-user-preferences-through-host-settings/consequences: + en: 7defab72acfd5e78 + zh: 566cbbd3eb3cd9e3 diff --git a/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml index ca1680270c..8f8930a2f0 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-07-cancel-convergence-wake-latch.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.md -2026-08-07-cancel-convergence-wake-latch.md: a6540a7b46b3e4af4058c7549ff056b92fcc708d -2026-08-07-cancel-convergence-wake-latch.zh.md: 2c4f368feaaca91386cac0a5a833ecd8e9f2e1e1 +/agent-note-latch-wake-ups-that-land-in-the-cancel-convergence-window: + en: 0b877f8208b50162 + zh: dd6b6af7d96a5f86 +/agent-note-latch-wake-ups-that-land-in-the-cancel-convergence-window/problem: + en: 4539f5fa2c7dc7e4 + zh: f7b6cbe04ca0ffc2 +/agent-note-latch-wake-ups-that-land-in-the-cancel-convergence-window/decision: + en: 23d5dbc6b75ca908 + zh: 116ae93f6a48e6ed +/agent-note-latch-wake-ups-that-land-in-the-cancel-convergence-window/alternatives-considered: + en: 6df22ff84b2dc081 + zh: 38d1559935b66fb9 +/agent-note-latch-wake-ups-that-land-in-the-cancel-convergence-window/consequences: + en: 7d72c68239cd7e31 + zh: 19045871dcceb4bf diff --git a/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml index 528aa1f781..a3575ac176 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-07-ptc-executor-collapse.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.md -2026-08-07-ptc-executor-collapse.md: e034d30ff54673ecef98faf5c632b92c2d39aa2f -2026-08-07-ptc-executor-collapse.zh.md: 03f93a323533b8507043c2fa8653b4c51c5fd56e +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire: + en: 7958ca7ba1201af2 + zh: bc7f74c91444eed6 +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/problem: + en: a6fcd5114ffde259 + zh: 05940375a30756d0 +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/decision: + en: 66f55639766a6d02 + zh: a8819b045463a927 +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/alternatives-considered: + en: 6119e2aff3b6be5a + zh: e01a6c669a9ec6aa +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/alternatives-considered/filter-get-the-registry-view-by-mode: + en: 31b6fed689eea5db + zh: ace070ad616bca62 +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/alternatives-considered/filter-at-the-agent-loop-entry: + en: 9dbdb9939baccd49 + zh: 11437030cd211000 +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/alternatives-considered/reject-via-a-shipped-guard: + en: 9011947651f58129 + zh: 1d4a0c622680f13f +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/alternatives-considered/keep-schema-omission-only-status-quo: + en: 0d4759646b19917a + zh: 1a1bef7617c52f9c +/agent-note-ptc-mode-collapses-the-executor-not-just-the-wire/consequences: + en: 9120e68ba25bd30a + zh: 6ec4bea5df8668a1 diff --git a/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml index 027bf3babb..e86b334e45 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-child-agents-join-their-parent-preset.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md -2026-08-10-child-agents-join-their-parent-preset.md: 7de247a7a3f75f467ebf5c8387eb8fb8e2f7e009 -2026-08-10-child-agents-join-their-parent-preset.zh.md: c9d392cd75ee9c06005aa53f4f68a8153fc7633b +/agent-note-child-agents-join-their-parent-s-preset-composition: + en: ad623e2fef93c033 + zh: a37abf059f39aefa +/agent-note-child-agents-join-their-parent-s-preset-composition/problem: + en: 0b8d70c073523bc1 + zh: 6bba76a467508149 +/agent-note-child-agents-join-their-parent-s-preset-composition/decision: + en: 13a3452527f35bc6 + zh: 6c319f554184e578 +/agent-note-child-agents-join-their-parent-s-preset-composition/alternatives-considered: + en: 88a48e6bba3d30e2 + zh: 842d835a7a9db434 +/agent-note-child-agents-join-their-parent-s-preset-composition/testing: + en: 458a2aa1ae046253 + zh: 59fad52e881989ed +/agent-note-child-agents-join-their-parent-s-preset-composition/consequences: + en: 09fd94b5ceaa95e6 + zh: bf8e4e22f5b70b45 diff --git a/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml index 5c76962fef..63f61fbc54 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-17-durable-web-queue-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.md -2026-08-17-durable-web-queue-recovery.md: 0f18cd7a2b9491d6a8bdfa960409d97a5338f95d -2026-08-17-durable-web-queue-recovery.zh.md: 476c1b2fe88156ba8c34e281ff1d1e5663c7913c +/agent-note-recover-the-web-queue-from-durable-inbox-state: + en: df261933e13adb0a + zh: 369772acd6fe0e48 +/agent-note-recover-the-web-queue-from-durable-inbox-state/problem: + en: 79fe907a6201ed27 + zh: 55d0de6b6518f946 +/agent-note-recover-the-web-queue-from-durable-inbox-state/decision: + en: 2e64d021a2009eec + zh: b3f7d5ba2a6f6322 +/agent-note-recover-the-web-queue-from-durable-inbox-state/verification: + en: bab880ec7de69673 + zh: 769f2641856fde60 +/agent-note-recover-the-web-queue-from-durable-inbox-state/alternatives-considered: + en: df29962ab5d779ee + zh: 2593f0973b725d54 +/agent-note-recover-the-web-queue-from-durable-inbox-state/consequences: + en: ffa16214aa1f0efd + zh: 7915524221acac0c diff --git a/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml index 3ef4fd1d6c..fcd7dd96b2 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-17-subagent-message-settlement-ordering.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.md -2026-08-17-subagent-message-settlement-ordering.md: b383dc290949a3a22ed48e1e639b145e39dbb211 -2026-08-17-subagent-message-settlement-ordering.zh.md: 330c19b20b966d9f719fb61ee1bf5272e0cc8287 +/agent-note-child-agent-messages-precede-their-settlement-notices: + en: b46c628c107fbdfe + zh: 829b71dae5e73e0f +/agent-note-child-agent-messages-precede-their-settlement-notices/problem: + en: 82e6c4d5db64a818 + zh: 3610573f1521409e +/agent-note-child-agent-messages-precede-their-settlement-notices/decision: + en: 94a44265545ff53e + zh: 06db7c1bacb6b120 +/agent-note-child-agent-messages-precede-their-settlement-notices/decision/ordering-across-parent-states: + en: 2bceedd85283e6ed + zh: 6c11a3519fe9b941 +/agent-note-child-agent-messages-precede-their-settlement-notices/decision/verification: + en: b2d6b562739ea61c + zh: 33f56b3220b00953 +/agent-note-child-agent-messages-precede-their-settlement-notices/alternatives-considered: + en: a81f4efd6c32125e + zh: d38898c6b3352ad8 +/agent-note-child-agent-messages-precede-their-settlement-notices/consequences: + en: 3b8532d48efb656a + zh: 971bced6f6bed59d diff --git a/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml index e2e60901af..d82479170d 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-24-alpha-routed-image-quality-ladders.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md -2026-08-24-alpha-routed-image-quality-ladders.md: cdf5e7bd908782781e66a4f6494428f0f174e258 -2026-08-24-alpha-routed-image-quality-ladders.zh.md: fbe8215b0ca1c606cd66d60fe1109d2f9aa1cbad +/agent-note-alpha-routed-image-quality-ladders-replace-colour-count-codec-routing: + en: b2c958d45911a787 + zh: b826c61174b3640f +/agent-note-alpha-routed-image-quality-ladders-replace-colour-count-codec-routing/problem: + en: bcb73f4711d40348 + zh: 6e26853ea4728e4d +/agent-note-alpha-routed-image-quality-ladders-replace-colour-count-codec-routing/decision: + en: aabf20046a7a15e9 + zh: dba0c5261a3af1e5 +/agent-note-alpha-routed-image-quality-ladders-replace-colour-count-codec-routing/alternatives-considered: + en: 95a42e3e2313790b + zh: 116043c295d7aa12 +/agent-note-alpha-routed-image-quality-ladders-replace-colour-count-codec-routing/consequences: + en: 3ce6acd960671b52 + zh: 1ec81d76130d338d diff --git a/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml index 989c66f145..3ffc1ac876 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-31-win32-picker-path-string-read.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.md -2026-08-31-win32-picker-path-string-read.md: 63b2a2ea5ee88b5fa3ac79aca98350f58067fd1e -2026-08-31-win32-picker-path-string-read.zh.md: 8afc6610a0cf1c7c8649f9e1c62c26b3d89f5a03 +/agent-note-read-the-win32-picker-path-without-a-fixed-size-unmanaged-view: + en: abd03a3bff03600e + zh: 8a4a21ecc7cae78b +/agent-note-read-the-win32-picker-path-without-a-fixed-size-unmanaged-view/problem: + en: 1835aa6f42229a1f + zh: 928cb408e879fc41 +/agent-note-read-the-win32-picker-path-without-a-fixed-size-unmanaged-view/decision: + en: 831ea941c84193ef + zh: b7a1842d9843bf0d +/agent-note-read-the-win32-picker-path-without-a-fixed-size-unmanaged-view/alternatives-considered: + en: 8c0a9a1620504f50 + zh: 7f439ecb6ca5a618 +/agent-note-read-the-win32-picker-path-without-a-fixed-size-unmanaged-view/consequences: + en: 616bc4293a0b1856 + zh: ed8cf574d7a126cc diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml index 573390ed70..40c0a993a5 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-03-normalized-unread-fs-tool-diagnostic.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md -2026-09-03-normalized-unread-fs-tool-diagnostic.md: 01287a080641e1272f9759532ae7333866c6352e -2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md: 5aba96ce761376e8609267f251433fee11c9f114 +/agent-note-normalized-unread-filesystem-tool-diagnostic: + en: 103e786a598d2ee3 + zh: 13d637140685f63a +/agent-note-normalized-unread-filesystem-tool-diagnostic/problem: + en: 89cfcff2f9895623 + zh: dd1cd21d431e5161 +/agent-note-normalized-unread-filesystem-tool-diagnostic/decision: + en: 0c59c5193131ca44 + zh: da48f204aef62c99 +/agent-note-normalized-unread-filesystem-tool-diagnostic/alternatives-considered: + en: dbb9cbdafd0f2764 + zh: ed8bef943f12b21d +/agent-note-normalized-unread-filesystem-tool-diagnostic/consequences: + en: 20abbdbfa3aa4edc + zh: d0555aac68cb7a1f diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml index 3c4cb67d7d..9789836b6d 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-03-root-marker-metadata-failures.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.md -2026-09-03-root-marker-metadata-failures.md: e31ef646d7190a1239684f7b66a118deb9ae1087 -2026-09-03-root-marker-metadata-failures.zh.md: 4b62f4e01ba56074a10dbcb3ae37c4478fe82379 +/agent-note-root-marker-metadata-failures: + en: c351be96177b2ea5 + zh: a094d77aaffd1fbe +/agent-note-root-marker-metadata-failures/problem: + en: 3d88594600ede55b + zh: fd9e36f5b72d8aee +/agent-note-root-marker-metadata-failures/decision: + en: 8131fbf06980774f + zh: 21a3c48edbe9ab99 +/agent-note-root-marker-metadata-failures/alternatives-considered: + en: 2070e244fd8ffc91 + zh: 31324cd0d5ace0a9 +/agent-note-root-marker-metadata-failures/consequences: + en: a459fc1a7a8353a3 + zh: 144b373b0988b633 +/agent-note-root-marker-metadata-failures/verification: + en: 4c912e5effdaedb7 + zh: 1b28ba3dea9170dd diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml index f4d9692b37..c75a62877c 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-03-user-owned-goal-pause-activation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.md -2026-09-03-user-owned-goal-pause-activation.md: d58566938ef87ca2f25fd94d726dc28209f61b2b -2026-09-03-user-owned-goal-pause-activation.zh.md: 675d61009f0a7d0f98c8f6d7568466d6651f2a42 +/agent-note-user-owned-goal-pause-exposes-live-activation: + en: 07749eb6ac180964 + zh: b9c1165739fc45bf +/agent-note-user-owned-goal-pause-exposes-live-activation/problem: + en: 9f044f22e6782773 + zh: 6c17c53aa75280fd +/agent-note-user-owned-goal-pause-exposes-live-activation/decision: + en: 2cc4ab097350a88f + zh: db10825a6285f3c5 +/agent-note-user-owned-goal-pause-exposes-live-activation/alternatives-considered: + en: 640afdb17164b06b + zh: 92d33c139c40b2a1 +/agent-note-user-owned-goal-pause-exposes-live-activation/consequences: + en: d73e412f853612ee + zh: 96630d28e3c431e1 +/agent-note-user-owned-goal-pause-exposes-live-activation/testing: + en: 9d103a90036f5d06 + zh: df5440c8a4640e93 diff --git a/.agents/notes/implemented/bug-fix/2026-09-04-busy-send-button-follows-enter-setting.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-04-busy-send-button-follows-enter-setting.i18n.yaml index 0dfc11edca..4248c352c7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-04-busy-send-button-follows-enter-setting.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-04-busy-send-button-follows-enter-setting.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-04-busy-send-button-follows-enter-setting.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-04-busy-send-button-follows-enter-setting.md -2026-09-04-busy-send-button-follows-enter-setting.md: 2db0848e3ce3b7a1b6b07ff6d6d23c06b23be5ef -2026-09-04-busy-send-button-follows-enter-setting.zh.md: 7062f60320c4bc56f15f57388e79df9ce0e45c2f +/agent-note-the-busy-send-button-follows-the-enter-setting: + en: d0e9f804958ee8ce + zh: e5cd102fbdd12ff1 +/agent-note-the-busy-send-button-follows-the-enter-setting/problem: + en: c378dfa9efcc0758 + zh: 785c3b9ee99c66a4 +/agent-note-the-busy-send-button-follows-the-enter-setting/decision: + en: 101e21100f8afd7d + zh: 76979af8aee15976 +/agent-note-the-busy-send-button-follows-the-enter-setting/verification: + en: eb886930b09445bd + zh: 1e671f8f81868490 +/agent-note-the-busy-send-button-follows-the-enter-setting/alternatives-considered: + en: d47aa278a2103890 + zh: 313f75c7fb8ccd5c +/agent-note-the-busy-send-button-follows-the-enter-setting/consequences: + en: a067e427615a682a + zh: d72074056e1def4a diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml index a2bba51f16..f08907aa62 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-continuous-client-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.md -2026-09-05-continuous-client-recovery.md: 2eacaca4f8d4b76ab8d82bb10bb8cfa4c80cbd65 -2026-09-05-continuous-client-recovery.zh.md: 96908b1217ca1caa17514e16522080fa342e6813 +/agent-note-continuous-client-connection-recovery: + en: f0fee6b344250d4c + zh: 713ea72ca8d6565a +/agent-note-continuous-client-connection-recovery/problem: + en: 70259bdedbf6b449 + zh: b0a3014c27483a09 +/agent-note-continuous-client-connection-recovery/decision: + en: db9ac3c08a3eaf0b + zh: 68c9ce30d8d5c7e2 +/agent-note-continuous-client-connection-recovery/alternatives-considered: + en: 2e94feca66d912af + zh: 8fc4e81b797d4553 +/agent-note-continuous-client-connection-recovery/consequences: + en: cd99c771043a23d5 + zh: 8559757fa8098fbe +/agent-note-continuous-client-connection-recovery/testing: + en: 39fdcfb5c6b52a96 + zh: 276de310ed1bbc39 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml index d62438d1f3..e0fdd0b674 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-nested-terminal-cards.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.md -2026-09-05-nested-terminal-cards.md: c5946a332f2879588cb6ee334404fdaa92a8cb28 -2026-09-05-nested-terminal-cards.zh.md: 74056014ce5b9ac38574c5551420a4e25808b9b4 +/agent-note-nested-terminal-cards: + en: acc1dadeee5e1aeb + zh: a589c28cf1aff307 +/agent-note-nested-terminal-cards/problem: + en: 1bd9adbd90b66871 + zh: 0a87672dffc07bae +/agent-note-nested-terminal-cards/decision: + en: 075b10a41974411e + zh: cc3341afff14f61b +/agent-note-nested-terminal-cards/alternatives-considered: + en: c585eb14efb10514 + zh: c5a1cc87fc4edacc +/agent-note-nested-terminal-cards/consequences: + en: a7abcb5b95a020cc + zh: 27fe3216944de8c3 +/agent-note-nested-terminal-cards/verification: + en: 0133972e958fccce + zh: 52d4d3e29b7346e0 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml index 2653e7d928..3bcf021adf 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-patch-plugin-file-urls.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.md -2026-09-05-patch-plugin-file-urls.md: bad63355ce74b520b5e49b94deeefb2d648b71f4 -2026-09-05-patch-plugin-file-urls.zh.md: 775a576324dd2856f490cf3ce3ba907965737fc2 +/agent-note-file-urls-for-inserted-patch-plugins: + en: 0da1360de4441566 + zh: aa617df23150096d +/agent-note-file-urls-for-inserted-patch-plugins/problem: + en: 68de71db96c5e4b5 + zh: c88db125cddb54a4 +/agent-note-file-urls-for-inserted-patch-plugins/decision: + en: 09bb824857b8fb60 + zh: 859da30ff296688c +/agent-note-file-urls-for-inserted-patch-plugins/alternatives-considered: + en: e53a86bc1c71a6ff + zh: 514b48c8734fca17 +/agent-note-file-urls-for-inserted-patch-plugins/consequences: + en: 9b9628919e52c617 + zh: 195935e5d905d81d diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml index e188205736..88960b1f51 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-pi-ai-upgrade-compatibility.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md -2026-09-05-pi-ai-upgrade-compatibility.md: e28d911facae33fcf278a6824376f889e3416d77 -2026-09-05-pi-ai-upgrade-compatibility.zh.md: 408669ddc963a505254529acaab4c19e9774c6b1 +/agent-note-pi-ai-upgrade-compatibility: + en: faa0207498bd36c7 + zh: 2c6c209849dcce32 +/agent-note-pi-ai-upgrade-compatibility/problem: + en: 0a106a9d74115ce5 + zh: a65945e32455944e +/agent-note-pi-ai-upgrade-compatibility/decision: + en: 978b93bba58cfaf9 + zh: 847360ba75d67abc +/agent-note-pi-ai-upgrade-compatibility/alternatives-considered: + en: bcfd595bb17c3cd6 + zh: b7d4346e9c50f95d +/agent-note-pi-ai-upgrade-compatibility/consequences: + en: 0b634c9d7567aa57 + zh: c8ae82694e5fae12 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml index 623fcdf1b1..57f613df55 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-session-reference-model-budget.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.md -2026-09-05-session-reference-model-budget.md: 0654f2b89187727668fddb97ab6e982bacd82dc1 -2026-09-05-session-reference-model-budget.zh.md: 84f4fee76c7fb54f3ec37f0ae3417cc56d772af7 +/agent-note-model-relative-session-reference-budgets: + en: 6d4d5e9c678c93cb + zh: 7023bca0480a27df +/agent-note-model-relative-session-reference-budgets/problem: + en: 2bc7bc4083a96c5d + zh: d0d290871def4abf +/agent-note-model-relative-session-reference-budgets/decision: + en: e686c4ed659fc44c + zh: 41484c0431a53177 +/agent-note-model-relative-session-reference-budgets/alternatives-considered: + en: 77148c41d109895a + zh: dba534347f0e0877 +/agent-note-model-relative-session-reference-budgets/consequences: + en: 6ee6a4b3229ff378 + zh: 9e30e71ac15da8c4 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml index 577e94fdc8..05f653cf57 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-session-reference-spill-reuse.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.md -2026-09-05-session-reference-spill-reuse.md: 2a24e3adf28c70df8feb726700376df6f06dee87 -2026-09-05-session-reference-spill-reuse.zh.md: 346ed1a39ee65a560cf9e74e519ae45c2ce133e1 +/agent-note-reuse-spill-storage-for-truncated-session-references: + en: 9691f4ba51c41f8b + zh: 5c1719f1ef901639 +/agent-note-reuse-spill-storage-for-truncated-session-references/problem: + en: 50a1ef10604acb5f + zh: 128abfd3e43740dc +/agent-note-reuse-spill-storage-for-truncated-session-references/decision: + en: 058598a9e6c65fcf + zh: 7760170bbc53396d +/agent-note-reuse-spill-storage-for-truncated-session-references/alternatives-considered: + en: fccf1c25876b92a0 + zh: 7d5c7c3d240132c3 +/agent-note-reuse-spill-storage-for-truncated-session-references/consequences: + en: 2bff957549afe59b + zh: 30c6be54168fe183 +/agent-note-reuse-spill-storage-for-truncated-session-references/verification: + en: e015a599fc71a65f + zh: 0812b5b9a64a8673 +/agent-note-reuse-spill-storage-for-truncated-session-references/related-decisions: + en: 7a53914026e82df7 + zh: 3c802bbf63117485 diff --git a/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml index 69715a797c..1e5d9065c2 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-environment-prompt-suffix.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.md -2026-09-06-environment-prompt-suffix.md: 3438df0fec7b3296084c94b7db68d2800c6d6c98 -2026-09-06-environment-prompt-suffix.zh.md: 102d1196639ac7d7a754a24fc5a93bc93c1d05ba +/agent-note-environment-facts-follow-reusable-prompt-instructions: + en: 8677e5d20233627f + zh: 684772490164fbdf +/agent-note-environment-facts-follow-reusable-prompt-instructions/problem: + en: 7b20207cd4dc1583 + zh: ca5014aa437a5239 +/agent-note-environment-facts-follow-reusable-prompt-instructions/decision: + en: 0f28a61d659c0f4d + zh: d2ef431d15a54d57 +/agent-note-environment-facts-follow-reusable-prompt-instructions/alternatives-considered: + en: 9fb4ff8a8786ce2d + zh: 25820720365b489f +/agent-note-environment-facts-follow-reusable-prompt-instructions/consequences: + en: 212b29160c254854 + zh: e6a1ea253e8f7780 +/agent-note-environment-facts-follow-reusable-prompt-instructions/testing: + en: d5132186efc6afcd + zh: e5cc036c7c8ed68e diff --git a/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml index 65ea0bac5e..be90b83299 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-windows-python-console-spawn-wait.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.md -2026-09-06-windows-python-console-spawn-wait.md: 036062bdf459e4cbb69a6c31d3160c78ec1fad4c -2026-09-06-windows-python-console-spawn-wait.zh.md: d0870be84066b885e1622438a9fbc277f56a6bcf +/agent-note-wait-for-the-windows-python-console-runtime: + en: 97ffbd17152279cc + zh: 9a223670f273471b +/agent-note-wait-for-the-windows-python-console-runtime/problem: + en: 26ea75714d6fbbea + zh: 49441436e362a868 +/agent-note-wait-for-the-windows-python-console-runtime/decision: + en: 6ef15038eb5e0786 + zh: 92e319fbb8133d52 +/agent-note-wait-for-the-windows-python-console-runtime/alternatives-considered: + en: 2cc100a4b8724d40 + zh: 6ba47c76f304a460 +/agent-note-wait-for-the-windows-python-console-runtime/consequences: + en: ec5c2a7082012ed5 + zh: 32027ea20bd32acf diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml index 43f6f3b14c..130a3812c0 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-pi-ai-settings-catalog-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md -2026-09-07-pi-ai-settings-catalog-recovery.md: 21fe532a491775ff875f6b9bcb000d917a95e13c -2026-09-07-pi-ai-settings-catalog-recovery.zh.md: 80bd0758e13b767671f4cec52ee3832c9250651f +/agent-note-repairable-pi-ai-settings-after-catalog-changes: + en: 69bf6edd0515636c + zh: cb5039a98dc8b736 +/agent-note-repairable-pi-ai-settings-after-catalog-changes/problem: + en: acc6a5afd829fde0 + zh: a2173b59b670efe2 +/agent-note-repairable-pi-ai-settings-after-catalog-changes/decision: + en: 37034d76d7542f46 + zh: a6423ba488fe272c +/agent-note-repairable-pi-ai-settings-after-catalog-changes/alternatives-considered: + en: 1dcabe193953fa1b + zh: 02263349cdbdc843 +/agent-note-repairable-pi-ai-settings-after-catalog-changes/consequences: + en: d2f89ce8cec55c6e + zh: 20fab7854366ae05 +/agent-note-repairable-pi-ai-settings-after-catalog-changes/testing: + en: 30c8172b88231251 + zh: 54aee9d1dffa8566 diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml index 71b7d891d1..53a10eeede 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-typert-package-local-forwarding-imports.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md -2026-09-07-typert-package-local-forwarding-imports.md: 33e4334edef732b9c498ad2397151bd9c2c16f1f -2026-09-07-typert-package-local-forwarding-imports.zh.md: ea4babdb4b58981fb16f499c7986279fa18dbc58 +/agent-note-follow-package-local-forwarding-modules-in-typert-references: + en: ebacf2fc1c764589 + zh: c14b1752a01b2775 +/agent-note-follow-package-local-forwarding-modules-in-typert-references/problem: + en: 0ed0703cdd876132 + zh: ab759d1a2137bdd8 +/agent-note-follow-package-local-forwarding-modules-in-typert-references/decision: + en: e828847b069ef3f8 + zh: 95e9425c02dd8215 +/agent-note-follow-package-local-forwarding-modules-in-typert-references/alternatives-considered: + en: 49a0984c31c2b993 + zh: fb6d093474130a75 +/agent-note-follow-package-local-forwarding-modules-in-typert-references/consequences: + en: 7e196e1cffcb31e1 + zh: 7d096507578c1731 diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml index 0a54d83ab9..6088c5898e 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-win32-picker-foreground-alt-key.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md -2026-09-07-win32-picker-foreground-alt-key.md: cd1bae56845c74bf8fb0b3c0e6b8e6bab8032daf -2026-09-07-win32-picker-foreground-alt-key.zh.md: 8cbacaee97892b2ba6feb3d0250212fa9d393376 +/agent-note-foreground-activation-for-the-win32-picker-via-a-synthesized-alt-press: + en: bbd08341a635d6a8 + zh: 94d4ea2412237630 +/agent-note-foreground-activation-for-the-win32-picker-via-a-synthesized-alt-press/problem: + en: b21a34182868057e + zh: 54cb143a2a11479b +/agent-note-foreground-activation-for-the-win32-picker-via-a-synthesized-alt-press/decision: + en: d4cff7cc9b5c9379 + zh: a8f3e238799a18ce +/agent-note-foreground-activation-for-the-win32-picker-via-a-synthesized-alt-press/alternatives-considered: + en: dd3491b3b760f330 + zh: 81ca7b6603379713 +/agent-note-foreground-activation-for-the-win32-picker-via-a-synthesized-alt-press/consequences: + en: 6e7c7c46cc48a95d + zh: bbed46fb61e53700 diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml index 4f985d74f7..7fc8e02b71 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-built-bundle-css-exemption.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.md -2026-09-10-built-bundle-css-exemption.md: e5a55689696f885b8ea9411a5b3a7598295fff35 -2026-09-10-built-bundle-css-exemption.zh.md: 1c1aab35df72497946b02bf2a7f67a2271c804e5 +/agent-note-built-bundle-exemption-for-a-failing-stylesheet: + en: 7eea80c07cea261d + zh: 936523023c0b527d +/agent-note-built-bundle-exemption-for-a-failing-stylesheet/problem: + en: ca5c97dd0ad51b66 + zh: 8491ee495b0c625e +/agent-note-built-bundle-exemption-for-a-failing-stylesheet/decision: + en: cd272aa1bfd34a14 + zh: d184be63053f73b8 +/agent-note-built-bundle-exemption-for-a-failing-stylesheet/alternatives-considered: + en: 7f0eb995b7f00d73 + zh: aaf7b18f7bb2c20d +/agent-note-built-bundle-exemption-for-a-failing-stylesheet/consequences: + en: 767857f0bbd93ca8 + zh: f49bf34e304a7dee diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml index 2ff4007876..f98968b567 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-deepseek-image-token-calculator-v41.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md -2026-09-10-deepseek-image-token-calculator-v41.md: 668738221ebe3e634be7e4fe9d07c9627e0ceb4a -2026-09-10-deepseek-image-token-calculator-v41.zh.md: a483282c6da667c2b8e32accb091e065419d44fc +/agent-note-deepseek-image-token-estimator-on-the-v41-calculator: + en: 3e0b96f522d5e2c9 + zh: a05009e8f9cbe5d4 +/agent-note-deepseek-image-token-estimator-on-the-v41-calculator/problem: + en: c47a183a3192d1ae + zh: bbc157ff44423dd3 +/agent-note-deepseek-image-token-estimator-on-the-v41-calculator/decision: + en: 17f8c045d3222266 + zh: aead3e0de01980d9 +/agent-note-deepseek-image-token-estimator-on-the-v41-calculator/alternatives-considered: + en: 8f5bb52220ead193 + zh: f267fda075b19963 +/agent-note-deepseek-image-token-estimator-on-the-v41-calculator/consequences: + en: 0a41bb795e221c3f + zh: b4840b79c78691cf diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml index ece05b1229..eb27fa1ee7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-deepseek-v41-request-image-projection.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md -2026-09-10-deepseek-v41-request-image-projection.md: 2bf7ac3f7f09ff7aea1067030f4474306d3f9a8e -2026-09-10-deepseek-v41-request-image-projection.zh.md: 4f0a8cfd3a71d54a54bf74d6819235ed7d0749f8 +/agent-note-deepseek-request-images-on-the-published-token-grid: + en: 67401dae42c79c06 + zh: 19ab8d82fec9ec25 +/agent-note-deepseek-request-images-on-the-published-token-grid/problem: + en: 3c86cfcbd6895dc5 + zh: 68cb8bd4c1ef2d24 +/agent-note-deepseek-request-images-on-the-published-token-grid/decision: + en: 0c1257b4fd77d7ad + zh: b1134f24c8f58ded +/agent-note-deepseek-request-images-on-the-published-token-grid/alternatives-considered: + en: c5d3470b62129fde + zh: 26c9abf1e4a4f49f +/agent-note-deepseek-request-images-on-the-published-token-grid/consequences: + en: 95bc8d0d09928dee + zh: 090292fa154e854f diff --git a/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml index 29767853c0..aa5f93f3c7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-incremental-terminal-retention.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.md -2026-09-11-incremental-terminal-retention.md: 7e2507775bc39ed2599c2af1173f949bbf352145 -2026-09-11-incremental-terminal-retention.zh.md: 6c6fb95fa0c593ae2b7abb0007d5e7c6fc9f4e7d +/agent-note-incremental-terminal-retention: + en: b00300b3ace789da + zh: c267be719b3c8814 +/agent-note-incremental-terminal-retention/problem: + en: 0c3232a4a2429315 + zh: c6b3c6224bc9031d +/agent-note-incremental-terminal-retention/decision: + en: 43bb3c2d0d561231 + zh: 8dacb0720f28d490 +/agent-note-incremental-terminal-retention/measurement-design: + en: 925815f8ae326179 + zh: 188ee3f695ece8de +/agent-note-incremental-terminal-retention/measurement-design/local-reference-measurements: + en: a049c0a118648de7 + zh: 2c31044ff11b9029 +/agent-note-incremental-terminal-retention/alternatives-considered: + en: 0af1fcbc28320b5b + zh: 8e1cfc843821dd77 +/agent-note-incremental-terminal-retention/consequences: + en: c60008ba652dffd2 + zh: 3210329182096f39 diff --git a/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml index d3c3388a18..192ea7ceec 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-linux-scope-direct-kill-settlement.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md -2026-09-12-linux-scope-direct-kill-settlement.md: e89d8f801d6f7fb1309f50e0bc3dbad69aa797d0 -2026-09-12-linux-scope-direct-kill-settlement.zh.md: 7ab43107491ec24d5e39a62c401d245b61bb744d +/agent-note-join-direct-termination-before-rejecting-linux-scope-cleanup: + en: 6a72b66b6d0cf21b + zh: be432bfebb8e9919 +/agent-note-join-direct-termination-before-rejecting-linux-scope-cleanup/problem: + en: be042a28c1154171 + zh: 7b8356c9dcb159be +/agent-note-join-direct-termination-before-rejecting-linux-scope-cleanup/decision: + en: 75b071e48715ff29 + zh: 3f1d710f54ed3b1b +/agent-note-join-direct-termination-before-rejecting-linux-scope-cleanup/alternatives-considered: + en: ea3f33dd6c9bab88 + zh: 6f274fcd86b231a7 +/agent-note-join-direct-termination-before-rejecting-linux-scope-cleanup/consequences: + en: 4f7e7535b49b22fe + zh: 10447b3c42a341a2 diff --git a/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml index 2f76639c0d..baae5ed39f 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-13-partitioned-coverage-location-canonicalization.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md -2026-09-13-partitioned-coverage-location-canonicalization.md: 54e5aaefe9551d1357f1c60201212873a1c7aef7 -2026-09-13-partitioned-coverage-location-canonicalization.zh.md: 1aa4b8de844a1f0e544d2bbb223641dbbfeff3da +/agent-note-canonicalize-partition-coverage-locations-before-the-blob-merge: + en: 9346bcf9fc59bea8 + zh: 170ebd969ac038bd +/agent-note-canonicalize-partition-coverage-locations-before-the-blob-merge/problem: + en: c2f8792fb6ec46d1 + zh: cc01e2e2ff14f367 +/agent-note-canonicalize-partition-coverage-locations-before-the-blob-merge/decision: + en: 07f37eb8430ef8ee + zh: bc2910040b90291c +/agent-note-canonicalize-partition-coverage-locations-before-the-blob-merge/divergent-statement-maps-across-vite-environments: + en: 4f6d088fd7e272fc + zh: d44463ee8485b060 +/agent-note-canonicalize-partition-coverage-locations-before-the-blob-merge/testing: + en: 59a8515f97eb4c63 + zh: 86d655d454da2c63 +/agent-note-canonicalize-partition-coverage-locations-before-the-blob-merge/alternatives-considered: + en: 8c7efd287cf0e56b + zh: 2ed0477918e10f4e +/agent-note-canonicalize-partition-coverage-locations-before-the-blob-merge/consequences: + en: c7a2e99922697cb6 + zh: 0c98a57b00263bf8 diff --git a/.agents/notes/implemented/bug-fix/2026-09-14-chat-presentation-defaults.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-14-chat-presentation-defaults.i18n.yaml index 9ce88177ba..e671a8aa27 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-14-chat-presentation-defaults.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-14-chat-presentation-defaults.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-chat-presentation-defaults.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-14-chat-presentation-defaults.md -2026-09-14-chat-presentation-defaults.md: 6703a14e2ad108c4b43dd50692a44c159cf3ea5a -2026-09-14-chat-presentation-defaults.zh.md: 67ca433339ecf6e44d3f74b6c3ff9e465f802b0b +/agent-note-keep-chat-presentation-independent-of-trajectory-inspection: + en: 72d5bc0911e0bc3f + zh: 1fc58f89bdc53b56 +/agent-note-keep-chat-presentation-independent-of-trajectory-inspection/problem: + en: 2102a58c1baafe54 + zh: 939872d86e013f94 +/agent-note-keep-chat-presentation-independent-of-trajectory-inspection/decision: + en: f77e394352fe8d8e + zh: 7c4c9b066874dc9b +/agent-note-keep-chat-presentation-independent-of-trajectory-inspection/alternatives-considered: + en: f4c1b9c9998e3355 + zh: f684e39ffabce5e6 +/agent-note-keep-chat-presentation-independent-of-trajectory-inspection/consequences: + en: bb15d68e46b10b8e + zh: 8506ab5775d04fe8 diff --git a/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.i18n.yaml index 286919457a..8a44818fd8 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-web-diff-context.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.md -2026-09-14-web-diff-context.md: 072af0966689d475d7fdd1df83861fa847f3745f -2026-09-14-web-diff-context.zh.md: cd165a443451fc5ba580078b1b431a2788671dbe +/agent-note-web-diff-cards-compare-contextual-content: + en: 2dc5ae1577ba6173 + zh: 0b580f4e70eddc72 +/agent-note-web-diff-cards-compare-contextual-content/problem: + en: 73aa63782984835f + zh: 41982214968dcca8 +/agent-note-web-diff-cards-compare-contextual-content/decision: + en: d8c9e2af5843c87d + zh: 5487925fa1a66da8 +/agent-note-web-diff-cards-compare-contextual-content/alternatives-considered: + en: b5d00cc913db27c9 + zh: ef72c91cff5ebcce +/agent-note-web-diff-cards-compare-contextual-content/measurement: + en: 839be054edf51392 + zh: 3d2a51e634b39eb2 +/agent-note-web-diff-cards-compare-contextual-content/consequences: + en: 1900b6984a59765c + zh: 8f3755fcdf8f2562 diff --git a/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml index d98d216298..4816998bc8 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-windows-lock-release-probe.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.md -2026-09-14-windows-lock-release-probe.md: 76a21f655fc8c1b299e3507beffabfacde3ac0d9 -2026-09-14-windows-lock-release-probe.zh.md: 292203d3931225f0000d56cd5cb5d700ecb0bcc7 +/agent-note-windows-lock-release-before-contention-probing: + en: ec7e0474bd96df26 + zh: 20a70a6284cb0269 +/agent-note-windows-lock-release-before-contention-probing/problem: + en: cc9630ce8e232e8a + zh: 16f3541a58eac0ef +/agent-note-windows-lock-release-before-contention-probing/decision: + en: 9230417f2af237d4 + zh: 6fbef7a6d6e1e4d0 +/agent-note-windows-lock-release-before-contention-probing/alternatives-considered: + en: ba6d9e4c01c8f25b + zh: 8899bcf11d45b258 +/agent-note-windows-lock-release-before-contention-probing/consequences: + en: fc268a94ceeb3a96 + zh: b14be62df4a4bfad diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-client-session-blank-reconciliation.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-15-client-session-blank-reconciliation.i18n.yaml index 154afe129e..196679568b 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-client-session-blank-reconciliation.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-15-client-session-blank-reconciliation.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-client-session-blank-reconciliation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-15-client-session-blank-reconciliation.md -2026-09-15-client-session-blank-reconciliation.md: 7213636e32702c4c51887adba3da019f49b8703c -2026-09-15-client-session-blank-reconciliation.zh.md: 4b50340fea668b6d850c1d00787dda3874b61e0c +/agent-note-keep-accepted-session-presentation-across-list-refreshes: + en: cb6cc54ba8dbdb04 + zh: 49155298ed676aa9 +/agent-note-keep-accepted-session-presentation-across-list-refreshes/problem: + en: 43f5cb3e859ff15c + zh: 6aaf24dbd90601ba +/agent-note-keep-accepted-session-presentation-across-list-refreshes/decision: + en: a96b274615d2b533 + zh: 1610d9bc4bddd29f +/agent-note-keep-accepted-session-presentation-across-list-refreshes/alternatives-considered: + en: c1d81465f7ae6906 + zh: 668641e19a3e5088 +/agent-note-keep-accepted-session-presentation-across-list-refreshes/consequences: + en: 488d87360f50c682 + zh: 68408e517189ac93 +/agent-note-keep-accepted-session-presentation-across-list-refreshes/verification: + en: 4c16904319ae2745 + zh: 06bf9126b7f504ec +/agent-note-keep-accepted-session-presentation-across-list-refreshes/related-decisions: + en: 99d6b7e450a8dc09 + zh: 46a6df4730514668 diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml index d3b6770fac..a4a8a32d4e 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-linear-session-list-cache.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.md -2026-09-15-linear-session-list-cache.md: fb09950f77c224d2b85bb76792bdf8c3c87e33f5 -2026-09-15-linear-session-list-cache.zh.md: b877f0659fff4e1b3d48aa4250e634120ddc365f +/agent-note-linear-session-list-cache-reconciliation: + en: 7b6289de90982e71 + zh: 0c020de607402bbd +/agent-note-linear-session-list-cache-reconciliation/problem: + en: b94ff168ba0310a8 + zh: 8d9fe4af8b047c86 +/agent-note-linear-session-list-cache-reconciliation/decision: + en: 1d85980590014837 + zh: 2e03befc8ac84f0e +/agent-note-linear-session-list-cache-reconciliation/alternatives-considered: + en: 2085e3ccec11084a + zh: 55f5f5156d03e20c +/agent-note-linear-session-list-cache-reconciliation/consequences: + en: 54f1788954da5704 + zh: dad3478c7f3b46f6 diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml index 106b30af30..312f8cf353 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-messages-v1-base-url.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.md -2026-09-15-messages-v1-base-url.md: d9014756eacd1752495bfecb52860634ece08ae1 -2026-09-15-messages-v1-base-url.zh.md: 8f5803e4bdc68195164e187d1aa8cd537f71c5d6 +/agent-note-exact-v1-recognition-for-messages-base-urls: + en: 8e65836ea970f866 + zh: 54ef0765d2c39be8 +/agent-note-exact-v1-recognition-for-messages-base-urls/problem: + en: d6d0baca328ce1cd + zh: 152d5c7793674ed2 +/agent-note-exact-v1-recognition-for-messages-base-urls/decision: + en: 037fe11400e2e666 + zh: 5941d8f7364e45b8 +/agent-note-exact-v1-recognition-for-messages-base-urls/alternatives-considered: + en: 5615cd72ec115068 + zh: 772d9a557d46c43d +/agent-note-exact-v1-recognition-for-messages-base-urls/consequences: + en: 90a3b42b98cf99e0 + zh: 50e45634f1bd5ecb diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-trajectory-attachment-presentation.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-15-trajectory-attachment-presentation.i18n.yaml index cc6eb7ff26..da4262d0ea 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-trajectory-attachment-presentation.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-15-trajectory-attachment-presentation.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-trajectory-attachment-presentation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-15-trajectory-attachment-presentation.md -2026-09-15-trajectory-attachment-presentation.md: 03d737d67e626497bbcb957911b1578e0dadd5fb -2026-09-15-trajectory-attachment-presentation.zh.md: 55c63bf3d97de2e3e102e92730ce4d2637547d6b +/agent-note-consistent-trajectory-attachment-presentation: + en: 44651b6372b8e74e + zh: 8e1df22f6c969427 +/agent-note-consistent-trajectory-attachment-presentation/problem: + en: 3a02d475408db611 + zh: 49ef7f0e91917e13 +/agent-note-consistent-trajectory-attachment-presentation/decision: + en: 9a37a61d84813db3 + zh: 546cf3d1734289ee +/agent-note-consistent-trajectory-attachment-presentation/decision/ownership: + en: d453afd765988e76 + zh: eeb4c7d40fe578dc +/agent-note-consistent-trajectory-attachment-presentation/alternatives-considered: + en: f32a7ff301caf058 + zh: fbea3a171a300aef +/agent-note-consistent-trajectory-attachment-presentation/consequences: + en: da70caa5b98ac85d + zh: 52a5379c3adaa62f +/agent-note-consistent-trajectory-attachment-presentation/verification: + en: 145819ab133854c3 + zh: f9a440d57c12a257 diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-desktop-window-menus.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-16-desktop-window-menus.i18n.yaml index 9c2cdd061a..c17e77792b 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-desktop-window-menus.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-16-desktop-window-menus.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-desktop-window-menus.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-16-desktop-window-menus.md -2026-09-16-desktop-window-menus.md: 8a5343404e0cb3d2e7c4e20248a8b29f3bfbec47 -2026-09-16-desktop-window-menus.zh.md: d6ee6412462aecf49557a7994a683d37bf8e7253 +/agent-note-desktop-standard-macos-window-menus: + en: 7a3fc575043bc839 + zh: 5ab70cfa35509b3e +/agent-note-desktop-standard-macos-window-menus/problem: + en: 75c201a0a687b59d + zh: 34593038f673d06f +/agent-note-desktop-standard-macos-window-menus/decision: + en: ea0310537d0251d9 + zh: daf3f8a745bb2872 +/agent-note-desktop-standard-macos-window-menus/alternatives-considered: + en: e2d3ed82f6247910 + zh: 7e449d21f0601f65 +/agent-note-desktop-standard-macos-window-menus/consequences: + en: 54527f9422525fb8 + zh: 285fd6ffda5ff4fd +/agent-note-desktop-standard-macos-window-menus/testing: + en: 0c05c0044532f891 + zh: cff254b44b3c7a2d diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml index e6974943f5..d0f3da21b3 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-messages-historical-tool-input.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.md -2026-09-16-messages-historical-tool-input.md: 85e4047bb5274eb7c7adb458d564e1268d4ea81e -2026-09-16-messages-historical-tool-input.zh.md: 5a8c31dbee32094f124102ccac9ffb7b8b81b177 +/agent-note-replay-malformed-historical-tool-input-through-messages: + en: 88cdfca30918b47f + zh: 1203d380805f81e4 +/agent-note-replay-malformed-historical-tool-input-through-messages/problem: + en: b9f848905bb31969 + zh: 7c56aab1a15cfc85 +/agent-note-replay-malformed-historical-tool-input-through-messages/decision: + en: ee7c586820c28e54 + zh: fced4d6c50c7d227 +/agent-note-replay-malformed-historical-tool-input-through-messages/alternatives-considered: + en: c7d7275282a83780 + zh: c0c570f156ac546f +/agent-note-replay-malformed-historical-tool-input-through-messages/consequences: + en: 4d1447eb8ea0f7f4 + zh: cf232f6bb1d60d4e diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-present-delayed-windows-installer.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-16-present-delayed-windows-installer.i18n.yaml index f8d7bd6adf..e64fb33fd5 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-present-delayed-windows-installer.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-16-present-delayed-windows-installer.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-present-delayed-windows-installer.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-16-present-delayed-windows-installer.md -2026-09-16-present-delayed-windows-installer.md: d4ffcfdc1183bbc414cfdd82595053c959a9975c -2026-09-16-present-delayed-windows-installer.zh.md: bf97ed8a4f6c7184d1e048c21f7975c90fb4a9cb +/agent-note-present-delayed-windows-installer: + en: 4451eeb66010bc3d + zh: 7b5e60d779a9eb41 +/agent-note-present-delayed-windows-installer/problem: + en: 7835e64ac8ea1825 + zh: aac3b323204b08b9 +/agent-note-present-delayed-windows-installer/decision: + en: adea34850b8df240 + zh: da68a90a4144092f +/agent-note-present-delayed-windows-installer/alternatives-considered: + en: 66f936fe39452162 + zh: 4d0e192fb37afffe +/agent-note-present-delayed-windows-installer/consequences: + en: 6431f3c88199ecaf + zh: 9f30f647fdab4e64 diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml index 61b6c1c780..3d896f268f 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-session-writer-held-feedback.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.md -2026-09-16-session-writer-held-feedback.md: 922987996c4abd32857cd0f54cec4394566cf97f -2026-09-16-session-writer-held-feedback.zh.md: 6a1aa7993a8f36c50cb5fed0180d6523af44c177 +/agent-note-session-writer-contention-feedback: + en: 31fc83d11f79fbac + zh: ec2e62f56a83ff3c +/agent-note-session-writer-contention-feedback/problem: + en: ce6f2ed854986c2a + zh: 74b28d3282f610e8 +/agent-note-session-writer-contention-feedback/decision: + en: a2c50e7614d183fd + zh: c4057682bc25cb23 +/agent-note-session-writer-contention-feedback/alternatives-considered: + en: 43f74d015db77ab1 + zh: 38c7ffda0a33ecac +/agent-note-session-writer-contention-feedback/consequences: + en: 230c23cceae0ad46 + zh: 8ec04813b825b509 diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml index b6d4fe5084..879cde4ff0 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-windows-subprocess-console-visibility.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.md -2026-09-16-windows-subprocess-console-visibility.md: 281525e960b049d5871cde9f5da5c8f928654440 -2026-09-16-windows-subprocess-console-visibility.zh.md: 04abf7154b4b384ca521b9d232c7dfb398f5ed99 +/agent-note-hide-windows-subprocess-console-windows-at-creation: + en: be47c56d2dd977d1 + zh: 3ab8a9a18e7f545d +/agent-note-hide-windows-subprocess-console-windows-at-creation/problem: + en: b76c3b25b8616076 + zh: d14facfdf3948bc4 +/agent-note-hide-windows-subprocess-console-windows-at-creation/decision: + en: 56b951a948c6d007 + zh: 301031638a642517 +/agent-note-hide-windows-subprocess-console-windows-at-creation/alternatives-considered: + en: 9dcf5702a5032d69 + zh: 493c2709d441d52c +/agent-note-hide-windows-subprocess-console-windows-at-creation/consequences: + en: 0bfe83068c6fe3ee + zh: 2bdc9eb64c6f7b66 diff --git a/.agents/notes/implemented/bug-fix/2026-09-17-thinking-markdown.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-17-thinking-markdown.i18n.yaml index 6377a233cb..9290c75e26 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-17-thinking-markdown.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-17-thinking-markdown.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-thinking-markdown.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-17-thinking-markdown.md -2026-09-17-thinking-markdown.md: 6990fc6277d7d1c0a088a50cfb88694b2d9c55c7 -2026-09-17-thinking-markdown.zh.md: 963626088e50a44bcf76c7fc7ec3653e93fcd2c9 +/agent-note-compact-markdown-for-thinking: + en: 2b71ec7a5294e982 + zh: 0c33248c5d07ec74 +/agent-note-compact-markdown-for-thinking/problem: + en: c14bd1618741736a + zh: dc1fff84736cb4f7 +/agent-note-compact-markdown-for-thinking/decision: + en: adb4f711ecf2011a + zh: 791f7bf3b8d23458 +/agent-note-compact-markdown-for-thinking/alternatives-considered: + en: d5bf82e0de012900 + zh: a639fd02e00b5d09 +/agent-note-compact-markdown-for-thinking/consequences: + en: d69b13246a34047c + zh: 4c1a6520053261ef diff --git a/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml index 259613bc28..4d97265632 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-messages-input-history-compatibility.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.md -2026-09-18-messages-input-history-compatibility.md: dd974fb1ae883716002a1381f4c374dee792b3b3 -2026-09-18-messages-input-history-compatibility.zh.md: 6e850328db63d5ae5cb508aa3529e9f2507182b0 +/agent-note-replay-assistant-blocks-in-messages-user-input: + en: 2928aedee63465ba + zh: 0492dcc6604e2292 +/agent-note-replay-assistant-blocks-in-messages-user-input/problem: + en: d42b7147df73f498 + zh: f77ef429363c2da8 +/agent-note-replay-assistant-blocks-in-messages-user-input/decision: + en: 0b5629b321be7181 + zh: 3449958cde376d59 +/agent-note-replay-assistant-blocks-in-messages-user-input/alternatives-considered: + en: 3801041c0f9c4d8a + zh: 71d80b08183e8b30 +/agent-note-replay-assistant-blocks-in-messages-user-input/consequences: + en: c1770c7aa4097c42 + zh: 80ab7f2b66408ad7 diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml index a49e4b2351..a1c2b57fdb 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-declared-session-attachment-carriers.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.md -2026-09-19-declared-session-attachment-carriers.md: 1619624800dc5e1ee8d6a4f4b64b84a6c80078c2 -2026-09-19-declared-session-attachment-carriers.zh.md: bd66b1c80469e2adbd7becc1b015d390978becc6 +/agent-note-declared-session-attachment-carriers: + en: ec696589b6d29694 + zh: fca0e8292a840d47 +/agent-note-declared-session-attachment-carriers/problem: + en: 2c3544ea223fd86c + zh: fee865c0ce374115 +/agent-note-declared-session-attachment-carriers/decision: + en: 7538fa848fbbeff8 + zh: 6fd10f3683cadef0 +/agent-note-declared-session-attachment-carriers/alternatives-considered: + en: 3307cfd109d19377 + zh: a0051b257807e6d0 +/agent-note-declared-session-attachment-carriers/consequences: + en: 9d028f075b96f121 + zh: c5da5f89f7b75efc +/agent-note-declared-session-attachment-carriers/verification: + en: f297ee8e56e7e69e + zh: e6bc44cb7711b778 diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml index e2f0f66dda..5618368313 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-session-local-subagent-migration.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.md -2026-09-19-session-local-subagent-migration.md: 26911ea6e2cb31126d13e4c8c6488ff3b45563e6 -2026-09-19-session-local-subagent-migration.zh.md: 673040a3dc73d3665e42013a4704ef2d5911b23d +/agent-note-complete-parent-catalogs-without-migrating-child-catalogs: + en: 352c234841bc0905 + zh: 89be7b695aec5931 +/agent-note-complete-parent-catalogs-without-migrating-child-catalogs/problem: + en: 5ca0c3232895a9dd + zh: cb89e5464d4a5f99 +/agent-note-complete-parent-catalogs-without-migrating-child-catalogs/decision: + en: 7a368a5ad8dc3e0c + zh: 11ca2af33de30d8f +/agent-note-complete-parent-catalogs-without-migrating-child-catalogs/alternatives-considered: + en: 7272107ab68ceefd + zh: 8b8bba44c9e0c402 +/agent-note-complete-parent-catalogs-without-migrating-child-catalogs/consequences: + en: 7caecc8516419375 + zh: cc966c325896737d diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml index bf6d6c2fd0..3b1c733004 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-v3-incomplete-child-catalog-evidence.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md -2026-09-19-v3-incomplete-child-catalog-evidence.md: 400a84f376a7babc0a95492ca33a3bcd0761cd79 -2026-09-19-v3-incomplete-child-catalog-evidence.zh.md: 535951630bc600647724d50107e74e83ab626739 +/agent-note-preserve-v3-sessions-with-incomplete-child-catalog-evidence: + en: ff7fbd846f8edf2f + zh: 8f4703ea0b0d7cc9 +/agent-note-preserve-v3-sessions-with-incomplete-child-catalog-evidence/problem: + en: a5d524599f02e77f + zh: b79687f999f4024c +/agent-note-preserve-v3-sessions-with-incomplete-child-catalog-evidence/decision: + en: cfd781300b663010 + zh: 6f7865d5619a1e52 +/agent-note-preserve-v3-sessions-with-incomplete-child-catalog-evidence/alternatives-considered: + en: b7ce0d1b6b280d7f + zh: 3deeaef73a3a7856 +/agent-note-preserve-v3-sessions-with-incomplete-child-catalog-evidence/consequences: + en: 9f8b6446f6cdea60 + zh: d0a07674bf8434c4 diff --git a/.agents/notes/implemented/bug-fix/2026-09-20-session-open-read-coordination.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-20-session-open-read-coordination.i18n.yaml index 802ab740bd..1ca3737cda 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-20-session-open-read-coordination.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-20-session-open-read-coordination.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-session-open-read-coordination.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-20-session-open-read-coordination.md -2026-09-20-session-open-read-coordination.md: a4907df1d7dd38e4c532c38fb6ff10362a4a3898 -2026-09-20-session-open-read-coordination.zh.md: 759a45d8c52a62ea7a0b30ceed4003f8804a42c3 +/agent-note-session-opening-cache-identity-and-read-ordering: + en: 1ea618d07f8d8f28 + zh: 25332949ef7af87e +/agent-note-session-opening-cache-identity-and-read-ordering/problem: + en: 490984caf5af4323 + zh: 273ac6284e1ff67f +/agent-note-session-opening-cache-identity-and-read-ordering/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-session-opening-cache-identity-and-read-ordering/decision/identify-the-cache-producer-with-a-service-owned-symbol: + en: 56bec761deb63aad + zh: 8b16c2b7582aeb3f +/agent-note-session-opening-cache-identity-and-read-ordering/decision/auxiliary-rpcs-wait-for-the-current-conversation-s-initial-open-to-succeed: + en: 3a09e82c1fb032e4 + zh: c1ef33b75ab0e734 +/agent-note-session-opening-cache-identity-and-read-ordering/decision/conversations-use-follow-catalog-branches-retain-explicit-reads: + en: 181653d75354df80 + zh: 7984321c5a2715d5 +/agent-note-session-opening-cache-identity-and-read-ordering/implementation-scope: + en: 84310b075ac5537b + zh: 6bf16dbf06353a39 +/agent-note-session-opening-cache-identity-and-read-ordering/alternatives-considered: + en: 7d64c8151ffef2a0 + zh: b899a22f4d070a78 +/agent-note-session-opening-cache-identity-and-read-ordering/consequences: + en: 51a45af1622d7e4d + zh: f33fecfa0f889af7 +/agent-note-session-opening-cache-identity-and-read-ordering/verification-and-known-gaps: + en: 13437882143e2025 + zh: 586bcd68eaa03969 +/agent-note-session-opening-cache-identity-and-read-ordering/relationship-to-existing-records: + en: 8b479aee5c808180 + zh: aa0220e664f9e9a6 diff --git a/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml index 259202f1a0..48e79b967c 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-windows-embedded-mandatory-update.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.md -2026-09-20-windows-embedded-mandatory-update.md: 99577a4d85adc3fe13ea0ae262d5aa1af6128237 -2026-09-20-windows-embedded-mandatory-update.zh.md: abe4a9577d8e11d8de2089dc53ef07433e10bbdb +/agent-note-windows-embedded-mandatory-update: + en: fb52005dc1f55b5d + zh: dda7e46555da6d03 +/agent-note-windows-embedded-mandatory-update/problem: + en: df8f2127905913d7 + zh: 64d27253ce39e031 +/agent-note-windows-embedded-mandatory-update/decision: + en: f238482836ae80da + zh: df856cba1b715056 +/agent-note-windows-embedded-mandatory-update/alternatives-considered: + en: 9564f979909f0743 + zh: 6730e42a123b707a +/agent-note-windows-embedded-mandatory-update/consequences: + en: 64cd6585a98f01cd + zh: 8bca9eb88aa55d8e diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml index 78d945e72c..82aabefd0d 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-21-multimodal-tool-result-retention.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.md -2026-09-21-multimodal-tool-result-retention.md: 41470724911d3086878d206f82c76ad9a4993146 -2026-09-21-multimodal-tool-result-retention.zh.md: 8e6d4953f7380d45235ac13f9f245e2e005f1abf +/agent-note-multimodal-tool-result-retention: + en: aa04c4148785f8ca + zh: b08c44c8484ea5d2 +/agent-note-multimodal-tool-result-retention/problem: + en: 9e8765ea40441f36 + zh: 3ca2616499d3c9fc +/agent-note-multimodal-tool-result-retention/decision: + en: a65eeedad585fc4b + zh: 82aae7ef0148282b +/agent-note-multimodal-tool-result-retention/alternatives-considered: + en: c670e96a46c93540 + zh: efccc4d3423e5ac0 +/agent-note-multimodal-tool-result-retention/consequences: + en: 7fdf51600bb0ffd7 + zh: 0ad7f06887b1c859 diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml index 4f16b7775b..48e34b2079 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-21-persistent-pwsh-keeps-controlled-prompt.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md -2026-09-21-persistent-pwsh-keeps-controlled-prompt.md: 3fd42b77d4536215f34c32643526dbb03d21674f -2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md: 88d4e2deef26af4ad92ef4a69d8ae17403027f70 +/agent-note-persistent-pwsh-keeps-the-backend-s-controlled-prompt: + en: 78c6e7e3340581dc + zh: 64e16ab608caa610 +/agent-note-persistent-pwsh-keeps-the-backend-s-controlled-prompt/problem: + en: 0cd51c293e96d9eb + zh: 6eb89ee3f1b7a851 +/agent-note-persistent-pwsh-keeps-the-backend-s-controlled-prompt/decision: + en: edd5cbb51ddad62f + zh: d7c41f09a9453992 +/agent-note-persistent-pwsh-keeps-the-backend-s-controlled-prompt/alternatives-considered: + en: a3920fa51dd5ac79 + zh: 29c3f8364f64115e +/agent-note-persistent-pwsh-keeps-the-backend-s-controlled-prompt/consequences: + en: d43b72fb5aa0c6da + zh: c4c9a27d5c7c6338 diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml index ceb40894c4..e10cbc61b1 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-22-chat-scroll-follow-and-footer-geometry.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md -2026-09-22-chat-scroll-follow-and-footer-geometry.md: 56cd1681eef23162df2595a138545ade25e34212 -2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md: 9979688d52373ae7a64a3f4fc22b932b43091b34 +/agent-note-separate-chat-clipping-and-independent-follow-intent: + en: a95aae5eecac228c + zh: 01b7df574c3d010f +/agent-note-separate-chat-clipping-and-independent-follow-intent/problem: + en: 8e4310ee05cf535c + zh: bd57ba36ebe8c201 +/agent-note-separate-chat-clipping-and-independent-follow-intent/decision: + en: afe3cf3bb5a92039 + zh: bb11f9f4bcd8f329 +/agent-note-separate-chat-clipping-and-independent-follow-intent/alternatives-considered: + en: 014e7974ce1cadae + zh: 63c1743c598413e4 +/agent-note-separate-chat-clipping-and-independent-follow-intent/verification: + en: 235dc4e251fa8124 + zh: 2c08ab5e14213b54 +/agent-note-separate-chat-clipping-and-independent-follow-intent/consequences: + en: aa1367b399806ab7 + zh: f98a8b416d9a70c8 diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml index 6ba4b3a015..6f58c8d30c 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-22-input-echo-admission-ownership.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.md -2026-09-22-input-echo-admission-ownership.md: 227857bd8168aa1d7f51b621737c2ed0ab572632 -2026-09-22-input-echo-admission-ownership.zh.md: 1d64de220a3c6d5c9357770175c79266b8f9f063 +/agent-note-input-echoes-retain-display-ownership-through-admission: + en: 987905631fdf4244 + zh: 2b2a1db249903717 +/agent-note-input-echoes-retain-display-ownership-through-admission/problem: + en: a56f673056a7d913 + zh: a06acdb9f3e1afd3 +/agent-note-input-echoes-retain-display-ownership-through-admission/decision: + en: b570ae20a428f554 + zh: b3cf1ebc56fbe78c +/agent-note-input-echoes-retain-display-ownership-through-admission/alternatives-considered: + en: 9ee59841301a61f4 + zh: 7ad35e485294dce1 +/agent-note-input-echoes-retain-display-ownership-through-admission/verification: + en: a1373e299a536929 + zh: 13405143c3bb9331 +/agent-note-input-echoes-retain-display-ownership-through-admission/consequences: + en: 027d6bae744c47e0 + zh: c9f397bc631298b9 diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml index 420cb47036..3a1ef4f137 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-22-windows-open-through-shell-resolution.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.md -2026-09-22-windows-open-through-shell-resolution.md: 7bfe559e7f26b96fa37d3bbed44f0403d4e51b59 -2026-09-22-windows-open-through-shell-resolution.zh.md: ff33455da1653f9d24f9ddcc21c1594e8875bb5e +/agent-note-windows-opens-go-through-explorer-exe: + en: 315c5e87180365ba + zh: 4bc29f09bb3900d3 +/agent-note-windows-opens-go-through-explorer-exe/problem: + en: bc2c92e4247ea71e + zh: ca20fdeccc58e883 +/agent-note-windows-opens-go-through-explorer-exe/decision: + en: 4cf76bcb52a7beef + zh: a55a5bd9a4b85063 +/agent-note-windows-opens-go-through-explorer-exe/alternatives-considered: + en: 64712f720fca44a1 + zh: aad98e46f0c7a6bb +/agent-note-windows-opens-go-through-explorer-exe/consequences: + en: d06af93b608037c9 + zh: 38b1a4c840b0ce51 +/agent-note-windows-opens-go-through-explorer-exe/verification: + en: c7ff7cb42072737c + zh: 9bbf5ff6596938a0 diff --git a/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml index 727ff382c0..1978750d50 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-23-bounded-pnpm-runs.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.md -2026-09-23-bounded-pnpm-runs.md: 7ce6b1776e4587240072201781c9da5bc78650e8 -2026-09-23-bounded-pnpm-runs.zh.md: 1cb91132cca22a1130fdc48ce3d3dbd354fa5d16 +/agent-note-bounding-a-pnpm-run-that-stops-progressing: + en: c2bd52dec2a41d84 + zh: 80dae83761a09a60 +/agent-note-bounding-a-pnpm-run-that-stops-progressing/problem: + en: 227a287fe7127eae + zh: 5d7eae54a4a75f8c +/agent-note-bounding-a-pnpm-run-that-stops-progressing/decision: + en: 6a574e5b6d536b5b + zh: 92a9bb15d983e7db +/agent-note-bounding-a-pnpm-run-that-stops-progressing/why-a-silence-bound-rather-than-a-duration-bound: + en: 31287e4e71e7f10f + zh: ff57c96539d51972 +/agent-note-bounding-a-pnpm-run-that-stops-progressing/alternatives-considered: + en: 125710ae84911ed4 + zh: 5f35dbcda4447bea +/agent-note-bounding-a-pnpm-run-that-stops-progressing/testing: + en: eb3c4907aec48db3 + zh: 56b7168b732c782a +/agent-note-bounding-a-pnpm-run-that-stops-progressing/related: + en: a9c6d0a071ea9834 + zh: 0702183c645d03b9 +/agent-note-bounding-a-pnpm-run-that-stops-progressing/consequences: + en: c13a64cd3dd381e9 + zh: 83d2db47153e3d8c diff --git a/.agents/notes/implemented/feature/2026-06-15-ptc.i18n.yaml b/.agents/notes/implemented/feature/2026-06-15-ptc.i18n.yaml index 0e6c3a467b..4a99a03276 100644 --- a/.agents/notes/implemented/feature/2026-06-15-ptc.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-06-15-ptc.i18n.yaml @@ -1,6 +1,49 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-15-ptc.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-06-15-ptc.md -2026-06-15-ptc.md: d5ed3fc79d4586d3754b7273e08970fb066fe6e9 -2026-06-15-ptc.zh.md: 1434db5c352cdb14b857dc5d4ca3bb2f5332e98e +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry: + en: 9506116227b22bd0 + zh: c2d42a9f483cfbe3 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/problem: + en: 4b312be894531bee + zh: d655648ea5843ef5 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision: + en: 371abc68ce278a5c + zh: 3fa8d28213794932 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/per-program-execution-controls: + en: da694641e1d009de + zh: 9d7492d39039af66 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/the-registry-owns-the-mode: + en: 55287fedeaaee6d8 + zh: d2afe242e84acc43 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/the-run-code-tool-and-the-dispatch-bridge: + en: 8811a9c5e28488fd + zh: 6937645281b79fb9 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/observability-tool-ptc-dispatch: + en: b8e4cf9433c7ee18 + zh: e5f4e8d7d03d3a7b +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/the-ptc-runtime-seam: + en: 4c423f4e9cef6055 + zh: 5c23a3637eb420c0 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/the-node-process-runtime: + en: 0b846ed33977e383 + zh: e45158758d657f9a +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/trust-posture: + en: d62b41a6a5c58e5f + zh: ef72c5a9b32b370e +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/decision/what-the-model-sees: + en: 43653fd91ab9165b + zh: 6ddfa853e69b2d80 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/consequences: + en: 761eb6c1aeb7af18 + zh: 5434456a3d0a1b65 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/testing: + en: f5d287f610962a48 + zh: 88368e1df517b087 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/alternatives-considered: + en: 90110f91f6f6130f + zh: 25d28433840f91a4 +/agent-note-ptc-mode-the-model-writes-typescript-against-the-tool-registry/risks: + en: 7743b1b621b8e6c7 + zh: 70c33a5b306ca71c diff --git a/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.i18n.yaml b/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.i18n.yaml index 4e2bd8d28d..4b48c194fe 100644 --- a/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-18-compaction-capability-seam.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md -2026-06-18-compaction-capability-seam.md: 7d8b4f5011385f306aec4c6374d3402427fb3cc4 -2026-06-18-compaction-capability-seam.zh.md: 6a255bb05e0b3c90077af051bd24744305f3833e +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend: + en: 6808ccbe73762daa + zh: 11f3669e6ae4512c +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/problem: + en: ed3fddc1dce0f229 + zh: fab2663b344cd851 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/compaction-is-a-capability-seam-with-separate-service-definition-and-service-provider-roles: + en: 785c69730accbb4d + zh: ee9bd2a8a7dc3b72 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/the-contract-depends-on-dsh-session-and-dsh-llm-a-deliberate-deviation: + en: 5c07a5a6429f6752 + zh: 8bf83da6e0563a66 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/three-abstract-operations-algorithm-in-the-backend: + en: 62191e0e65c79673 + zh: cbaa5bece0f5b45a +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/automatic-pressure-runs-after-successful-durable-step-work: + en: b246f9837c9c9a6b + zh: c19c51456c8fd8b7 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/retention-is-turn-agnostic-tool-pairing-balance-is-the-only-structural-guard: + en: 3126c249c48e90b9 + zh: dc82bc9a37d90474 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/head-anchoring-one-auto-checkpoint-always-at-the-head: + en: 26f187b321217e4c + zh: b324dcdb6da4bf02 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/approximate-convergence-invariant: + en: 4870032f23833fc4 + zh: b30180c31ba84a5a +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/surface-replacement-compaction-events-are-log-only-one-user-message-carries-the-summary: + en: 6d50dfe66a35f6fb + zh: 6ff9e66553f10ac6 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/checkpoint-framing-incremental-merge-backend-private: + en: 1c71cf67450e78d5 + zh: fb44b3cf5cee070a +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/decision/blocking-via-a-log-recorded-lock-plus-a-crash-recoverable-failure-taxonomy: + en: 5aed57a49e031b1e + zh: 1424f332197ef541 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/alternatives-considered: + en: 24a7bb1949445136 + zh: 7914ea99f498ed67 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/consequences: + en: 400bf1cadb974d04 + zh: 7612a4634ae98b32 +/agent-note-compaction-as-a-capability-seam-abstract-contract-basic-backend/testing: + en: 843476bd607fe832 + zh: 50be0b06553a54d0 diff --git a/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.i18n.yaml b/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.i18n.yaml index 1445f54bbb..2362f9cac7 100644 --- a/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-21-subagent-capability-seam.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.md -2026-06-21-subagent-capability-seam.md: 6eedb3a4b03cd919aa8888853fac5fdaf3f74fe0 -2026-06-21-subagent-capability-seam.zh.md: 7e73fdc58f4b537ca2f6be481e359b267af31d96 +/agent-note-subagent-capability-seam: + en: 3c051f92759dd9c4 + zh: fceee1b8289f2779 +/agent-note-subagent-capability-seam/problem: + en: 5c81597e6dc16c39 + zh: c30c6b5dce12bfae +/agent-note-subagent-capability-seam/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 76136ef5249c23eb +/agent-note-subagent-capability-seam/alternatives-considered/why-not-the-bash-seam-shape: + en: 3a01c98c45de8585 + zh: 7f87d8bd6d348dae +/agent-note-subagent-capability-seam/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-subagent-capability-seam/decision/the-three-package-boundary: + en: c470cd9518cebc8b + zh: 228b559f73c58f2b +/agent-note-subagent-capability-seam/decision/the-primitive-async-start-subagentrun: + en: 08250dc4d5faf918 + zh: 1b413cb438af6796 +/agent-note-subagent-capability-seam/decision/two-kinds-of-optional-capability-discovered-two-ways: + en: d2a27fcacc46ca76 + zh: 4e8cca931fcaec2c +/agent-note-subagent-capability-seam/decision/fork-vs-fresh-are-separate-backends-not-a-flag: + en: a8e071639738ea79 + zh: 3fd7cc7427843efe +/agent-note-subagent-capability-seam/decision/child-isolation-and-the-parent-log: + en: e970f97f27d11f4a + zh: 34ece0dfe5ec6185 +/agent-note-subagent-capability-seam/decision/synchronous-collect-first-cut: + en: a14200a7abfa532f + zh: ee4f8c08deb0ee99 +/agent-note-subagent-capability-seam/decision/transport-provider-selection-is-config-not-model-facing: + en: 3dab95ec93f918df + zh: 4c3c7d4e8357bf63 +/agent-note-subagent-capability-seam/testing: + en: 324951447c43d01a + zh: b04388c4665302d2 +/agent-note-subagent-capability-seam/consequences: + en: c60d3fb1012f52b4 + zh: f46ab4b214941622 diff --git a/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.i18n.yaml b/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.i18n.yaml index 8ed643d29b..b5de0ccbcd 100644 --- a/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-30-interception-extension-points.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-06-30-interception-extension-points.md -2026-06-30-interception-extension-points.md: 5adffd1679c97cc69cf18991913113b84d88ba3c -2026-06-30-interception-extension-points.zh.md: c3aa374a22d58c5185a3bd8e79b4040a04bd43e3 +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against: + en: 623ca9ecb3ed4c8e + zh: 5d5639dea9a6a541 +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/problem: + en: 7ce5525628f7fc7d + zh: 53f27e5423da86f8 +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/decision: + en: dc7daa9100978a8b + zh: c87aa08a4e085b7b +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/decision/the-tool-pipeline-gives-each-phase-one-kind-of-authority: + en: 65553dedec611132 + zh: 5b002349db90b83f +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/decision/three-load-bearing-loop-decisions: + en: d91bda956aa8bad9 + zh: 12bc8f819bf62ed2 +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/decision/pre-tool-input-rewrite-is-a-separate-consistency-decision: + en: bea1cab63d0470f1 + zh: b3a1dba46e346109 +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/decision/boundaries: + en: 30c23a1087faca81 + zh: 03d58723ee6b1a37 +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/alternatives-considered: + en: d05468299caa114d + zh: d0b0eecf36456130 +/agent-note-interception-extension-points-the-typed-decision-surface-a-hook-programs-against/consequences: + en: 830c7bab979652be + zh: 7266e2d0780e9d67 diff --git a/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.i18n.yaml b/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.i18n.yaml index 8fe72e240d..b70097f9c9 100644 --- a/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-05-dynamic-workflows.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-05-dynamic-workflows.md -2026-07-05-dynamic-workflows.md: c7245704b0734c1508fe7f001e6429f594ebdd1d -2026-07-05-dynamic-workflows.zh.md: a4502d7d6b3acf1aebc4a5b36caccf50859bab01 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam: + en: 472dec484bf937c1 + zh: 1d6c38c699d43828 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/problem: + en: e890f8ac24054d94 + zh: 45ec14140f62e1c9 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/decision: + en: 16af14c0c9fc54ee + zh: 463dd56b53d05ea7 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/decision/the-script-contract-claude-code-compatible: + en: 889beb90c3650f25 + zh: b1ba5dac3c77f8d2 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/decision/the-seam-dsh-workflow: + en: d37f01afb4d9cd6a + zh: 5648b981b61e6624 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/decision/the-engine-dsh-workflow-ptc-shared-node-process-execution: + en: 7567d5fcf218e4b5 + zh: 2ba33b1237df9e4a +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/decision/the-consumer-dsh-tool-workflow: + en: 00b015ee9db948fb + zh: 6dac8d8aaf0b32d2 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/decision/the-foundation-structured-output-on-the-subagent-seam: + en: 40ad0d1f23ffa7db + zh: 23a81a277fb24cd9 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/testing: + en: a1607694b584dcbc + zh: 29c9c7560f0fcf56 +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/deferred-documented-non-goals: + en: 2bff807d808bfa13 + zh: add602509c0a826c +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/alternatives-considered: + en: 44a36cb0a91546cc + zh: f4ed8c49f3764d7a +/agent-note-dynamic-workflows-a-script-driven-multi-agent-orchestration-seam/consequences: + en: bfd2d827ffb20587 + zh: 310c4fe77f48aa4e diff --git a/.agents/notes/implemented/feature/2026-07-06-approval-seam.i18n.yaml b/.agents/notes/implemented/feature/2026-07-06-approval-seam.i18n.yaml index f3eb596443..6b8dc5e1c0 100644 --- a/.agents/notes/implemented/feature/2026-07-06-approval-seam.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-06-approval-seam.i18n.yaml @@ -1,6 +1,55 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-06-approval-seam.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-06-approval-seam.md -2026-07-06-approval-seam.md: 03a4269dd7712f88d73e0439f944e6bf5bce14b5 -2026-07-06-approval-seam.zh.md: f11e0956c90cd60c9e34c7ccdee62111b5653545 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers: + en: 5a500ddf8910f3b2 + zh: 0461f97e3c905d72 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/problem: + en: 0903931cf3fd2d9b + zh: ae39e774ffa66c36 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision: + en: 058d4bd95d3c55d3 + zh: a861c6a59340b121 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/how-a-deployment-uses-it: + en: d0bcdfb988eaeadc + zh: 5ce6fd8f89b503fc +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/design-detail: + en: a6d7884e4359af3a + zh: e72588705942000a +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/design-detail/the-seam-mechanism-and-policy-split: + en: 0aa6f3a90921d1ea + zh: c4a734f84800dae8 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/design-detail/ask-routing-in-dsh-tools: + en: 1d4478059f608fd2 + zh: 4a1d12e4ccb766b5 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/design-detail/the-per-session-policy-tier: + en: 4eaf3ae10290dc6a + zh: 0cb65c79a5e9effc +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/design-detail/the-acp-answerer: + en: bbfb8c3f1cb34b12 + zh: 4f8f51a027a09a03 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/design-detail/audit-and-what-the-model-sees: + en: d9f129e893e76bec + zh: 92929dbc54c65a5b +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/design-detail/entities-and-dependencies: + en: 08abe894f74bcb00 + zh: a94052662c8536c7 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/decision/testing: + en: 01356985c175fcda + zh: b1bb3b68f619e698 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/deferred: + en: 3a9a1ddf86364f14 + zh: ec8413e23f171bd2 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/alternatives-considered: + en: ae974b0f43a29b4e + zh: bbc4662c0c63b6c1 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/consequences: + en: 9d2097d7b796dd63 + zh: 4f1a0493dc109b12 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/faq: + en: 85f3a8270d96497d + zh: b97bedebc08f23f0 +/agent-note-the-approval-seam-one-shot-permission-decisions-over-a-waterfall-of-answerers/prior-art: + en: 964a5c6afd4724d6 + zh: 1a386e1376860105 diff --git a/.agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml b/.agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml index 0c0d28aa76..ea0738686e 100644 --- a/.agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml @@ -1,6 +1,61 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-06-sandbox.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-06-sandbox.md -2026-07-06-sandbox.md: f2c703ba67bc16529605250d35ed181412f05494 -2026-07-06-sandbox.zh.md: ff4d4ed592dc4235903555528a029b4b295d972e +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes: + en: b36f59d0746e94f1 + zh: 0d0f8e19917a9eae +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/problem: + en: 045e61bb682755dc + zh: ac95eb64ce892f8d +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision: + en: f4748553d52935ff + zh: 1802a543c6d989ef +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/how-a-deployment-uses-it: + en: 956a2c069b1ac0b1 + zh: ebf91494b8107ced +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail: + en: a6d7884e4359af3a + zh: e72588705942000a +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/scope-grounding: + en: 0c09534b59e2063e + zh: 5225d6750d13b9d7 +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/the-seam-ctx-sandbox: + en: 2c98e8c0bd8a9ff1 + zh: 661b58f81f6e05c6 +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/local-backends-and-the-shipped-launcher: + en: 5c6bf38f958b07d0 + zh: 22bf9fac71eb643d +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/asynchronous-preparation: + en: 7bc0fab85c7c91d0 + zh: 3eafcde6b1e3249c +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/the-bash-consumer: + en: af561a23104227cd + zh: ac6fd59518d1bb55 +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/escalation-one-approved-wider-retry-after-a-denial: + en: 035640e276225e97 + zh: 09fd95921529369b +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/per-session-modes-the-session-log-as-the-store: + en: 6805c807f584961c + zh: 687fd4ad687e4dee +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/design-detail/in-process-tools: + en: 73cd47df9f2acbd0 + zh: 877db86c2a36a9ab +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/decision/testing: + en: c0189d491354eb48 + zh: ac68b07188402f9c +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/deferred-phases: + en: f28b530000b8495e + zh: f256b8b32c4ce4ef +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/alternatives-considered: + en: eabe577b837f3de2 + zh: 4ef0167c895766a6 +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/consequences: + en: c0d8279a677a0ef1 + zh: 3518fc05f8700c0b +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/faq: + en: de45c2a398b8abe6 + zh: 93be112960b40736 +/agent-note-the-subprocess-sandbox-confinement-seam-native-runners-escalation-and-per-session-modes/prior-art: + en: a51744b1cafca339 + zh: 1d27f49f1aa550af diff --git a/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.i18n.yaml b/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.i18n.yaml index 2d9a9b05e4..751b41f4c6 100644 --- a/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.i18n.yaml @@ -1,6 +1,94 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-07-mcp-client-plugin.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.md -2026-07-07-mcp-client-plugin.md: dd793b67bf2043fa88377d50837df40faadf3fbf -2026-07-07-mcp-client-plugin.zh.md: 5056118df0185f1e7ec2b1ea06818ed920d2af26 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools: + en: 7d41e632fd40efe0 + zh: 4c7f6410b74a5bd3 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/problem: + en: 7cef5ed5bc88fba5 + zh: 795917e3321148ab +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/package: + en: 90a6e5a22fa99a36 + zh: 4280a5feecd3e6c1 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/sdk: + en: f69bbd1cfca85fa0 + zh: 9b21abc7e3eeb2fd +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/scope: + en: 32cd57e8d3ea1ac1 + zh: 7c14401492f22c32 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/plugin-shape: + en: 3d6e4726e5c890a6 + zh: 888123ed412544a7 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/configuration: + en: a244e4d7a8294424 + zh: 4be5ed51345a660e +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/lifecycle: + en: b428a4e72dec4ba0 + zh: c070db6fdd2d3c7f +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/tool-discovery-and-registration: + en: 75da266ca8141a90 + zh: 078e3a969273ed9b +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/public-name-normalization: + en: eb0511bd6173c99c + zh: c5fc98231a733699 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/name-conflict-handling: + en: 88210585c857f934 + zh: fc0d90d572d6ba45 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/naming-invariants: + en: 1e2ce84605977339 + zh: 3b3c9d120c0262a7 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/tool-execution: + en: c82db842e7a6f3db + zh: ace9e266cd6c4203 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/subprocess-environment-stdio-transport: + en: d599a7db35e1f96d + zh: a2655e0410565c93 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/decision/disconnection-crash: + en: e8207a70c6511778 + zh: aa281be51d85be13 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 76136ef5249c23eb +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/mcp-server-side-expose-harness-tools-to-external-mcp-clients: + en: 831148b7e748eaa3 + zh: 845172ccc64d7a65 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/capability-seam-three-package-split-interface-impl-consumer: + en: caefc1146f9b2b16 + zh: 9c4a5d55019d8002 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/auto-reconnect-with-exponential-backoff: + en: e92d18530feb1ee3 + zh: 2fecc50b4b6a96d9 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/bridge-resources-and-prompts: + en: 606ee33502fa60cc + zh: 0c21afec01caf4c2 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/raw-model-facing-tool-names-with-an-optional-toolprefix: + en: ef886d275ac5734c + zh: 304c578e674f50a2 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/server-only-namespace-github-create-issue-no-mcp-marker: + en: d18be656bd334d18 + zh: b7cdc2d580e9f2ab +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/deriving-the-namespace-from-the-server-announced-serverinfo-name: + en: 17bc5d831e3d06a7 + zh: 6b9e2f5cd76d12f8 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/preserve-multiple-textblocks-in-tool-result: + en: 184f6d75be815400 + zh: a284afac1e2b80e2 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/replace-the-canonical-mcp-result-with-core-contentblock: + en: d5d253f8e466bab9 + zh: 7d93b7fa1c2219ed +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/add-a-generic-richcontent-service-or-perform-i-o-in-output-render: + en: 687c220df3767635 + zh: c87dd8700edc9291 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/alternatives-considered/let-each-image-returning-tool-special-case-ptc-mode-parents: + en: a5fc7b17970699ce + zh: 2d7bd23621f62597 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/testing: + en: 4bb5be21c1097a57 + zh: d12bf01bb70e1bc3 +/agent-note-mcp-client-plugin-connect-to-external-mcp-servers-and-bridge-their-tools/consequences: + en: ef35ec18568b38e5 + zh: ca85076585c2b787 diff --git a/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml b/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml index 2b37bdad0a..67063fa1b4 100644 --- a/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-08-self-referential-cordis-toolset.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.md -2026-07-08-self-referential-cordis-toolset.md: 278c71051de1fb897c8735b39dff0b66c43a5626 -2026-07-08-self-referential-cordis-toolset.zh.md: 8a8e197e197fb6b53b52426d5ad9a33fd09e78c9 +/agent-note-cordis-runtime-inspection-and-runner-isolation: + en: d96c123d1989b22b + zh: 4a53cdd763955f19 +/agent-note-cordis-runtime-inspection-and-runner-isolation/problem: + en: 29d1465c348331e9 + zh: 25dbc885f5d7ee7d +/agent-note-cordis-runtime-inspection-and-runner-isolation/decision: + en: 8a4cbb660f2409d7 + zh: 2219e39468e6baee +/agent-note-cordis-runtime-inspection-and-runner-isolation/alternatives-considered: + en: 637137a3b035c211 + zh: 5a667bfe2446a5f8 +/agent-note-cordis-runtime-inspection-and-runner-isolation/consequences: + en: a21f854954e01db6 + zh: c16bbe7c3580b394 diff --git a/.agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.i18n.yaml b/.agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.i18n.yaml index f317a3d223..4b82a34a31 100644 --- a/.agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-10-parallel-tool-call-execution.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.md -2026-07-10-parallel-tool-call-execution.md: d5d26e03a2081569a8dba4de966201abc312d420 -2026-07-10-parallel-tool-call-execution.zh.md: 707428985c872dcbbc82f59124f0d60aef7f1090 +/agent-note-parallel-tool-call-execution-by-per-call-safety: + en: bbc8567dc50716d1 + zh: 4ddef348cc74b39c +/agent-note-parallel-tool-call-execution-by-per-call-safety/problem: + en: 41ffece5e72e022f + zh: e813a3efb9c12646 +/agent-note-parallel-tool-call-execution-by-per-call-safety/decision: + en: 532bb7268d9b93ce + zh: ad47162233222ab0 +/agent-note-parallel-tool-call-execution-by-per-call-safety/scheduling-and-ordering: + en: f0906d03fef98e7b + zh: f9e43c4c832c9a05 +/agent-note-parallel-tool-call-execution-by-per-call-safety/safety-contract: + en: 16c4ee08b65ead23 + zh: df80d6e49982615b +/agent-note-parallel-tool-call-execution-by-per-call-safety/configuration-and-declarations: + en: e112957ed8a48039 + zh: 37d63f9ea4968fb2 +/agent-note-parallel-tool-call-execution-by-per-call-safety/verification: + en: eb5a6aa84980f0ab + zh: eed2680a160e8ed2 +/agent-note-parallel-tool-call-execution-by-per-call-safety/alternatives-considered: + en: 44f8fb5851ba4e39 + zh: 4d75c937ac5277f7 +/agent-note-parallel-tool-call-execution-by-per-call-safety/consequences: + en: 5e5b2a1c7d850f83 + zh: b63311f28eb69366 diff --git a/.agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.i18n.yaml b/.agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.i18n.yaml index 13820af392..431d5f60ec 100644 --- a/.agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-12-subagent-persona-tool-filter-and-depth.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.md -2026-07-12-subagent-persona-tool-filter-and-depth.md: f848b92a7a5647995330e2bf26796dde1b43a3f8 -2026-07-12-subagent-persona-tool-filter-and-depth.zh.md: 3360b27c9feb5950cc3f338c89e48a4c902e2ac8 +/agent-note-configure-subagent-persona-tool-visibility-and-depth: + en: ea51f1e98afc88b7 + zh: 6aa0101b8de5097f +/agent-note-configure-subagent-persona-tool-visibility-and-depth/problem: + en: 311bc04b9c36ab53 + zh: 0c52e6493e9350a5 +/agent-note-configure-subagent-persona-tool-visibility-and-depth/decision: + en: 79b3fcfaaaaccf9e + zh: 0287bfb41c7b9707 +/agent-note-configure-subagent-persona-tool-visibility-and-depth/decision/persona-is-a-scoped-shadow: + en: 8b299c99d26aa5c3 + zh: 6956efbd236cef8e +/agent-note-configure-subagent-persona-tool-visibility-and-depth/decision/tool-filtering-is-one-live-global-view-rule: + en: a9fe46283ea28722 + zh: 7b7d1be7c070b893 +/agent-note-configure-subagent-persona-tool-visibility-and-depth/decision/depth-is-an-absolute-tree-cap: + en: 9145bec4e3f7eb5b + zh: 986276925cb064d9 +/agent-note-configure-subagent-persona-tool-visibility-and-depth/decision/capability-gating-keeps-providers-honest: + en: 5334afafefdb0f59 + zh: 7e96c9a08bbc3d1a +/agent-note-configure-subagent-persona-tool-visibility-and-depth/decision/unpublished-setup-makes-the-first-request-correct: + en: 3c988dfff07c8da3 + zh: 8ce2fbcc438e7dd8 +/agent-note-configure-subagent-persona-tool-visibility-and-depth/visibility-is-not-authority: + en: d0db5310a87ff8e4 + zh: 4b9f502238cd4bae +/agent-note-configure-subagent-persona-tool-visibility-and-depth/alternatives-considered: + en: 78ae41331d8fcc3e + zh: a93ee10b3e30c267 +/agent-note-configure-subagent-persona-tool-visibility-and-depth/consequences: + en: d5f05d63b7a01dd8 + zh: f0be1e88b06d8cc9 diff --git a/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml b/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml index 021837de21..938869414c 100644 --- a/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-14-cross-family-fs-sandbox.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.md -2026-07-14-cross-family-fs-sandbox.md: 0fe1d4078797eceb9f3f0f9c319bba62acd6b08c -2026-07-14-cross-family-fs-sandbox.zh.md: 021923c7e3c4653991377cd9b5bccf18c9a4bf65 +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity: + en: d971839c319030fa + zh: 29d8cc0ec85337af +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/problem: + en: 2ce70b520caa28b5 + zh: 6f023332dd48bf83 +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/decision: + en: dd825d09d6d850ed + zh: 0c355b56ff17d099 +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/decision/ctx-sandboxpolicy-one-home-for-mode-and-workspace-root: + en: e8ef62a480614c1a + zh: 90c29f6845e2f437 +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/decision/dsh-fs-sandbox-enforcement-inside-the-provider: + en: 077a767b86dd7860 + zh: e8797afed2f65fa6 +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/decision/tool-parity-one-denial-marker-one-escalation-flow: + en: f1fed3aaf3a1482c + zh: d4bc7989477b3a0b +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/decision/the-enforcement-point-provider-not-intent-gate: + en: 98549276110ac457 + zh: d680c26086c68a8c +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/decision/out-of-scope: + en: 9157891a477f17bd + zh: 58d926d0b86bc4fd +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/alternatives-considered: + en: 669431ca494a7783 + zh: e875a63c553135e1 +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/consequences: + en: 3848066c5a8c56ef + zh: 048cdf6cb8dbde4d +/agent-note-cross-family-file-sandbox-one-policy-home-a-sandboxed-fs-provider-and-fs-escalation-parity/testing: + en: dc226f5a587ff7d4 + zh: 55f5d937d6bc86e9 diff --git a/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.i18n.yaml b/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.i18n.yaml index 550d23413e..624d9c4025 100644 --- a/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-16-harness-level-loop.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-16-harness-level-loop.md -2026-07-16-harness-level-loop.md: 54adc1aad63e8968c9e0d276a075cd42abf021fd -2026-07-16-harness-level-loop.zh.md: 9e1a7e73fbf1fab1807b59b3b7816cdfcc6f45df +/agent-note-harness-level-goal-based-execution: + en: 20d103f4160b124d + zh: 36e888ebeec1d366 +/agent-note-harness-level-goal-based-execution/problem: + en: b0294f40b8915f39 + zh: 786bcecd8e0df343 +/agent-note-harness-level-goal-based-execution/decision: + en: f9d2e5774bca2d5b + zh: 375683705a21f16c +/agent-note-harness-level-goal-based-execution/decision/vocabulary-and-policy-boundary: + en: 213a55ec1ef4dd58 + zh: 56076b8524188153 +/agent-note-harness-level-goal-based-execution/decision/package-topology-and-owning-verbs: + en: fb8e9df7705a2293 + zh: ffe7040bdad4fa64 +/agent-note-harness-level-goal-based-execution/decision/durable-goal-state-and-live-authority: + en: ef386ad58ff3bcaf + zh: 9517886000faf515 +/agent-note-harness-level-goal-based-execution/decision/same-session-continuation: + en: 669447319e89b06a + zh: 2a08e6a8622aabd1 +/agent-note-harness-level-goal-based-execution/decision/human-and-model-interactions: + en: 8923f16b40a2f331 + zh: 697417b21f475c1e +/agent-note-harness-level-goal-based-execution/decision/fresh-agent-ralph-execution: + en: 3cc9d8fee8dfbd41 + zh: 2c4bf8aab739b0e8 +/agent-note-harness-level-goal-based-execution/decision/external-design-lineage: + en: 4a7b290a2649720c + zh: 1a2f32667061e7b4 +/agent-note-harness-level-goal-based-execution/decision/verification: + en: cb538a23eb170008 + zh: fdd00c5ca70918a1 +/agent-note-harness-level-goal-based-execution/alternatives-considered: + en: 5f4c2ba58601587c + zh: a7e2028dd8bc23c1 +/agent-note-harness-level-goal-based-execution/consequences: + en: 31d109628ee650f4 + zh: 2278dd884e6a088a +/agent-note-harness-level-goal-based-execution/known-limitations-and-deferred-work: + en: 2bc0e7709c516ed0 + zh: 614b4ddf8ca6ebc6 diff --git a/.agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml b/.agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml index b1b7365597..ac9be41f4d 100644 --- a/.agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml @@ -1,6 +1,49 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-16-persistent-pty-sessions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.md -2026-07-16-persistent-pty-sessions.md: d62587ced78be75de121fe907ca258d07a2830a1 -2026-07-16-persistent-pty-sessions.zh.md: a26c3ed852b3a18842585e19ecb2a6994f8d9117 +/agent-note-persistent-pty-sessions: + en: c7796dc579fe7fb3 + zh: 2126be0b08124ca5 +/agent-note-persistent-pty-sessions/problem: + en: cd408e9b6e9705e8 + zh: 7811f9216b6961fa +/agent-note-persistent-pty-sessions/decision: + en: 5656c117648160c8 + zh: 7f7c3de8e2ea6d9a +/agent-note-persistent-pty-sessions/decision/package-topology: + en: 0187ac573d06a360 + zh: 13e08f4f22bacfff +/agent-note-persistent-pty-sessions/decision/agent-ownership-and-identity: + en: 9bf79081f102eb51 + zh: 34855888f0614b47 +/agent-note-persistent-pty-sessions/decision/security-and-process-boundary: + en: 10d84442483e1d40 + zh: c970ae058e2e0f6d +/agent-note-persistent-pty-sessions/decision/six-model-facing-tools: + en: b92715f36550c728 + zh: e18d7e0e2363347a +/agent-note-persistent-pty-sessions/decision/local-readiness-detection: + en: cd8b4032a624c277 + zh: 47f0d8c15f1c9cad +/agent-note-persistent-pty-sessions/decision/model-visible-output-and-durability: + en: 1b504ab41b47216d + zh: 8fb3d360b3a4e6a1 +/agent-note-persistent-pty-sessions/decision/process-tree-teardown: + en: e96a972845bc3513 + zh: d76d7dfb80985e9d +/agent-note-persistent-pty-sessions/decision/composition-and-rollout: + en: db49b6dff73d8772 + zh: 1f2182fd2c7dc3af +/agent-note-persistent-pty-sessions/decision/deferred-work: + en: c0ae6d86dd5c0635 + zh: 737bd3fda903d5e3 +/agent-note-persistent-pty-sessions/alternatives-considered: + en: cda0998b2bb05b7d + zh: 7cc5683a6dfd64be +/agent-note-persistent-pty-sessions/verification: + en: 08cd5f0369ee69e9 + zh: 3e9b13ba1f8b6bff +/agent-note-persistent-pty-sessions/consequences: + en: f8784b2ca03fc80a + zh: e20e38014292f86a diff --git a/.agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml b/.agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml index 3a30f6624d..c67f4a0d57 100644 --- a/.agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-model-facing-goal-tools.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.md -2026-07-19-model-facing-goal-tools.md: 2c05c8aa0ee2caecb0264fa87984085b3df5d785 -2026-07-19-model-facing-goal-tools.zh.md: f16055e52e4a3d6a4db423699a36929f6f8c4cd2 +/agent-note-model-facing-same-session-goal-tools: + en: 4d9b039620654dd6 + zh: e8703b6a1723f910 +/agent-note-model-facing-same-session-goal-tools/problem: + en: f8e860155bfc0b43 + zh: 3279c90b622e8c08 +/agent-note-model-facing-same-session-goal-tools/decision: + en: 0ab1e1c40cb2dac9 + zh: b4180b6681c130b2 +/agent-note-model-facing-same-session-goal-tools/decision/tools-and-model-contract: + en: 288a819f644611c9 + zh: d6bd7986ba091519 +/agent-note-model-facing-same-session-goal-tools/decision/execution-authority: + en: 63a9e7e85303b9f1 + zh: d3f1d0c225103cfe +/agent-note-model-facing-same-session-goal-tools/decision/blocking-threshold: + en: 398de9518db40d11 + zh: b7f36c4061ca7e78 +/agent-note-model-facing-same-session-goal-tools/testing: + en: 92650dd6648ca455 + zh: 5b57276a6a983fea +/agent-note-model-facing-same-session-goal-tools/alternatives-considered: + en: e84b9fc4823bcc1e + zh: a125628e4746bf50 +/agent-note-model-facing-same-session-goal-tools/consequences: + en: e254571a176b37e5 + zh: 01f76aff35e3618d +/agent-note-model-facing-same-session-goal-tools/known-limitations-and-deferred-work: + en: 5b043a930afd4a13 + zh: d91e8a61de2590a4 diff --git a/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml b/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml index 62b98a691a..722d00ad1a 100644 --- a/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-persisted-same-session-goal-domain.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.md -2026-07-19-persisted-same-session-goal-domain.md: 4ddc02c3bd3b7bbf04b3c6867a76673431309460 -2026-07-19-persisted-same-session-goal-domain.zh.md: 2bb937b0f637e54ab6d9a6e10ebe237849e08171 +/agent-note-persisted-same-session-goal-domain: + en: 05f6641270399579 + zh: 962259d5bd3b3e16 +/agent-note-persisted-same-session-goal-domain/problem: + en: 45e351264fabe761 + zh: 6513999a7d83a528 +/agent-note-persisted-same-session-goal-domain/decision: + en: 7efc52c6215aa755 + zh: e570a4f82e69300b +/agent-note-persisted-same-session-goal-domain/decision/durable-record-and-replay: + en: d4520ec456f4023a + zh: 2ffcb155955539e5 +/agent-note-persisted-same-session-goal-domain/decision/lifecycle-and-live-activation: + en: d68c058ff7a49fee + zh: cbcdbce1aade7758 +/agent-note-persisted-same-session-goal-domain/decision/service-boundary: + en: 0bff035a2664e7c0 + zh: ba303bd3ec64151b +/agent-note-persisted-same-session-goal-domain/testing: + en: 9fb97674d1dd45ac + zh: c56df41a9aa6767a +/agent-note-persisted-same-session-goal-domain/alternatives-considered: + en: b8bae793bb1c922d + zh: 4abb28a01b1fc7f3 +/agent-note-persisted-same-session-goal-domain/consequences: + en: fa46d172b9d01b52 + zh: 54c40631d1719624 +/agent-note-persisted-same-session-goal-domain/known-limitations-and-deferred-work: + en: 21f5c50b4eafa028 + zh: 4cad975fb10501bd diff --git a/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.i18n.yaml b/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.i18n.yaml index 8a975fd9bd..a8a8205207 100644 --- a/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-plugin-command-registration.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-19-plugin-command-registration.md -2026-07-19-plugin-command-registration.md: f5033c6ac52dd09371d67ba5b54f0aa2cdba8024 -2026-07-19-plugin-command-registration.zh.md: 55f3a58f0e1f4c1ee6dfd7105e968a1a466f7806 +/agent-note-plugin-owned-human-command-registration: + en: f1509f79bd9e2445 + zh: 30f62b9b4f611f9d +/agent-note-plugin-owned-human-command-registration/problem: + en: 628dcc0bda181677 + zh: 71b110588f89c2b4 +/agent-note-plugin-owned-human-command-registration/decision: + en: acf2742722ab7c85 + zh: e0bdbd6fd0bf51b1 +/agent-note-plugin-owned-human-command-registration/decision/registry-contract: + en: 1b3daffaa9a8b56e + zh: fa99bb6bc553cafb +/agent-note-plugin-owned-human-command-registration/decision/scope-and-lifecycle: + en: 6d55a0d4b1b9606a + zh: 34bf959ef332630f +/agent-note-plugin-owned-human-command-registration/decision/direct-dispatch-and-cancellation: + en: 074ee61a689493cb + zh: 580035e2a4c82d4f +/agent-note-plugin-owned-human-command-registration/decision/tui-mapping: + en: 00f0f8b697d9e1ff + zh: 9c4ceb0024e50835 +/agent-note-plugin-owned-human-command-registration/testing: + en: 0679c206796636a6 + zh: ca2cc5df6aa3aa2e +/agent-note-plugin-owned-human-command-registration/alternatives-considered: + en: ffb2f060314a17b2 + zh: e7707cf5faf80227 +/agent-note-plugin-owned-human-command-registration/consequences: + en: 6b8525a4ca3213a8 + zh: 286a336a68669f72 +/agent-note-plugin-owned-human-command-registration/known-limitations-and-deferred-work: + en: 5e2417d5b1237526 + zh: dbfeea7c7ac38cf0 diff --git a/.agents/notes/implemented/feature/2026-07-20-ptc-typed-tool-returns.i18n.yaml b/.agents/notes/implemented/feature/2026-07-20-ptc-typed-tool-returns.i18n.yaml index b083ea6a1e..1d59d0072b 100644 --- a/.agents/notes/implemented/feature/2026-07-20-ptc-typed-tool-returns.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-20-ptc-typed-tool-returns.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-20-ptc-typed-tool-returns.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-20-ptc-typed-tool-returns.md -2026-07-20-ptc-typed-tool-returns.md: 08e760b95a40386bccc8c7a2722d289da10e3dff -2026-07-20-ptc-typed-tool-returns.zh.md: c2883740e1eeadbf6fb2413496104ff08a9bd1f7 +/agent-note-typed-tool-returns-in-ptc-mode: + en: 4b7c45b382db3a40 + zh: 96e9210446ec35ed +/agent-note-typed-tool-returns-in-ptc-mode/problem: + en: cf7610bb16ff04af + zh: 73b00b539dbaecd9 +/agent-note-typed-tool-returns-in-ptc-mode/decision: + en: 55bb889404c89f4a + zh: f9a9091569fbf7b4 +/agent-note-typed-tool-returns-in-ptc-mode/decision/generated-sdk: + en: 30583e9ac6715952 + zh: 3a85c9482abf574c +/agent-note-typed-tool-returns-in-ptc-mode/decision/binding-values-and-failures: + en: ecb95cafa2dc1297 + zh: ccdf300ca936ca12 +/agent-note-typed-tool-returns-in-ptc-mode/decision/outer-result-and-output-ledger: + en: d907d0a8205157e1 + zh: 1ed99168266a7ca4 +/agent-note-typed-tool-returns-in-ptc-mode/decision/typed-handles-and-lifetime: + en: c5d9997ae7c7362d + zh: 1da8883d17d2748e +/agent-note-typed-tool-returns-in-ptc-mode/decision/persistence-metadata-and-spill: + en: 4d1e5f83f15f99cc + zh: b7f41a084cb23745 +/agent-note-typed-tool-returns-in-ptc-mode/testing: + en: 728513c779f031f8 + zh: f6d869f18add7242 +/agent-note-typed-tool-returns-in-ptc-mode/alternatives-considered: + en: dedd87b9b35d8fab + zh: 78db4c7e8c4e5f61 +/agent-note-typed-tool-returns-in-ptc-mode/consequences: + en: 7c2ee65532ab76f8 + zh: 3fb074c69909d390 +/agent-note-typed-tool-returns-in-ptc-mode/known-limitations-and-deferred-work: + en: a42af629ad6872cc + zh: 41e5c0bb3de0ae4d diff --git a/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.i18n.yaml b/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.i18n.yaml index 77a58fcc17..b85229745f 100644 --- a/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-21-follow-instruction-symlinks.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.md -2026-07-21-follow-instruction-symlinks.md: a6b4cb5d465d2ebf7088d8e3a04fbb32503e2e15 -2026-07-21-follow-instruction-symlinks.zh.md: a44f89d8ec3c636a875059aabe0683c6bf1da851 +/agent-note-follow-symlinked-instruction-files: + en: aa37067267aa70ff + zh: 75aff9256b49199f +/agent-note-follow-symlinked-instruction-files/problem: + en: 81e1947150ceb054 + zh: 97575f09a9e57db4 +/agent-note-follow-symlinked-instruction-files/decision: + en: 911b5bb48a95afd0 + zh: 1a38e50602b86bc4 +/agent-note-follow-symlinked-instruction-files/decision/trust-boundary-and-residual-risk: + en: 31ea638766861600 + zh: a270db3c868585b0 +/agent-note-follow-symlinked-instruction-files/alternatives-considered: + en: cf5e62b7cae4f0dc + zh: ff7d5821958efeac +/agent-note-follow-symlinked-instruction-files/consequences: + en: b0ee45a9e4d95dd5 + zh: 338d3758f400a651 diff --git a/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml b/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml index c193f39ddd..8f2fe2b211 100644 --- a/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-23-session-telemetry-otel-revival.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.md -2026-07-23-session-telemetry-otel-revival.md: dc52ee87ef78107d674e49af3c20c255266f0414 -2026-07-23-session-telemetry-otel-revival.zh.md: f647ea289684eca648fe797011daad858612546f +/agent-note-session-telemetry-seam-with-mandatory-redaction-and-the-otel-backend: + en: 36222884462b86d2 + zh: 2f834557e3fa3baa +/agent-note-session-telemetry-seam-with-mandatory-redaction-and-the-otel-backend/problem: + en: d3383b495424d118 + zh: 4e6ffc8ebfa7f741 +/agent-note-session-telemetry-seam-with-mandatory-redaction-and-the-otel-backend/decision: + en: 85b950a67315023c + zh: cb4c08338c30b226 +/agent-note-session-telemetry-seam-with-mandatory-redaction-and-the-otel-backend/alternatives-considered: + en: 01838eefca2bc117 + zh: fc71f5449d095b27 +/agent-note-session-telemetry-seam-with-mandatory-redaction-and-the-otel-backend/consequences: + en: 487d440abfc7e3a9 + zh: a31d6abc8a0176c6 diff --git a/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.i18n.yaml b/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.i18n.yaml index 892090c52d..eef9430a5a 100644 --- a/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-25-subagent-policy-inheritance.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.md -2026-07-25-subagent-policy-inheritance.md: 8ca63bd511a275acbfda5ddee8cb50af51c348a1 -2026-07-25-subagent-policy-inheritance.zh.md: 630c69274e8e9cba07a6152395149757be3d6560 +/agent-note-in-process-subagent-policy-inheritance-the-child-starts-under-the-parent-s-sandbox-override: + en: 02b7ba888360c75c + zh: 42a6d20927622c9c +/agent-note-in-process-subagent-policy-inheritance-the-child-starts-under-the-parent-s-sandbox-override/problem: + en: 476b4a1b9ada2d8a + zh: 15b8051d22bb1dd0 +/agent-note-in-process-subagent-policy-inheritance-the-child-starts-under-the-parent-s-sandbox-override/decision: + en: dc11e7e52cdd4704 + zh: e000adedb13f2a98 +/agent-note-in-process-subagent-policy-inheritance-the-child-starts-under-the-parent-s-sandbox-override/decision/what-a-blocked-child-experiences: + en: 3b6ff196a06c2420 + zh: c04cb8bd81eb1c4b +/agent-note-in-process-subagent-policy-inheritance-the-child-starts-under-the-parent-s-sandbox-override/alternatives-considered: + en: 2f659b5b3b6faa21 + zh: c3712d0b6f8903c9 +/agent-note-in-process-subagent-policy-inheritance-the-child-starts-under-the-parent-s-sandbox-override/consequences: + en: 1b0a242aa33a8005 + zh: 426f83e118771b8e diff --git a/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml b/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml index ae720a62ac..07e8978506 100644 --- a/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-26-ptc-live-parallel-dispatch.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.md -2026-07-26-ptc-live-parallel-dispatch.md: f064314098af9c074f7cd06dc9ceea3df4c91c76 -2026-07-26-ptc-live-parallel-dispatch.zh.md: 70cbebcdc30c5771a2c29f36b588232822e19269 +/agent-note-ptc-mode-live-dispatch-lifecycle-and-native-contract-parallelism: + en: f546683c54ae7d6b + zh: 1c0760c5f49f0188 +/agent-note-ptc-mode-live-dispatch-lifecycle-and-native-contract-parallelism/problem: + en: ce16b44b1db07ec0 + zh: 30681dab84948cd8 +/agent-note-ptc-mode-live-dispatch-lifecycle-and-native-contract-parallelism/decision: + en: 7ac907f773ff9d50 + zh: 86982428baf83cde +/agent-note-ptc-mode-live-dispatch-lifecycle-and-native-contract-parallelism/alternatives-considered: + en: b015fa95b46e5fd5 + zh: b4fe283a1ab598c1 +/agent-note-ptc-mode-live-dispatch-lifecycle-and-native-contract-parallelism/consequences: + en: d16ba3a88fa7d528 + zh: 8c374a14a4f34cfe diff --git a/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml b/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml index 21f75ab4b4..770368862d 100644 --- a/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-27-web-subagent-conversations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.md -2026-07-27-web-subagent-conversations.md: 3798a5a2e5deb8b3801298def31c3a1890877796 -2026-07-27-web-subagent-conversations.zh.md: 4531528dd2a58baff3aaeaf53f20e037fce6cec4 +/agent-note-web-subagent-catalog-and-human-continuation: + en: c6373db2300cb803 + zh: 4d0589f21ec284ff +/agent-note-web-subagent-catalog-and-human-continuation/problem: + en: dfdbe64d34f9e05b + zh: 4cb7a92a6d3dc3e3 +/agent-note-web-subagent-catalog-and-human-continuation/decision: + en: 8892eea7f62d45ed + zh: 18f64966ff53e38b +/agent-note-web-subagent-catalog-and-human-continuation/design-context: + en: 3c44fc5af90bc807 + zh: 478538d028a52858 +/agent-note-web-subagent-catalog-and-human-continuation/product-contract: + en: 2060d607d1cd1ef3 + zh: e7100887358625c4 +/agent-note-web-subagent-catalog-and-human-continuation/host-adapter-and-wire-contract: + en: e0e82599b0a8d3bf + zh: e671e1f0f98795b4 +/agent-note-web-subagent-catalog-and-human-continuation/client-object-layer-and-presentation: + en: c0c891d86b1f7e1e + zh: c7b8da2bee81755d +/agent-note-web-subagent-catalog-and-human-continuation/default-web-assembly: + en: 6d4d8db99535aa18 + zh: 803554b55a67acb1 +/agent-note-web-subagent-catalog-and-human-continuation/alternatives-considered: + en: 427f0a8ace8ad692 + zh: 876771621858f77d +/agent-note-web-subagent-catalog-and-human-continuation/testing: + en: 0c2f7f5cc473ecff + zh: 00b2c22e109b3429 +/agent-note-web-subagent-catalog-and-human-continuation/consequences: + en: 143fc76c6d09e8fb + zh: 01a042fb32b0d6e0 diff --git a/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.i18n.yaml b/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.i18n.yaml index ff57ba5953..ff719e7b97 100644 --- a/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-27-workspace-registration-deletion.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.md -2026-07-27-workspace-registration-deletion.md: 1d9804cfc4e2d44ea6c44f69b69dd6b10578f08a -2026-07-27-workspace-registration-deletion.zh.md: 54e10b67a7607e32b08609fe00191da87d75f7e8 +/agent-note-workspace-registration-deletion: + en: 68262d0cd61db2ae + zh: bb2f78757972aae6 +/agent-note-workspace-registration-deletion/problem: + en: a51dbe0190d4dff0 + zh: 25b6c3083ee60627 +/agent-note-workspace-registration-deletion/decision: + en: 70182cd2979bdfd6 + zh: a6580a23cfbe6c07 +/agent-note-workspace-registration-deletion/durable-commit-and-publication: + en: f97d526274c3608b + zh: b0ae161f4e9febb8 +/agent-note-workspace-registration-deletion/client-convergence: + en: 84e56775e22ecf23 + zh: ab146e3179868efb +/agent-note-workspace-registration-deletion/confirmation-interaction: + en: 95178832030a9697 + zh: 3a2bd50680ed0c97 +/agent-note-workspace-registration-deletion/alternatives-considered: + en: d7b866f763db5364 + zh: 5e0865d42522d189 +/agent-note-workspace-registration-deletion/verification: + en: a7e98d39e3ffdba7 + zh: 9c4f8168e3fff83e +/agent-note-workspace-registration-deletion/consequences: + en: 3a50bfb5d93f6ef7 + zh: 80b8dd19b2d50b16 diff --git a/.agents/notes/implemented/feature/2026-07-28-continuable-subagent-conversations.i18n.yaml b/.agents/notes/implemented/feature/2026-07-28-continuable-subagent-conversations.i18n.yaml index 1369b927e3..e3f1e8bb08 100644 --- a/.agents/notes/implemented/feature/2026-07-28-continuable-subagent-conversations.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-28-continuable-subagent-conversations.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-28-continuable-subagent-conversations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-28-continuable-subagent-conversations.md -2026-07-28-continuable-subagent-conversations.md: a30966c4d614fda837bc2bac95f6b6e411de9791 -2026-07-28-continuable-subagent-conversations.zh.md: 59a02a211e0ca861f819a7524e4d69ad09acdbbc +/agent-note-continuable-subagents: + en: 14c7d31032237174 + zh: ac2666670a0ca5ab +/agent-note-continuable-subagents/problem: + en: a72071eeedb77402 + zh: 818d16ce429fd610 +/agent-note-continuable-subagents/decision: + en: 445a8c9783aad214 + zh: 9b5c576bb76100a4 +/agent-note-continuable-subagents/decision/materialization-and-public-operations: + en: c7c55e5738a7c0d8 + zh: 54849d8938f7c77f +/agent-note-continuable-subagents/decision/durable-session-and-live-activation: + en: 92fd7302d4c8f2e5 + zh: e821764c07070ebc +/agent-note-continuable-subagents/decision/activation-lifecycle: + en: 68215c0ae5628608 + zh: fdf038decac8f07a +/agent-note-continuable-subagents/decision/one-inbox-and-follow-up-delivery: + en: 065399ce5b1de59e + zh: b60af3c37851323e +/agent-note-continuable-subagents/decision/child-ownership: + en: 503fb4311cd94674 + zh: 376fa98ec4d22b20 +/agent-note-continuable-subagents/decision/adjacent-agent-messaging: + en: a6899f5a82d5dceb + zh: 0671b89b2dca9c4e +/agent-note-continuable-subagents/decision/agent-and-human-scheduling: + en: 8c861f3846fef1b5 + zh: 8cc3d668d73c7748 +/agent-note-continuable-subagents/decision/authority-and-recorded-sender-identity: + en: f5ba7e9c5339ceef + zh: 31ae1b2f57e44463 +/agent-note-continuable-subagents/decision/durability-disposal-and-recovery: + en: 276626f3b6d4a080 + zh: 806f9c4786bc4004 +/agent-note-continuable-subagents/decision/scope: + en: a47eed90de23351c + zh: 2351e4acbfe4c8e1 +/agent-note-continuable-subagents/alternatives-considered: + en: 485aef32231dac62 + zh: 5e2c103afb3e2d6f +/agent-note-continuable-subagents/consequences: + en: fa5a6b4bf262b8dd + zh: 4bffd7b8cc2efae5 +/agent-note-continuable-subagents/consequences/accepted-costs: + en: 4d4330ee4d7c3f31 + zh: 8fd11ba0625fb76d diff --git a/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.i18n.yaml b/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.i18n.yaml index 4e16712b96..55f7304827 100644 --- a/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-28-skill-invocation-policy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.md -2026-07-28-skill-invocation-policy.md: 614a0058e3887c6977cf92b4bcf7d15557215996 -2026-07-28-skill-invocation-policy.zh.md: a49cb96ea63af72d5abc41406097fcfb1b06739a +/agent-note-independent-model-and-user-skill-invocation-policy: + en: d5f87e846ef041b1 + zh: 273e87043d19a709 +/agent-note-independent-model-and-user-skill-invocation-policy/problem: + en: 9fc564115fca4b22 + zh: 3a414ee5c1f7f842 +/agent-note-independent-model-and-user-skill-invocation-policy/decision: + en: dbd7aabf9fdd7c37 + zh: d71a2fd355e30fd1 +/agent-note-independent-model-and-user-skill-invocation-policy/alternatives-considered: + en: fdffcd101a494c4a + zh: db802bf9bc04ae74 +/agent-note-independent-model-and-user-skill-invocation-policy/consequences: + en: 94071073367396eb + zh: 5afca22d8140b5c0 diff --git a/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.i18n.yaml b/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.i18n.yaml index 73f3dd021b..9da56d634b 100644 --- a/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-30-queued-manual-compaction.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.md -2026-07-30-queued-manual-compaction.md: 3efd1a490148b34b0ee76800ed795dfaab280743 -2026-07-30-queued-manual-compaction.zh.md: 2da3f494afcdb0e0db47a0adb2e2a6101f7ef2e6 +/agent-note-queued-manual-compaction-with-one-durable-lock: + en: 45504a64618db51a + zh: f8dfebaf42ee4ddf +/agent-note-queued-manual-compaction-with-one-durable-lock/problem: + en: ffd033e0cea4b612 + zh: 63fa18871f038eb7 +/agent-note-queued-manual-compaction-with-one-durable-lock/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-queued-manual-compaction-with-one-durable-lock/decision/compact-is-a-command-over-a-backend-independent-seam: + en: a8631732e038e08d + zh: 68cb705f38ddfa57 +/agent-note-queued-manual-compaction-with-one-durable-lock/decision/idle-maintenance-is-synchronously-claimed: + en: a11c700f32838561 + zh: c20636c5f7efabaf +/agent-note-queued-manual-compaction-with-one-durable-lock/decision/one-parameterized-transaction-owns-every-bracket: + en: 7b75672fafc370c9 + zh: 4fb473856c9c7265 +/agent-note-queued-manual-compaction-with-one-durable-lock/decision/bracket-first-deliberately-differs-from-the-surveyed-implementations: + en: 309671a79b437033 + zh: 86e0f366aed73c35 +/agent-note-queued-manual-compaction-with-one-durable-lock/decision/markers-are-time-points-not-an-event-container: + en: e9d8043178dc946f + zh: 56808150ba2ab275 +/agent-note-queued-manual-compaction-with-one-durable-lock/decision/end-seed-distinguishes-live-and-stale-orphans: + en: cc767e216225e117 + zh: 4ec7dbc179f96c37 +/agent-note-queued-manual-compaction-with-one-durable-lock/decision/reference-implementation-boundaries: + en: 97b121c53b8f3b68 + zh: 13d86db92c30bef1 +/agent-note-queued-manual-compaction-with-one-durable-lock/alternatives-considered: + en: f1c5bae090425598 + zh: 60a30f851d85dfb0 +/agent-note-queued-manual-compaction-with-one-durable-lock/verification: + en: 37587419460fcf36 + zh: e45c752f93d5a87e +/agent-note-queued-manual-compaction-with-one-durable-lock/consequences: + en: b8c71ea1d1db7b8e + zh: 0d276bb8317ada91 diff --git a/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.i18n.yaml b/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.i18n.yaml index afe776d402..aea31db0d2 100644 --- a/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-30-web-remote-markdown-images.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.md -2026-07-30-web-remote-markdown-images.md: 23dc699aab87597b7b5bfee83d0d745d4798303e -2026-07-30-web-remote-markdown-images.zh.md: 54db9b25e9f558d77c84bb67c05fadea2c9086ac +/agent-note-remote-web-markdown-images: + en: a11eadff0703761d + zh: 59841eaf2993b7c4 +/agent-note-remote-web-markdown-images/problem: + en: 97447c93b654eda7 + zh: 456a3ceed4967d0a +/agent-note-remote-web-markdown-images/decision: + en: 8dfbdb81dff9cae3 + zh: 217042998b65c158 +/agent-note-remote-web-markdown-images/alternatives-considered: + en: 32a4116e8ffc4b16 + zh: 59dd991fede9ac71 +/agent-note-remote-web-markdown-images/consequences: + en: 12b97c75c5d19308 + zh: ee8102b7d01e579b diff --git a/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml b/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml index 1f490bce21..2a3d4bae8d 100644 --- a/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-31-even-out-shipped-tool-rosters.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.md -2026-07-31-even-out-shipped-tool-rosters.md: 90efaeb4734c806bc1bdc63d883c4e3158792a13 -2026-07-31-even-out-shipped-tool-rosters.zh.md: 4379ffbcd23ea80acd6801ea260fb686cd955fa5 +/agent-note-even-out-the-shipped-tool-rosters: + en: aa8ec8438dc609aa + zh: 28172207b09ea3ad +/agent-note-even-out-the-shipped-tool-rosters/problem: + en: 69e127b53366cf66 + zh: 63f783ac453d4cbe +/agent-note-even-out-the-shipped-tool-rosters/decision: + en: 45662b711bd9a201 + zh: 845cd2a9193cbe0f +/agent-note-even-out-the-shipped-tool-rosters/decision/what-stays-unmounted-and-why: + en: 7a74b42b428b9cf9 + zh: 4f534ccd26b9ecc4 +/agent-note-even-out-the-shipped-tool-rosters/decision/mcp-is-a-dependency-not-a-row: + en: 45358314e6adae26 + zh: 85ca6a6ce7bbf947 +/agent-note-even-out-the-shipped-tool-rosters/testing: + en: 07e46125d49a2068 + zh: 83a1b2737768651b +/agent-note-even-out-the-shipped-tool-rosters/alternatives-considered: + en: cf41f0bf700af59c + zh: 1dcaafe6bb944d92 +/agent-note-even-out-the-shipped-tool-rosters/consequences: + en: cf1821c985507b13 + zh: 0f7396a06d1b19fb diff --git a/.agents/notes/implemented/feature/2026-07-31-web-default-search.i18n.yaml b/.agents/notes/implemented/feature/2026-07-31-web-default-search.i18n.yaml index ce197d5093..f398e72a4e 100644 --- a/.agents/notes/implemented/feature/2026-07-31-web-default-search.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-31-web-default-search.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-31-web-default-search.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-31-web-default-search.md -2026-07-31-web-default-search.md: fed162cf2552e0209599634a7f215c48c1943339 -2026-07-31-web-default-search.zh.md: 3f39ef7d9f3adbc1c43a327faac78b21a08654de +/agent-note-default-web-search-in-shipped-compositions: + en: 030dc2ef246ba33d + zh: 94cc720adfd3d4ef +/agent-note-default-web-search-in-shipped-compositions/problem: + en: cd5af0c73d578874 + zh: 29e14c7ff1c77391 +/agent-note-default-web-search-in-shipped-compositions/decision: + en: 7062647c8e227743 + zh: 26bdd8dc4b0cd7ad +/agent-note-default-web-search-in-shipped-compositions/alternatives-considered: + en: f28e0f1183e755ce + zh: 2cbf256a33d99686 +/agent-note-default-web-search-in-shipped-compositions/consequences: + en: d69965f3be327186 + zh: 4e2b10bb0a227f0a diff --git a/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.i18n.yaml b/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.i18n.yaml index a8899fea13..25355eb4d5 100644 --- a/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-31-web-workspace-file-links.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.md -2026-07-31-web-workspace-file-links.md: 1fd58deafa99f6c84371d2a2c3975eae86522ac2 -2026-07-31-web-workspace-file-links.zh.md: 8cb1d06562398a832fed0743a7c06894d0a4212b +/agent-note-opening-a-produced-file-from-the-web-ui: + en: bdfcd62110aaefa2 + zh: 92981f1fe8ca52c9 +/agent-note-opening-a-produced-file-from-the-web-ui/problem: + en: 06ba78ace240645c + zh: 07a46477d41ddcee +/agent-note-opening-a-produced-file-from-the-web-ui/decision: + en: a3d6e9aa14dc6fb8 + zh: d9696d46eb4a348d +/agent-note-opening-a-produced-file-from-the-web-ui/alternatives-considered: + en: ba9603055aea84aa + zh: 3ab217f1b1ccb3b6 +/agent-note-opening-a-produced-file-from-the-web-ui/consequences: + en: aa460548654a89a5 + zh: ebb8e51f5cd18f0b diff --git a/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml b/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml index 66983526a5..4ac0e96629 100644 --- a/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-02-pwsh-tool-bash-parity.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.md -2026-08-02-pwsh-tool-bash-parity.md: cc2e7797c07ee8fd8c876cb30f9154a8ee2903c3 -2026-08-02-pwsh-tool-bash-parity.zh.md: b7949f1a5145fb6dac06bc47eeee488497b169d6 +/agent-note-pwsh-tool-bash-parity: + en: 76e33af7ff962cd2 + zh: 392f3d5f7100c564 +/agent-note-pwsh-tool-bash-parity/problem: + en: de5bfad14ef58243 + zh: fe8168a215719127 +/agent-note-pwsh-tool-bash-parity/decision: + en: 169a42b6c2dc965d + zh: 4172091b0299c748 +/agent-note-pwsh-tool-bash-parity/alternatives-considered: + en: 7dc381c52b191bc9 + zh: 6c07393519d3bb21 +/agent-note-pwsh-tool-bash-parity/consequences: + en: ea302108933e8a69 + zh: 563db786f22d07fa diff --git a/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml b/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml index d95f30747e..dc33cc6355 100644 --- a/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-04-claude-code-and-codex-subagent-backends.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.md -2026-08-04-claude-code-and-codex-subagent-backends.md: d11b200e95cbb0769ad30ae88cb976c7921c80f8 -2026-08-04-claude-code-and-codex-subagent-backends.zh.md: 5899a27bb8ad592d9b83b7d19e681bef375525fb +/agent-note-claude-code-and-codex-subagent-backends: + en: 0f3599cefa53ad5b + zh: 988c28cdd9ee4e61 +/agent-note-claude-code-and-codex-subagent-backends/problem: + en: dbd5758c1c46b303 + zh: ca5b8479f4358c9b +/agent-note-claude-code-and-codex-subagent-backends/decision: + en: caf8c74c3466b27a + zh: 5b1daf0a738221cd +/agent-note-claude-code-and-codex-subagent-backends/decision/ownership-and-lifecycle: + en: 1c106b8b0063fee2 + zh: 0a38a1ffbe93086d +/agent-note-claude-code-and-codex-subagent-backends/codex-provider: + en: 5835894b4ac2e182 + zh: c1fcbd2b2b7e0ea0 +/agent-note-claude-code-and-codex-subagent-backends/claude-code-provider: + en: 81a92541d399b155 + zh: d73a1f20c34982bb +/agent-note-claude-code-and-codex-subagent-backends/distribution-and-evidence: + en: ff6d6216e5ce11dd + zh: 6198c006ba8c61e7 +/agent-note-claude-code-and-codex-subagent-backends/alternatives-considered: + en: 10b5b282fac03988 + zh: bf9fb4899f2c8e16 +/agent-note-claude-code-and-codex-subagent-backends/consequences: + en: 4154bcdc7ad9ff7c + zh: e2bc1f2010bb48a9 diff --git a/.agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml b/.agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml index 4eb9df8cb0..1f9b21f587 100644 --- a/.agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-05-agent-teams.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-05-agent-teams.md -2026-08-05-agent-teams.md: 6333e511ba1e71823cfa55c27ba46b2665d1ef15 -2026-08-05-agent-teams.zh.md: 3fed1302146406f71d63c7ff2df8f031a91c9804 +/agent-note-durable-agent-teams-over-continuable-children: + en: c914d8148bfc4bf9 + zh: a8115f87c0ac6cae +/agent-note-durable-agent-teams-over-continuable-children/problem: + en: bab62798c2dc07b4 + zh: fe42c5abf9127d37 +/agent-note-durable-agent-teams-over-continuable-children/decision: + en: 58568b3a9b5f60d5 + zh: 02d67b6cb0736c0a +/agent-note-durable-agent-teams-over-continuable-children/profile-delegation: + en: 3a66308576f74247 + zh: 3453f0bcce88033d +/agent-note-durable-agent-teams-over-continuable-children/team-identity: + en: 83e446c928a20c47 + zh: b0a2bd24419dd815 +/agent-note-durable-agent-teams-over-continuable-children/provisioning-and-recovery: + en: 085846d0078c0898 + zh: 40b2ca3ae6864451 +/agent-note-durable-agent-teams-over-continuable-children/mailbox-and-task-transactions: + en: ab2ad55021eb34e0 + zh: 2d1996df7a69201d +/agent-note-durable-agent-teams-over-continuable-children/shared-checkout-boundary: + en: 3969de3b44e412c8 + zh: 12be5854816cb808 +/agent-note-durable-agent-teams-over-continuable-children/web-projection: + en: e6348054f024725b + zh: 8740636e99940308 +/agent-note-durable-agent-teams-over-continuable-children/alternatives-considered: + en: bb266fe7a97f0828 + zh: 7c86c2d6d11ba02a +/agent-note-durable-agent-teams-over-continuable-children/testing: + en: 151b462649212acf + zh: 983c4bee7b71c1e3 +/agent-note-durable-agent-teams-over-continuable-children/consequences: + en: c3740ae56809e537 + zh: 76a1e77d14cb6f26 diff --git a/.agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.i18n.yaml b/.agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.i18n.yaml index bcd3dfd359..19c93bd64d 100644 --- a/.agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-05-context-form-vocabulary.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.md -2026-08-05-context-form-vocabulary.md: e1c909b761fee60ebacb306ef204a4212a03baa4 -2026-08-05-context-form-vocabulary.zh.md: 4d595bf52fba2f7323643ddc47bd365ce6508c9e +/agent-note-producer-declared-context-forms: + en: a88151ac41197659 + zh: 4aaffb71b4ae04ea +/agent-note-producer-declared-context-forms/problem: + en: 74c06aa0b3e5337e + zh: c13364dbaebabba1 +/agent-note-producer-declared-context-forms/decision: + en: e97830627fd8245f + zh: 0b035c15ed09902d +/agent-note-producer-declared-context-forms/why-not-a-presenter-registry: + en: feb1b16eeb312e0c + zh: 9eb3c5af2d510235 +/agent-note-producer-declared-context-forms/alternatives-considered: + en: 86f7f90f4c573316 + zh: d8008512145a89b4 +/agent-note-producer-declared-context-forms/testing: + en: 5910183c18c3341e + zh: 7c5d4e538a66533f +/agent-note-producer-declared-context-forms/consequences: + en: 15d3d98980ea3919 + zh: 4e14b65420de0df3 diff --git a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml b/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml index a2330d603f..95f9c571b7 100644 --- a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-05-durable-web-schedule.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-05-durable-web-schedule.md -2026-08-05-durable-web-schedule.md: b09ab752c9db0587b49dbe50a152144b9ff19515 -2026-08-05-durable-web-schedule.zh.md: 8d84be3e3589969245fa41f433166eabacdf3951 +/agent-note-durable-session-local-reminders: + en: c40fc2bc6dd1b469 + zh: c3932a1c8c60579b +/agent-note-durable-session-local-reminders/problem: + en: 75d2d50c48475d22 + zh: 293c507e9e516f29 +/agent-note-durable-session-local-reminders/decision: + en: 7fd21223d6306a39 + zh: b792a415d9dccba0 +/agent-note-durable-session-local-reminders/decision/session-log-authority-and-tools: + en: 23a928cba17217d6 + zh: 7995b144db6e4c70 +/agent-note-durable-session-local-reminders/decision/explicit-absolute-time-boundary: + en: 2e1fe906d42245aa + zh: bd21d4a2dd7d8afc +/agent-note-durable-session-local-reminders/decision/bounded-fixed-rate-semantics: + en: 2ebada22d530b18a + zh: 90e7dd128c8ba54a +/agent-note-durable-session-local-reminders/decision/live-delivery-lifecycle: + en: e69281749cf18500 + zh: 9ce38e39e486f2d6 +/agent-note-durable-session-local-reminders/decision/read-only-web-catalog: + en: 6ea0fcb2512d1434 + zh: ef9e430200677c9f +/agent-note-durable-session-local-reminders/alternatives-considered: + en: d86b5e8b0380c22a + zh: e6b6fce158608b08 +/agent-note-durable-session-local-reminders/verification: + en: 716fce79e742ecfa + zh: 6abb1480f1b9e2d9 +/agent-note-durable-session-local-reminders/consequences: + en: 7abf5e7d73b32153 + zh: c178fb3f1f28dee4 diff --git a/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml b/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml index ff0246f556..a030f39da0 100644 --- a/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-06-continuable-subagent-interrupt.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.md -2026-08-06-continuable-subagent-interrupt.md: e865415bbba4ea196afd7d075a079412f18e5a1e -2026-08-06-continuable-subagent-interrupt.zh.md: ed4981bdac12a5c8b09b2e8dbc6363817e4d7dea +/agent-note-continuable-subagent-current-turn-interrupt: + en: 0940bfeaf12caf8c + zh: e6a1da625950371d +/agent-note-continuable-subagent-current-turn-interrupt/problem: + en: be2b1e9ef5bb2511 + zh: 36c7ee54c37c0700 +/agent-note-continuable-subagent-current-turn-interrupt/decision: + en: db543685b2fd2f88 + zh: fcc848c04036253c +/agent-note-continuable-subagent-current-turn-interrupt/alternatives-considered: + en: e7e953783cc4a332 + zh: be5d47a503b47170 +/agent-note-continuable-subagent-current-turn-interrupt/consequences: + en: 4a7ea28d02c66b63 + zh: bad8d6e58b45bd81 +/agent-note-continuable-subagent-current-turn-interrupt/testing: + en: e46413bc89f9238e + zh: 4fb1639ae696e9a4 diff --git a/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml b/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml index a8b84e3d55..c405aca74b 100644 --- a/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-06-manager-owned-subagent-settlement-delivery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md -2026-08-06-manager-owned-subagent-settlement-delivery.md: 7f6cfc90862b5bb32368b4b0e1fbe068ba0cbf66 -2026-08-06-manager-owned-subagent-settlement-delivery.zh.md: 23c5506f79d4d95308b0533e8d507ac856c4d85e +/agent-note-settlement-delivery-belongs-to-the-continuation-manager: + en: e8e4fec15acfe5d4 + zh: 6dac0279cf244edc +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/problem: + en: 325f283354af59f6 + zh: 059179e883da78c2 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision: + en: 472a34f28ed5200a + zh: 70dcbbd2e26dc32f +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision/closing-text: + en: 229151705efda8a9 + zh: b4e94b52280a2076 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision/runtime-source: + en: b2e4931dfb6c21b1 + zh: 9bf619cd5b697e68 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision/two-ordering-rules-and-why-the-manager-owns-them: + en: 34fad866d5c6377b + zh: e865e2cb70c3e00a +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision/establishment-holds-ownership-open: + en: bcaf3f22ba44fa01 + zh: d7b0968990f41a66 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision/scheduling: + en: 3d1862329727a379 + zh: 92fcf4ffd366ea30 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision/the-epoch-s-own-log-is-the-whole-account: + en: f444a596a75f0180 + zh: ec9c0b61a38a3458 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/decision/snapshot-coverage: + en: 9e50e4014df1d5b0 + zh: 1a111b53a149a21b +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/alternatives-considered: + en: dd3073a05a8e13bd + zh: e58debc18a591077 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/consequences: + en: 10ebfbc70ff94e20 + zh: c32a335007de89d1 +/agent-note-settlement-delivery-belongs-to-the-continuation-manager/consequences/accepted-risks: + en: 615cd09443411b4d + zh: f74b5dcab43975d3 diff --git a/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.i18n.yaml b/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.i18n.yaml index ce21dc1c9a..adc20bec51 100644 --- a/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-08-web-background-job-display.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-08-web-background-job-display.md -2026-08-08-web-background-job-display.md: 1ebd600e4d423f95ad663c333572a990d0c9efa7 -2026-08-08-web-background-job-display.zh.md: 56d062b5079e15c90cffc30b538efe162bc19d9d +/agent-note-web-background-job-display: + en: 78eff738bc5ed554 + zh: c8a8a83853fa806b +/agent-note-web-background-job-display/problem: + en: 41ddca92193cbbf1 + zh: ec8f39ad20044d1c +/agent-note-web-background-job-display/decision: + en: 50058c6557e05f15 + zh: bbf35bb475474cd8 +/agent-note-web-background-job-display/decision/wire-shape: + en: 4d6b92cbfde80add + zh: d32e0421100eeb71 +/agent-note-web-background-job-display/decision/the-task-registry-change-feed: + en: a7a9416ab3b325dc + zh: 448820bad0224785 +/agent-note-web-background-job-display/decision/the-session-controller-carrier: + en: e9ef574e65e8fb7d + zh: d1a6e446c48a0921 +/agent-note-web-background-job-display/decision/the-client-mirror: + en: 6185994020e639ee + zh: df9b464f95c0f3e2 +/agent-note-web-background-job-display/decision/the-header-action: + en: 8985aa8f6ade32c3 + zh: 94ea0844ed8649b5 +/agent-note-web-background-job-display/decision/what-this-deliberately-does-not-do: + en: c9ff2d1fec1459d9 + zh: b28a573ca9fbb1c2 +/agent-note-web-background-job-display/alternatives-considered: + en: a648d1748674d866 + zh: 0f68b82476121c38 +/agent-note-web-background-job-display/testing: + en: f41d5017ea4beabb + zh: cb216dd1d802ebe2 +/agent-note-web-background-job-display/consequences: + en: 5204e04c3ed02d53 + zh: 9eaa9b52b69be7b2 diff --git a/.agents/notes/implemented/feature/2026-08-08-windows-acl-restricted-token-sandbox.i18n.yaml b/.agents/notes/implemented/feature/2026-08-08-windows-acl-restricted-token-sandbox.i18n.yaml index 65bc426f49..cfa5b6c2ad 100644 --- a/.agents/notes/implemented/feature/2026-08-08-windows-acl-restricted-token-sandbox.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-08-windows-acl-restricted-token-sandbox.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-08-windows-acl-restricted-token-sandbox.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-08-windows-acl-restricted-token-sandbox.md -2026-08-08-windows-acl-restricted-token-sandbox.md: 65780b9bba31605db02dc9be4c1b2454c74eb0f4 -2026-08-08-windows-acl-restricted-token-sandbox.zh.md: fe9aadb97b172d77d65ca6b0a843f05751075502 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer: + en: cfc871213b6d8360 + zh: 18ff96c2272fee09 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/problem: + en: 86e01a1c009ac595 + zh: 91844972d41dd6f9 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/decision: + en: 125dea7427047966 + zh: 5d0bfd3921b38714 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/how-the-restriction-works-why-no-new-identity: + en: ac9b3d800889ea39 + zh: 9db1065b6027f65f +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 4237c596c10e1ee9 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/alternatives-considered/why-not-mxc-microsoft-xcontainer: + en: 0bb56896664ab257 + zh: de921ecab11cf572 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/alternatives-considered/why-not-appcontainer: + en: 6e7ed26630c25476 + zh: edd52735b36b0b12 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/alternatives-considered/why-not-landstrip: + en: e2c573d90c4ddeb9 + zh: f0259213e1321722 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/consequences: + en: b9f3a7c6890707f1 + zh: c9a344b50732c296 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/testing: + en: b223cb2cf13193c9 + zh: 61ddd0a0b99f8f56 +/agent-note-windows-sandbox-rung-raw-acl-restricted-tokens-over-mxc-and-appcontainer/related: + en: dd16f0c5815df991 + zh: df3c1cf511ee52bf diff --git a/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml b/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml index b4d5d4a95a..0841a07056 100644 --- a/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-subagent-approval-pinned-never.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.md -2026-08-10-subagent-approval-pinned-never.md: a21c6b966b1ad00ed63e0fe87b0ce982f0daf490 -2026-08-10-subagent-approval-pinned-never.zh.md: 32f367303559eecbfd5049cd370e48c8ce57de33 +/agent-note-delegated-subagents-run-with-approvals-pinned-to-never: + en: f38cf8f2c67fc976 + zh: a4b357a3452383c3 +/agent-note-delegated-subagents-run-with-approvals-pinned-to-never/problem: + en: fa1add8bd8bb3733 + zh: 35ac0951e676acaf +/agent-note-delegated-subagents-run-with-approvals-pinned-to-never/decision: + en: 2d2e42923663abc7 + zh: 5728346e7c5ea291 +/agent-note-delegated-subagents-run-with-approvals-pinned-to-never/alternatives-considered: + en: 32fe1eb5bd7cd5ab + zh: ea437edee4fbc1c6 +/agent-note-delegated-subagents-run-with-approvals-pinned-to-never/consequences: + en: 4503eecfc7f17fed + zh: 1f201ba769ec0354 diff --git a/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml b/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml index 3b96b194f6..562d31b711 100644 --- a/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-11-background-job-completion-wakes-an-idle-owner.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md -2026-08-11-background-job-completion-wakes-an-idle-owner.md: f13f09d326dc7b4e7b2998f3124f70c185c50922 -2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md: f9b563ebbf90e2ca19d1fc5ca9fa5b028e4429f1 +/agent-note-background-job-completion-wakes-an-idle-owner: + en: b761777a02303d0e + zh: a65eb415e75bcac5 +/agent-note-background-job-completion-wakes-an-idle-owner/problem: + en: da112fe20077acdf + zh: b0e3e099c3aacde5 +/agent-note-background-job-completion-wakes-an-idle-owner/decision: + en: c5d7901d87803d0c + zh: 8a1e473e88f3e400 +/agent-note-background-job-completion-wakes-an-idle-owner/decision/the-busy-owner-keeps-injection: + en: 841588bc73fc4613 + zh: 7fb4095bd55ee241 +/agent-note-background-job-completion-wakes-an-idle-owner/decision/the-cap-on-consecutive-wakes-is-opt-in-and-it-is-not-time: + en: fa9f572f763bc6b0 + zh: f3924fa49d2be22d +/agent-note-background-job-completion-wakes-an-idle-owner/decision/teardown-claims-the-report: + en: f79257596c755a32 + zh: 856bf42492425f9c +/agent-note-background-job-completion-wakes-an-idle-owner/decision/completion-is-announced-last: + en: 9cab013b3513f1e0 + zh: 78ea1b05df94d8a8 +/agent-note-background-job-completion-wakes-an-idle-owner/alternatives-considered: + en: debb2c9b924474c3 + zh: 90e2cefc230e3ec8 +/agent-note-background-job-completion-wakes-an-idle-owner/consequences: + en: a2a6f76c8cc92d57 + zh: 6eed3e6a5c75dfb9 +/agent-note-background-job-completion-wakes-an-idle-owner/consequences/accepted-risks: + en: 2141374aa4f79a2b + zh: acff1b68abf2db7e diff --git a/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml b/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml index 4d8cfe3580..8f60e2293e 100644 --- a/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-11-deepseek-request-user-id-header.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.md -2026-08-11-deepseek-request-user-id-header.md: 54f59a3f69a933af4f80d629f32f5089676263f6 -2026-08-11-deepseek-request-user-id-header.zh.md: 4904a08fcf4320211fd4253403bddda062bd496e +/agent-note-deepseek-request-user-and-session-identity-headers: + en: 6888d1c6a57a6839 + zh: e3817ccbcd782a44 +/agent-note-deepseek-request-user-and-session-identity-headers/problem: + en: fdeb3bc22bab88c0 + zh: 089ea4713776fb7a +/agent-note-deepseek-request-user-and-session-identity-headers/decision: + en: b168d3c975d191aa + zh: fdd92a1a92f87537 +/agent-note-deepseek-request-user-and-session-identity-headers/verification: + en: 3984cb1cb953605e + zh: 59e06d6eac8070d7 +/agent-note-deepseek-request-user-and-session-identity-headers/alternatives-considered: + en: 2233f9f6a934a48f + zh: c73d1db971239742 +/agent-note-deepseek-request-user-and-session-identity-headers/consequences: + en: 1621a8eab7787622 + zh: 636cf922cf76d2bc diff --git a/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml b/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml index 98786c2a8b..13d32374f6 100644 --- a/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-11-minimal-profiles-bare-two-tool-runtime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md -2026-08-11-minimal-profiles-bare-two-tool-runtime.md: 8cfa4aa71e33317947d0661641df1e6e814f5e90 -2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md: f1f916bdde92fd104c3d879ff058b2e0474eef38 +/agent-note-minimal-profiles-use-a-bare-runtime: + en: b086c2a8d0fca111 + zh: 3c81b90a2818e7ff +/agent-note-minimal-profiles-use-a-bare-runtime/problem: + en: 725fe45436a65f26 + zh: 97f96497173bec4f +/agent-note-minimal-profiles-use-a-bare-runtime/decision: + en: ef9aa81743b6bc46 + zh: 86bcf7e3a7e34f4b +/agent-note-minimal-profiles-use-a-bare-runtime/verification: + en: c9d0b2145e4c1271 + zh: 186919163b20379c +/agent-note-minimal-profiles-use-a-bare-runtime/alternatives-considered: + en: 35b3346928cb6c3f + zh: 6e60d1073b5a95e3 +/agent-note-minimal-profiles-use-a-bare-runtime/consequences: + en: 462abbbe168de14c + zh: 13f9e257a5f18984 diff --git a/.agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml b/.agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml index 7e9849194b..c0058f198d 100644 --- a/.agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-15-product-subagent-noninteractive-permissions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.md -2026-08-15-product-subagent-noninteractive-permissions.md: 1ec45f9adafa2364f9d0f37f3914d97054942226 -2026-08-15-product-subagent-noninteractive-permissions.zh.md: 80e99d9ee47da859456faf66560d42e73c88cf3d +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions: + en: feb20636c72ade23 + zh: fd2e9f192a3fa527 +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/problem: + en: 905b54b06f35015a + zh: b0b3a79e9f92b33d +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/decision: + en: a4635e16af21d478 + zh: 6cd59ad7e2bb9885 +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/decision/claude-code: + en: dbbd5e37924de6f7 + zh: 33c327f0737894c4 +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/decision/codex: + en: 75114f6529699ebd + zh: 19dab70be62fb3d7 +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/decision/failure-diagnostic: + en: 5439f8ab6ad61d42 + zh: 4b3f9bee3794b2f2 +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/decision/ownership-and-lifecycle: + en: 987eec9a67ba131d + zh: 735399cd3ac78a45 +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/verification: + en: 16a02354fe427b8e + zh: 948225be10331c8d +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/alternatives-considered: + en: 7b6bbb52fd5e4cbc + zh: c8e7ab515cd6c0db +/agent-note-product-subagents-use-profile-selected-non-interactive-permissions/consequences: + en: 6e995471b4cb9ff4 + zh: 9baf59015a911310 diff --git a/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml b/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml index 792f97a11a..167308d649 100644 --- a/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-18-arbitrary-seq-session-fork.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.md -2026-08-18-arbitrary-seq-session-fork.md: c02ba6c1f24462224cb7f4f245d82063f29c4d61 -2026-08-18-arbitrary-seq-session-fork.zh.md: fe78e505313b2177435abd93e1d8056972b2646b +/agent-note-exact-event-session-forks-with-shared-crash-repair: + en: f75e952184cae150 + zh: 32c2519c85aa6822 +/agent-note-exact-event-session-forks-with-shared-crash-repair/problem: + en: e01b73d9d4b50c50 + zh: 14f7816869b76241 +/agent-note-exact-event-session-forks-with-shared-crash-repair/decision: + en: 0b7afc12950ce308 + zh: 384d26f698a344a7 +/agent-note-exact-event-session-forks-with-shared-crash-repair/alternatives-considered: + en: 49544ba70825c8e9 + zh: 41c7dceb9241fc5a +/agent-note-exact-event-session-forks-with-shared-crash-repair/consequences: + en: a829fc736a132d89 + zh: 03b116766bd44d64 +/agent-note-exact-event-session-forks-with-shared-crash-repair/testing: + en: f15e826fa12a4f55 + zh: fe053fa01304e072 diff --git a/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.i18n.yaml b/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.i18n.yaml index 5e0f82335f..2095b6be29 100644 --- a/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-18-model-selected-subagent-routes.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.md -2026-08-18-model-selected-subagent-routes.md: 9cdbdbec3b79a93043fa6ae95a6a6dedf6072086 -2026-08-18-model-selected-subagent-routes.zh.md: 3b81f5417339325dd60884049a853d1094a9f1eb +/agent-note-model-selected-subagent-routes: + en: 1e719fd754836549 + zh: 603cce7a5f9ec6bd +/agent-note-model-selected-subagent-routes/problem: + en: f4010276228f4441 + zh: 50ac98640dbf519a +/agent-note-model-selected-subagent-routes/decision: + en: 39836773d1830515 + zh: 537c96bfa93573e7 +/agent-note-model-selected-subagent-routes/alternatives-considered: + en: 3b9fd91294fbfd27 + zh: 2854dd690ead3d15 +/agent-note-model-selected-subagent-routes/consequences: + en: 55969d3742da39ce + zh: a248167f9bb2fa4e +/agent-note-model-selected-subagent-routes/related-decisions: + en: 28c4eb2e90488ff0 + zh: ba59bb2fafdd4720 diff --git a/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.i18n.yaml b/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.i18n.yaml index 4f9e640fe2..6e1c636324 100644 --- a/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-20-unified-image-request-pipeline.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.md -2026-08-20-unified-image-request-pipeline.md: b79eeb7d908d664362851c28bda64dab163aac89 -2026-08-20-unified-image-request-pipeline.zh.md: 444234715256c48167b0b45dbd8843a9c80079f7 +/agent-note-unified-normalized-attachments-request-versions-and-provider-files: + en: 79d1a6f50ac76c3d + zh: 9af0070009537602 +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/problem: + en: 7ce3a351a1492dd0 + zh: 7c7e3bb6799822f8 +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/decision: + en: 98e7aad889f5b79c + zh: 84b24f6fd9209fcf +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/decision/provider-independent-normalized-attachment: + en: 75b1d3732f3a9d05 + zh: c8683df3c6f0c989 +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/decision/deterministic-request-versions: + en: 8afa51d02643bd40 + zh: d27d9a5b09fc6d74 +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/decision/stable-handles: + en: 1b204c138b0d8e6c + zh: 3d6a2e82372e6825 +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/decision/deepseek-files-lifecycle: + en: b35a18963d122b21 + zh: faa21c45cef3555a +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/decision/diagnostics: + en: e4c79434bedfc385 + zh: 9e7de1061629ef5e +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/alternatives-considered: + en: 7bfd39c761549b85 + zh: 6ac48c5842f7df91 +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/verification: + en: 7697f72ce5a7d969 + zh: 733ca1e0a05ae4ed +/agent-note-unified-normalized-attachments-request-versions-and-provider-files/consequences: + en: 1a6ef14a3e13b502 + zh: bc4ab273755b2739 diff --git a/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml b/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml index 3877584618..99cd729035 100644 --- a/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-22-fire-and-forget-webhook-sessions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.md -2026-08-22-fire-and-forget-webhook-sessions.md: 08f718b8063c7ca0d78e93f547c0e0c33c183d07 -2026-08-22-fire-and-forget-webhook-sessions.zh.md: f015d993e61864bbc21d9d55fc331c25118fbde3 +/agent-note-fire-and-forget-webhook-sessions: + en: adb18c2b0d575306 + zh: 2605913ffe5bafaa +/agent-note-fire-and-forget-webhook-sessions/problem: + en: 394e062b7e8f31a0 + zh: bcb26075cf62115c +/agent-note-fire-and-forget-webhook-sessions/decision: + en: 08ff83adfec1a7da + zh: 871b9998631f22ac +/agent-note-fire-and-forget-webhook-sessions/provider-adapters: + en: 8eb2865f18fcf018 + zh: 1b73dfd634a8c07a +/agent-note-fire-and-forget-webhook-sessions/session-creation: + en: fbc57974dd81bf5a + zh: 1a4810df6b7a776f +/agent-note-fire-and-forget-webhook-sessions/alternatives-considered: + en: 59634068f7c22476 + zh: 844472f7a5e9de91 +/agent-note-fire-and-forget-webhook-sessions/verification: + en: e2a3192fc68b1ade + zh: 63c2b07bf5f32696 +/agent-note-fire-and-forget-webhook-sessions/consequences: + en: 8b40a7c91834a281 + zh: 882125d8070d77c1 diff --git a/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.i18n.yaml b/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.i18n.yaml index 872993adb4..b6b5b90bc1 100644 --- a/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-22-standard-acp-automation-controls.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.md -2026-08-22-standard-acp-automation-controls.md: dd1e39b84f942417640f741f17a211276b67872c -2026-08-22-standard-acp-automation-controls.zh.md: 2d7160bda164949799652bc2e3e3ab95afdafb0c +/agent-note-standard-acp-v1-automation-controls: + en: e6a4b457afbf12ac + zh: b1d83f4892e05f99 +/agent-note-standard-acp-v1-automation-controls/problem: + en: ba88135e9528b4c7 + zh: 8bc1be92b1f5178e +/agent-note-standard-acp-v1-automation-controls/decision: + en: 0a2b2a83aca7d189 + zh: 8de789db33953283 +/agent-note-standard-acp-v1-automation-controls/per-session-ownership: + en: 5b98c5e68eccfe76 + zh: c22dc47ad8003f22 +/agent-note-standard-acp-v1-automation-controls/persistent-session-controls: + en: 122752f1cb116417 + zh: 96971bcc1fed4a8a +/agent-note-standard-acp-v1-automation-controls/standard-configuration-options: + en: 61cb15891965c67a + zh: a0a958094b60951f +/agent-note-standard-acp-v1-automation-controls/standard-mcp-mapping: + en: 57acbe1c89af4c6b + zh: 3417e3d4b1874d94 +/agent-note-standard-acp-v1-automation-controls/semantic-update-projection: + en: 8e5128cd34629af3 + zh: 6132e78ddf9b3cf9 +/agent-note-standard-acp-v1-automation-controls/alternatives-considered: + en: fc94c87f43787d95 + zh: 17850ecc35e6ab9d +/agent-note-standard-acp-v1-automation-controls/verification: + en: 08e2b98606d9d362 + zh: 99d6aef7c89e287f +/agent-note-standard-acp-v1-automation-controls/consequences: + en: 9f839d4720f07d28 + zh: 5164ae3eb5b52385 diff --git a/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.i18n.yaml b/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.i18n.yaml index 548e9f5b36..d5220cd2f4 100644 --- a/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-24-activity-observation-seam.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-24-activity-observation-seam.md -2026-08-24-activity-observation-seam.md: 21fe08fd21ad95eec7a83f6f29b9b94514358bb9 -2026-08-24-activity-observation-seam.zh.md: ffb6766b3e5d226d324ea2894a6e3f758cf1932a +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client: + en: 7fe6230c2327e0b5 + zh: 13a07f7926f6861c +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client/problem: + en: 8b50b64ed5a852bd + zh: 21d651e0109dc641 +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client/decision: + en: 88b51276287344bd + zh: 0827faa6c822e4a5 +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client/decision/why-not-durable-session-events-the-control-stream-or-the-jobs-seam: + en: 58d884216caa6d85 + zh: aa47eb76bdb1ece0 +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client/decision/two-cursor-regimes-kept-separate: + en: 7ab433f08fa6140a + zh: d001a90815b0156b +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client/alternatives-considered: + en: 4462632fd94010c1 + zh: 01d1285f2ac6e42c +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client/testing: + en: 26687866bbf7be90 + zh: 32dea8052bd5465b +/agent-note-the-activity-observation-seam-ctx-activities-and-live-output-streaming-to-the-web-client/consequences: + en: e975f4f2410e8619 + zh: 42f16406950a4d6f diff --git a/.agents/notes/implemented/feature/2026-08-24-user-authorized-subagent-model-routes.i18n.yaml b/.agents/notes/implemented/feature/2026-08-24-user-authorized-subagent-model-routes.i18n.yaml index 697f943349..75bb4b5177 100644 --- a/.agents/notes/implemented/feature/2026-08-24-user-authorized-subagent-model-routes.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-24-user-authorized-subagent-model-routes.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-24-user-authorized-subagent-model-routes.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-24-user-authorized-subagent-model-routes.md -2026-08-24-user-authorized-subagent-model-routes.md: ef6f90d2cc1ec79e1381d75fd8cc25c568af3067 -2026-08-24-user-authorized-subagent-model-routes.zh.md: 23519bfc6619718e1cbf98dbad65eccd90353c0a +/agent-note-user-authorized-subagent-model-routes: + en: 572df418f108d72b + zh: d17c31e1c4150155 +/agent-note-user-authorized-subagent-model-routes/problem: + en: 3238dfb7db7dfdd8 + zh: ec3bdd9a9da0a321 +/agent-note-user-authorized-subagent-model-routes/decision: + en: 0166e452a774ade5 + zh: 747061b9424b3610 +/agent-note-user-authorized-subagent-model-routes/alternatives-considered: + en: e41c17226190ea8b + zh: d3b1395fafe75f01 +/agent-note-user-authorized-subagent-model-routes/consequences: + en: f1927d31ffc1dee9 + zh: b0fed04b80043c71 +/agent-note-user-authorized-subagent-model-routes/related-decisions: + en: 0b54fad7171103ec + zh: 8cf1d007a42fb991 diff --git a/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml b/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml index 511e99e65e..ee45f9f6ea 100644 --- a/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-25-feedback-gated-telemetry-default.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.md -2026-08-25-feedback-gated-telemetry-default.md: 1a5ecd6b34415650db5e5068d96f9d2dc5f30e42 -2026-08-25-feedback-gated-telemetry-default.zh.md: 55936aa4045214b627ecaad39d898b1898a50fc9 +/agent-note-feedback-gated-session-telemetry-default: + en: 213a794503e0d7bc + zh: e086babdf2ad52c9 +/agent-note-feedback-gated-session-telemetry-default/problem: + en: 46b3efd996067d48 + zh: fc59ee763b07987e +/agent-note-feedback-gated-session-telemetry-default/decision: + en: 4136623e5589a592 + zh: db7bc5e9e6ebc19f +/agent-note-feedback-gated-session-telemetry-default/alternatives-considered: + en: 14b51f0de8771943 + zh: 616afb4097857368 +/agent-note-feedback-gated-session-telemetry-default/consequences: + en: d3ed844cc1e29b0b + zh: 76838815edb0a450 diff --git a/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml b/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml index a806e17e4e..9c2732ed18 100644 --- a/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-25-promote-open-anywhere-plugin.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.md -2026-08-25-promote-open-anywhere-plugin.md: e5a435d24c2400b68fad8cccb094b176ad83f590 -2026-08-25-promote-open-anywhere-plugin.zh.md: 108091f3e7c2736063d67bc6b2d7fe0c039b35db +/agent-note-promote-open-anywhere-from-community-plugin-to-first-party-package: + en: 279cf946b4f6c386 + zh: cf76602956b811de +/agent-note-promote-open-anywhere-from-community-plugin-to-first-party-package/problem: + en: 08d8d5454fdc2e75 + zh: 22381ce00cb51148 +/agent-note-promote-open-anywhere-from-community-plugin-to-first-party-package/decision: + en: 26a46d3b6f21288a + zh: 94c32f789b3e28ac +/agent-note-promote-open-anywhere-from-community-plugin-to-first-party-package/alternatives-considered: + en: cc7c2ed172e4de3f + zh: b8fed28d9ee835c5 +/agent-note-promote-open-anywhere-from-community-plugin-to-first-party-package/consequences: + en: 5be6b2891e3429c9 + zh: 68ffcff52676824f diff --git a/.agents/notes/implemented/feature/2026-08-26-generic-file-upload.i18n.yaml b/.agents/notes/implemented/feature/2026-08-26-generic-file-upload.i18n.yaml index 6019a38f89..49360cffec 100644 --- a/.agents/notes/implemented/feature/2026-08-26-generic-file-upload.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-26-generic-file-upload.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-26-generic-file-upload.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-26-generic-file-upload.md -2026-08-26-generic-file-upload.md: 196d048da9ffc1342cd62cb9c25674b7cecaffac -2026-08-26-generic-file-upload.zh.md: fce7cef76cf36060f55165d009c568480abb0f16 +/agent-note-generic-file-upload: + en: e82308b967a63c32 + zh: 743f8f4eda638827 +/agent-note-generic-file-upload/problem: + en: e7c3b5d7702714fe + zh: 268f162b553b37d1 +/agent-note-generic-file-upload/decision: + en: 31c7ad96c6ab82c8 + zh: 806922fc8fcd1242 +/agent-note-generic-file-upload/alternatives-considered: + en: 23f386b05e4e79ef + zh: 0756c4fa30e8d0eb +/agent-note-generic-file-upload/consequences: + en: e07df040738c45bb + zh: 9de3b560cb104bd3 +/agent-note-generic-file-upload/testing: + en: 3a50ac370d51cda9 + zh: d490f58922f8795b +/agent-note-generic-file-upload/related: + en: f7e186f0decb4e79 + zh: e5bc9fbd24b6d626 diff --git a/.agents/notes/implemented/feature/2026-08-26-human-job-kill.i18n.yaml b/.agents/notes/implemented/feature/2026-08-26-human-job-kill.i18n.yaml index 151857373f..787b132459 100644 --- a/.agents/notes/implemented/feature/2026-08-26-human-job-kill.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-26-human-job-kill.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-26-human-job-kill.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-26-human-job-kill.md -2026-08-26-human-job-kill.md: efffdbd85bf2fa665565ff584a6938cfee827516 -2026-08-26-human-job-kill.zh.md: 206acca008518dd689351e40a99ff1571f3d1a8f +/agent-note-human-job-kill-an-unclaimed-terminal-report-instead-of-a-second-cancellation-path: + en: d47dedfab1caa170 + zh: 00bb8cd62ed79d54 +/agent-note-human-job-kill-an-unclaimed-terminal-report-instead-of-a-second-cancellation-path/problem: + en: 3690502ccc80b5a3 + zh: cfd3c378e3921864 +/agent-note-human-job-kill-an-unclaimed-terminal-report-instead-of-a-second-cancellation-path/decision: + en: ccd3751d2ecaba5c + zh: f8f820f9492a9bf3 +/agent-note-human-job-kill-an-unclaimed-terminal-report-instead-of-a-second-cancellation-path/alternatives-considered: + en: 74a385c561d8854a + zh: c131a4e386d9b976 +/agent-note-human-job-kill-an-unclaimed-terminal-report-instead-of-a-second-cancellation-path/testing: + en: 094513090d51adfc + zh: b6598110da6c5793 +/agent-note-human-job-kill-an-unclaimed-terminal-report-instead-of-a-second-cancellation-path/consequences: + en: 0bcec15bd9c760fe + zh: 754269206f110f69 diff --git a/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml b/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml index 5359a7b2cd..428a985b5b 100644 --- a/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-26-shell-execute-projection-and-jobs-at-start.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md -2026-08-26-shell-execute-projection-and-jobs-at-start.md: 2a03cd9f99645c10377dc9d2a5fdc68cb5ab0a4a -2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md: bdc6cc432dbb8e3a0a8d0fc86cf055f3938ff201 +/agent-note-one-shell-execute-foreground-as-a-projection-timeout-as-a-bounded-wait-on-the-job: + en: bbc82e3f79a66fcb + zh: 6c348491e0db97b0 +/agent-note-one-shell-execute-foreground-as-a-projection-timeout-as-a-bounded-wait-on-the-job/problem: + en: e0e1292e5a785322 + zh: 34ec6572ed6cf406 +/agent-note-one-shell-execute-foreground-as-a-projection-timeout-as-a-bounded-wait-on-the-job/decision: + en: 332ddaffd22e473f + zh: 15c0ff6808316770 +/agent-note-one-shell-execute-foreground-as-a-projection-timeout-as-a-bounded-wait-on-the-job/alternatives-considered: + en: d888a561fafa5bb3 + zh: 719d687f2b3e4c10 +/agent-note-one-shell-execute-foreground-as-a-projection-timeout-as-a-bounded-wait-on-the-job/testing: + en: 65f59286de9fa00a + zh: 664d7f82a1479153 +/agent-note-one-shell-execute-foreground-as-a-projection-timeout-as-a-bounded-wait-on-the-job/consequences: + en: 5a5278fc96afacc1 + zh: cc088ea97c6249c9 diff --git a/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml b/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml index 25749576f7..db46bc5f64 100644 --- a/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-27-continuable-subagent-human-inbox-control.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.md -2026-08-27-continuable-subagent-human-inbox-control.md: 6bf8ceb2b8eab7138a1e617bb97e475d5cfa8172 -2026-08-27-continuable-subagent-human-inbox-control.zh.md: 081fb84f75afcc94339ae3bf627480081bc56d89 +/agent-note-human-inbox-controls-for-continuable-subagents: + en: 42b7ed7255c6c527 + zh: c3faf95870ba0e0c +/agent-note-human-inbox-controls-for-continuable-subagents/problem: + en: 4241f01a3a205ff5 + zh: 415c642ad379a53c +/agent-note-human-inbox-controls-for-continuable-subagents/decision: + en: 4f8c53964ac18aff + zh: 31d747618ca608cc +/agent-note-human-inbox-controls-for-continuable-subagents/alternatives-considered: + en: c1f10fb70c8bb500 + zh: 4dc0ec6cac95595c +/agent-note-human-inbox-controls-for-continuable-subagents/consequences: + en: 5fdc5b07eae2633c + zh: 1359d126d182d219 diff --git a/.agents/notes/implemented/feature/2026-08-28-auto-review.i18n.yaml b/.agents/notes/implemented/feature/2026-08-28-auto-review.i18n.yaml index b0a8d7fa60..4e846fcbce 100644 --- a/.agents/notes/implemented/feature/2026-08-28-auto-review.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-28-auto-review.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-28-auto-review.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-28-auto-review.md -2026-08-28-auto-review.md: 13b3769b97c27b2ef4ac5cf4f6c2c2dde6323e7f -2026-08-28-auto-review.zh.md: bf7d70b85be43a0b9f451dd20e3bcd5c4b879cd3 +/agent-note-experimental-auto-review-before-each-tool-call: + en: 66cfb9da0816f4f2 + zh: 79f66b9713964a5e +/agent-note-experimental-auto-review-before-each-tool-call/problem: + en: 492ba2355360d81a + zh: 825c0e7ab1cf4beb +/agent-note-experimental-auto-review-before-each-tool-call/decision: + en: 8bf58a9d5c800af6 + zh: 3bb386279301fbbf +/agent-note-experimental-auto-review-before-each-tool-call/decision/effects-and-authority: + en: 55a79d8572fb4332 + zh: f63d03d0f3bb5811 +/agent-note-experimental-auto-review-before-each-tool-call/decision/one-complete-reviewer-request: + en: d93bd9b8af6b0bfc + zh: 9514c2e5554a721e +/agent-note-experimental-auto-review-before-each-tool-call/decision/result-and-cancellation: + en: 7952d0f88e7b7753 + zh: ea85c96f9d0b78a1 +/agent-note-experimental-auto-review-before-each-tool-call/decision/process-catalog-and-children: + en: c305e3506fb4febc + zh: aecc99cda8be3de2 +/agent-note-experimental-auto-review-before-each-tool-call/alternatives-considered: + en: fe97128ed05b9e43 + zh: 4aaa344933fa89b4 +/agent-note-experimental-auto-review-before-each-tool-call/consequences: + en: 1aca35a6d0784f67 + zh: 51cfa397db101600 diff --git a/.agents/notes/implemented/feature/2026-08-31-cross-process-session-write-lease.i18n.yaml b/.agents/notes/implemented/feature/2026-08-31-cross-process-session-write-lease.i18n.yaml index 0451d6edcb..679466e91b 100644 --- a/.agents/notes/implemented/feature/2026-08-31-cross-process-session-write-lease.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-31-cross-process-session-write-lease.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-31-cross-process-session-write-lease.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-31-cross-process-session-write-lease.md -2026-08-31-cross-process-session-write-lease.md: bf02ce3eddfb5bcfe2a7d6bd6a6701c47d5f28a4 -2026-08-31-cross-process-session-write-lease.zh.md: b287ab7d6cb4202745fd1112bcb313cb261d674e +/agent-note-cross-process-session-write-lease: + en: 700d2cb4cbf2ba75 + zh: 04a6283f685f4b8a +/agent-note-cross-process-session-write-lease/problem: + en: fa5063a7f8ec786f + zh: f3f7f955d146f00c +/agent-note-cross-process-session-write-lease/decision: + en: fd3a65b3d53ad2d7 + zh: a795f9665045966a +/agent-note-cross-process-session-write-lease/alternatives-considered: + en: c67ce2d14445140a + zh: dd0f531b6e540f9e +/agent-note-cross-process-session-write-lease/consequences: + en: d2a681fa574ebd04 + zh: 4af2e372011bbd59 diff --git a/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.i18n.yaml b/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.i18n.yaml index 1bc2f5e95d..c220a01232 100644 --- a/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-01-workflow-run-in-background.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.md -2026-09-01-workflow-run-in-background.md: 5a141b384186e7b4f9e8125c37eaf2c01a614a6d -2026-09-01-workflow-run-in-background.zh.md: 102a398d95eef6df07443a919c19dae57b5c1e74 +/agent-note-workflow-runs-gain-run-in-background-over-the-job-registry: + en: f009de4a29acc7d0 + zh: d207b3722564338d +/agent-note-workflow-runs-gain-run-in-background-over-the-job-registry/problem: + en: 4ef955f5184800a3 + zh: 8e4e74557efac4ca +/agent-note-workflow-runs-gain-run-in-background-over-the-job-registry/decision: + en: b0bc1669a6e61b1e + zh: 99ba5afe693aed9d +/agent-note-workflow-runs-gain-run-in-background-over-the-job-registry/alternatives-considered: + en: 70c9a5dd502eae0c + zh: 2b4f7b6a83cfec18 +/agent-note-workflow-runs-gain-run-in-background-over-the-job-registry/consequences: + en: 439882b972d28d4e + zh: 3bd61f42e29f490c diff --git a/.agents/notes/implemented/feature/2026-09-02-in-history-system-prompt-replacement.i18n.yaml b/.agents/notes/implemented/feature/2026-09-02-in-history-system-prompt-replacement.i18n.yaml index 0c14aed1d7..52afcd886f 100644 --- a/.agents/notes/implemented/feature/2026-09-02-in-history-system-prompt-replacement.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-02-in-history-system-prompt-replacement.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-02-in-history-system-prompt-replacement.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-02-in-history-system-prompt-replacement.md -2026-09-02-in-history-system-prompt-replacement.md: aaaf44d6388e6daf98acf8b1a93a61f1d7c55703 -2026-09-02-in-history-system-prompt-replacement.zh.md: 73003b04de82f45154f9c673654cc492eb62a4fd +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes: + en: 7b69ac848815886a + zh: db7a9f4000fe5359 +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/problem: + en: 03d0dad3061794af + zh: 4dbef64cd45c4064 +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/decision: + en: da6d3f0677f0343b + zh: 8b5dcf7e1108edc9 +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/decision/capability: + en: 2f23fa55e1ce652c + zh: 335695fc654ab1db +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/decision/the-decision-rule: + en: 3734096cc35b0c86 + zh: 7b6f4ceaae602c87 +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/decision/presentation-and-accounting: + en: 00a91b4fb592e1e4 + zh: dac2e4f0a3ee9ecf +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/decision/compaction: + en: c21a3e7a773860e5 + zh: 566669e245ccdbaf +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/alternatives-considered: + en: bb8f951694de2aea + zh: d53960bf0ec052c7 +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/consequences: + en: beda064bcd194a2a + zh: 8a3bb81d5edcd60a +/agent-note-in-history-system-prompt-replacement-for-cache-stable-prompt-changes/testing: + en: 4b09d253309f2d4d + zh: f897ffad3a1b2fbe diff --git a/.agents/notes/implemented/feature/2026-09-04-right-sidebar-docking-infrastructure.i18n.yaml b/.agents/notes/implemented/feature/2026-09-04-right-sidebar-docking-infrastructure.i18n.yaml index 137c5eba63..091e991d76 100644 --- a/.agents/notes/implemented/feature/2026-09-04-right-sidebar-docking-infrastructure.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-04-right-sidebar-docking-infrastructure.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-04-right-sidebar-docking-infrastructure.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-04-right-sidebar-docking-infrastructure.md -2026-09-04-right-sidebar-docking-infrastructure.md: c5bfb75730f2037826723bc7fd0aa2bb01005d1e -2026-09-04-right-sidebar-docking-infrastructure.zh.md: 4959032b53f84654205a1973aee781acb356f999 +/agent-note-right-sidebar-docking-infrastructure: + en: 850908fd93d39f7e + zh: 371d9b0d946c2cb4 +/agent-note-right-sidebar-docking-infrastructure/problem: + en: dae256ae605900f2 + zh: 11e9c51126ad836c +/agent-note-right-sidebar-docking-infrastructure/decision: + en: a30a377c8df0e654 + zh: f2577e74c6be3e88 +/agent-note-right-sidebar-docking-infrastructure/decision/package-topology: + en: 7dfd8ad3a822b421 + zh: 338151c69866c7d5 +/agent-note-right-sidebar-docking-infrastructure/decision/layout-engine: + en: af79bc03cd8e8f72 + zh: 88145221570301bf +/agent-note-right-sidebar-docking-infrastructure/decision/the-frame-s-right-column: + en: 78c5b5bf86d0293a + zh: 28b8856d88b78d1e +/agent-note-right-sidebar-docking-infrastructure/decision/state: + en: 7a73e989059c0871 + zh: ef4f8783fc5f3229 +/agent-note-right-sidebar-docking-infrastructure/decision/beyond-the-surface: + en: 82b5fd9d88c3ea43 + zh: d8581e996abbe034 +/agent-note-right-sidebar-docking-infrastructure/decision/entry-points-and-removals: + en: e9cb121a18afadc2 + zh: 37ff2e89d5641e11 +/agent-note-right-sidebar-docking-infrastructure/alternatives-considered: + en: 6569babd25fc0599 + zh: f9d93c937b2cad60 +/agent-note-right-sidebar-docking-infrastructure/consequences: + en: deb3f1a934c49958 + zh: 040de05a3c602858 +/agent-note-right-sidebar-docking-infrastructure/testing: + en: c7ca930dede9f819 + zh: 44c76a4faefe7268 +/agent-note-right-sidebar-docking-infrastructure/deferred: + en: 6c2cd149c6ecf2b0 + zh: b2673dee64de6bd6 diff --git a/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml b/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml index 0d328978e1..7c077c2da7 100644 --- a/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-sidebar-text-preview-and-file-tree.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.md -2026-09-05-sidebar-text-preview-and-file-tree.md: e978043545b7f172f2b67053fe44b5936ea9b529 -2026-09-05-sidebar-text-preview-and-file-tree.zh.md: 088d4a58c973843ac5085cfaa1ca9980387bcc8f +/agent-note-sidebar-text-preview-and-file-tree: + en: 2f9ef6cc50ad825d + zh: 5ec8592ac9963f85 +/agent-note-sidebar-text-preview-and-file-tree/problem: + en: 4e647765dfcd2ef9 + zh: 2c362ffdee7ff3d4 +/agent-note-sidebar-text-preview-and-file-tree/decision: + en: f8ea6a52a404b064 + zh: c91528d66487bb33 +/agent-note-sidebar-text-preview-and-file-tree/decision/the-guide: + en: cc4eaeefe4de9a02 + zh: bc9e727d6316ae88 +/agent-note-sidebar-text-preview-and-file-tree/decision/the-text-preview: + en: efc84d800d52a69e + zh: 0061138d7cd12ae7 +/agent-note-sidebar-text-preview-and-file-tree/decision/the-file-tree: + en: f03013eee6c293de + zh: 54796ac3da91047f +/agent-note-sidebar-text-preview-and-file-tree/alternatives-considered: + en: 87fddbd01f117061 + zh: 1810d283202db648 +/agent-note-sidebar-text-preview-and-file-tree/consequences: + en: 00b1675fcd76ad0d + zh: caf3eb340c74aef7 +/agent-note-sidebar-text-preview-and-file-tree/testing: + en: 2987a6417b7e4c14 + zh: 97eeb97e67536c70 +/agent-note-sidebar-text-preview-and-file-tree/deferred: + en: 6c788b26fb65227b + zh: 1bafda76bac92edd +/agent-note-sidebar-text-preview-and-file-tree/related: + en: 0a2531b19968c69b + zh: 4065017075aa11cc diff --git a/.agents/notes/implemented/feature/2026-09-07-composer-session-stats-pills.i18n.yaml b/.agents/notes/implemented/feature/2026-09-07-composer-session-stats-pills.i18n.yaml index d4ef512e91..b54791c599 100644 --- a/.agents/notes/implemented/feature/2026-09-07-composer-session-stats-pills.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-07-composer-session-stats-pills.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-composer-session-stats-pills.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-07-composer-session-stats-pills.md -2026-09-07-composer-session-stats-pills.md: 50d3d3294ed012773657ba9849e45835c361d8be -2026-09-07-composer-session-stats-pills.zh.md: 97b91b601e62e8b06ab13a764babb4dd3b25bfce +/agent-note-composer-session-stats-two-icon-pills-with-click-open-stat-dialogs: + en: 76e613674da56884 + zh: 4c9c5d750eace3e0 +/agent-note-composer-session-stats-two-icon-pills-with-click-open-stat-dialogs/problem: + en: 654462fa4eeb58dc + zh: 7c9cd57947ab8639 +/agent-note-composer-session-stats-two-icon-pills-with-click-open-stat-dialogs/decision: + en: 27eb1718cd80b39b + zh: e39576842a3578c1 +/agent-note-composer-session-stats-two-icon-pills-with-click-open-stat-dialogs/alternatives-considered: + en: 7798b1fb9824b920 + zh: 7e75cd154ab58a0b +/agent-note-composer-session-stats-two-icon-pills-with-click-open-stat-dialogs/consequences: + en: c078fb870536eec6 + zh: 17076d824c74ee9d diff --git a/.agents/notes/implemented/feature/2026-09-07-deepseek-messages-adapter.i18n.yaml b/.agents/notes/implemented/feature/2026-09-07-deepseek-messages-adapter.i18n.yaml index 13e41b76da..65061d8855 100644 --- a/.agents/notes/implemented/feature/2026-09-07-deepseek-messages-adapter.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-07-deepseek-messages-adapter.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-deepseek-messages-adapter.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-07-deepseek-messages-adapter.md -2026-09-07-deepseek-messages-adapter.md: 29f712e57c8048ddb0c05b5f56fd4793c52bec5f -2026-09-07-deepseek-messages-adapter.zh.md: 3cf60fc2101fb835423b74a6532e5edcc5bee911 +/agent-note-deepseek-through-the-anthropic-messages-protocol: + en: 4d1dc31d47e3e8b1 + zh: b80687f6506860d5 +/agent-note-deepseek-through-the-anthropic-messages-protocol/problem: + en: 6c9d47e829752afe + zh: 98bd3b5300bfea8c +/agent-note-deepseek-through-the-anthropic-messages-protocol/decision: + en: 3c28330671a1e6db + zh: 0d7ef9a8cf22c51f +/agent-note-deepseek-through-the-anthropic-messages-protocol/alternatives-considered: + en: 4297bc439e8b23e4 + zh: 2bb4dec78040d81e +/agent-note-deepseek-through-the-anthropic-messages-protocol/consequences: + en: 76aa9259724323d2 + zh: 0aac83847bbd4ab6 diff --git a/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.i18n.yaml b/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.i18n.yaml index a3796aa548..d1cc740eac 100644 --- a/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-model-switch-notice.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-07-model-switch-notice.md -2026-09-07-model-switch-notice.md: cb2f915f13b5fa277977b7a768a3531074126f2a -2026-09-07-model-switch-notice.zh.md: b6dd8da02732e4b6c6b2102aef6074b8f136d37d +/agent-note-model-visible-route-change-notices: + en: 8e372ee5814c99d1 + zh: 3fd0faa18fc02f75 +/agent-note-model-visible-route-change-notices/problem: + en: 0c0be027f271e132 + zh: c4f6aa9217633f43 +/agent-note-model-visible-route-change-notices/decision: + en: 86dbb17229ae9634 + zh: 6b0af5f12441461c +/agent-note-model-visible-route-change-notices/alternatives-considered: + en: 9e8ac73976d39c99 + zh: e637370a5f2b0de8 +/agent-note-model-visible-route-change-notices/consequences: + en: 93976aae03285052 + zh: 27791c4f1f36dc92 diff --git a/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.i18n.yaml b/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.i18n.yaml index daa947a20c..ddf9d83bdd 100644 --- a/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-session-prose-local-media-display.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.md -2026-09-07-session-prose-local-media-display.md: fe769d1cbe0b54eed355a7e699bf853a497820cb -2026-09-07-session-prose-local-media-display.zh.md: 2cfff4016f42a13d94a1097602ff2dadbd28d2a7 +/agent-note-session-prose-local-media-paths-display-through-a-same-origin-file-route: + en: 58736e33d45c5578 + zh: 224ab6304833ce7f +/agent-note-session-prose-local-media-paths-display-through-a-same-origin-file-route/problem: + en: 934cbf480461e9e6 + zh: 986d53c72b94cfe4 +/agent-note-session-prose-local-media-paths-display-through-a-same-origin-file-route/decision: + en: 37e189446dd25601 + zh: 0321b091e2250650 +/agent-note-session-prose-local-media-paths-display-through-a-same-origin-file-route/alternatives-considered: + en: b184da259c41e4de + zh: 5c75e50fa595a30e +/agent-note-session-prose-local-media-paths-display-through-a-same-origin-file-route/consequences: + en: 9929a8ad123b21b0 + zh: ac5bf7f3a317d180 +/agent-note-session-prose-local-media-paths-display-through-a-same-origin-file-route/testing: + en: 3c29c3c506a993b2 + zh: 2dfac506ae2ff93a diff --git a/.agents/notes/implemented/feature/2026-09-08-composer-menu-sections-and-localized-rows.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-composer-menu-sections-and-localized-rows.i18n.yaml index 93a617d08b..9956298fd4 100644 --- a/.agents/notes/implemented/feature/2026-09-08-composer-menu-sections-and-localized-rows.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-composer-menu-sections-and-localized-rows.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-composer-menu-sections-and-localized-rows.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-composer-menu-sections-and-localized-rows.md -2026-09-08-composer-menu-sections-and-localized-rows.md: 50b97ce2c7e59d53bf5607fef74a799a359d27c8 -2026-09-08-composer-menu-sections-and-localized-rows.zh.md: 92bcb04bfe9b4f7b5581c80d7c0b843f98096e52 +/agent-note-composer-menu-sections-localized-rows-and-the-file-row: + en: c917d19351c56a78 + zh: f443c8b88e4f71dd +/agent-note-composer-menu-sections-localized-rows-and-the-file-row/problem: + en: 3047bf5dd9f33e93 + zh: 34b017add5329b49 +/agent-note-composer-menu-sections-localized-rows-and-the-file-row/decision: + en: 7f9b8265d826561e + zh: e2eca2e3f58d296f +/agent-note-composer-menu-sections-localized-rows-and-the-file-row/alternatives-considered: + en: a7806a39ab7a1bac + zh: 421815a13d53e306 +/agent-note-composer-menu-sections-localized-rows-and-the-file-row/consequences: + en: 8d4daba9e67cdfaa + zh: 6ef43f58f9abf3bc diff --git a/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml index 3bdaabeccf..ea1536b2ae 100644 --- a/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-desktop-uninstall-preserve-dsh-home.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md -2026-09-08-desktop-uninstall-preserve-dsh-home.md: 921d9681aa6a26c39e8861d2156dc868237f5b37 -2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md: cb9187bb6d7c3f619dc083fcc3b36cca09494515 +/agent-note-windows-uninstall-retains-the-harness-home: + en: ae26a8eee5e5ef6e + zh: 2549190b3d8890e1 +/agent-note-windows-uninstall-retains-the-harness-home/problem: + en: 7e0091e3af8b52d8 + zh: b40193a58711c6a5 +/agent-note-windows-uninstall-retains-the-harness-home/decision: + en: fd2608389491a1f8 + zh: b007e1d35a049292 +/agent-note-windows-uninstall-retains-the-harness-home/alternatives-considered: + en: f3a2c8263d598b30 + zh: 226a3203c940bdd3 +/agent-note-windows-uninstall-retains-the-harness-home/deferred: + en: 7d13267e5928961a + zh: 79398501c8e099dd +/agent-note-windows-uninstall-retains-the-harness-home/consequences: + en: 9f94a327edbd7685 + zh: fa53c77c2d9df54d diff --git a/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml index c18c6397ed..5de5db011a 100644 --- a/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-feedback-dialog-and-categories.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.md -2026-09-08-feedback-dialog-and-categories.md: 1d544e6ef978c10008ac62768b6faaf9eaaf8b73 -2026-09-08-feedback-dialog-and-categories.zh.md: 6e58820bf308a3a9f7d15b64027f90e7e6771bd4 +/agent-note-feedback-dialog-categories-and-the-acknowledgement-toast: + en: 0ca76fe002b0b0fc + zh: 14fa2772a6a23e25 +/agent-note-feedback-dialog-categories-and-the-acknowledgement-toast/problem: + en: 90ac7f116156c209 + zh: 20274add2ffbcdc0 +/agent-note-feedback-dialog-categories-and-the-acknowledgement-toast/decision: + en: 4cde40e5b1ad6beb + zh: fb49e47434faf06f +/agent-note-feedback-dialog-categories-and-the-acknowledgement-toast/alternatives-considered: + en: 3713257ee75869da + zh: 5892d375fe8d0764 +/agent-note-feedback-dialog-categories-and-the-acknowledgement-toast/consequences: + en: a55c05291a78e922 + zh: 1373131586665daf diff --git a/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.i18n.yaml index 0817dcd4f1..efe36291ac 100644 --- a/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-file-display-through-filesystem.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.md -2026-09-08-file-display-through-filesystem.md: b1f93f8c9fbd245ad69bc732b2a599c6e0abeb0d -2026-09-08-file-display-through-filesystem.zh.md: faa3fdb757c9a3fc60cae37692a559158e02ceee +/agent-note-authenticated-file-display-reuses-filesystem-byte-reads: + en: 1db6d91b6011384e + zh: 68152c2e3fff2931 +/agent-note-authenticated-file-display-reuses-filesystem-byte-reads/problem: + en: c8e25473775da151 + zh: af807ea30d423858 +/agent-note-authenticated-file-display-reuses-filesystem-byte-reads/decision: + en: d448ed98f635fd14 + zh: 81795f947a0c1c99 +/agent-note-authenticated-file-display-reuses-filesystem-byte-reads/alternatives-considered: + en: 80e52b422305ca28 + zh: d0e38b1cd96be951 +/agent-note-authenticated-file-display-reuses-filesystem-byte-reads/consequences: + en: 15ec0dd18d621f24 + zh: e4925a96395edd8c +/agent-note-authenticated-file-display-reuses-filesystem-byte-reads/testing: + en: 9d28b1552a2decde + zh: 6ea9f91992bcfa1a diff --git a/.agents/notes/implemented/feature/2026-09-08-present-workspace-source-files.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-present-workspace-source-files.i18n.yaml index 057e138853..e2c08a0acd 100644 --- a/.agents/notes/implemented/feature/2026-09-08-present-workspace-source-files.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-present-workspace-source-files.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-present-workspace-source-files.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-present-workspace-source-files.md -2026-09-08-present-workspace-source-files.md: 52cc3e9cdbcd30d378117a327b86062523a2cb3e -2026-09-08-present-workspace-source-files.zh.md: 99b7b9df1d9ca2da2175df1ae7e9d8acbb5c5fdd +/agent-note-present-declares-workspace-source-files: + en: 8e9f703ce074f949 + zh: 37e27d1591d31b9d +/agent-note-present-declares-workspace-source-files/problem: + en: 8598b8d2e92bcfa1 + zh: e3ae5fc294711095 +/agent-note-present-declares-workspace-source-files/decision: + en: 481549ced705b010 + zh: 8cad3ea14f84decf +/agent-note-present-declares-workspace-source-files/alternatives-considered: + en: b959eae9786351da + zh: 030c06051d6ac4be +/agent-note-present-declares-workspace-source-files/consequences: + en: 98cd6d2356003a58 + zh: 6e0b46c4ec6ba4b5 diff --git a/.agents/notes/implemented/feature/2026-09-08-shared-file-type-icons.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-shared-file-type-icons.i18n.yaml index 35f8f4dc56..569b09933e 100644 --- a/.agents/notes/implemented/feature/2026-09-08-shared-file-type-icons.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-shared-file-type-icons.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-shared-file-type-icons.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-shared-file-type-icons.md -2026-09-08-shared-file-type-icons.md: 5dbe0ade14c15e1d509f56eba6e0266c61089c46 -2026-09-08-shared-file-type-icons.zh.md: 9dbccdf10f188b30dcbbbe11d45b238af42ca112 +/agent-note-shared-file-type-icons: + en: d83f437754356503 + zh: 7f5b673537312d8c +/agent-note-shared-file-type-icons/problem: + en: 67d8c2d11e0ae0a2 + zh: fb2a576b528db3ad +/agent-note-shared-file-type-icons/decision: + en: 418ba69021928ba0 + zh: 7fc1b5cef5f22004 +/agent-note-shared-file-type-icons/alternatives-considered: + en: 67dc36a02b841541 + zh: cf262c343957ff69 +/agent-note-shared-file-type-icons/testing: + en: 16768b2ea13d16ef + zh: e7455e31220bb2e6 +/agent-note-shared-file-type-icons/consequences: + en: fb30a1c743dbe885 + zh: 858fb79479434d69 diff --git a/.agents/notes/implemented/feature/2026-09-08-sidebar-default-pages.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-sidebar-default-pages.i18n.yaml index e6392aa970..b7a60a735c 100644 --- a/.agents/notes/implemented/feature/2026-09-08-sidebar-default-pages.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-sidebar-default-pages.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-sidebar-default-pages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-sidebar-default-pages.md -2026-09-08-sidebar-default-pages.md: 13374ab294cab74b54ada8550a6dff5af2cd9cd1 -2026-09-08-sidebar-default-pages.zh.md: 6730a87fbe9c59ef6d448fe0f2d4c3c2cb75e6bb +/agent-note-sidebar-default-pages: + en: 0b6b9c156b3653d9 + zh: f4650c41660ea99d +/agent-note-sidebar-default-pages/problem: + en: 48127a7f5a873a52 + zh: a722f139876a415a +/agent-note-sidebar-default-pages/decision: + en: b6707d5c48eb414a + zh: c920061739304dfc +/agent-note-sidebar-default-pages/alternatives-considered: + en: 8d981eef6c5088b8 + zh: 0bc9541a7f7d7b53 +/agent-note-sidebar-default-pages/consequences: + en: eb418364a7c202e2 + zh: d2372099a1ed3e6e diff --git a/.agents/notes/implemented/feature/2026-09-08-sidebar-last-tab-close-rules.i18n.yaml b/.agents/notes/implemented/feature/2026-09-08-sidebar-last-tab-close-rules.i18n.yaml index 2846db77ba..a4049b0446 100644 --- a/.agents/notes/implemented/feature/2026-09-08-sidebar-last-tab-close-rules.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-08-sidebar-last-tab-close-rules.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-sidebar-last-tab-close-rules.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-08-sidebar-last-tab-close-rules.md -2026-09-08-sidebar-last-tab-close-rules.md: ed76b0ad0b8bbadcf5eace12a7da3bd38c733d0e -2026-09-08-sidebar-last-tab-close-rules.zh.md: bcc54c0c39cc65434f21ef8f6f81a382b6eecdb7 +/agent-note-last-tab-close-rules-on-the-sidebar-s-docked-surface: + en: 4f38145de396b08f + zh: 3e65231a5ebb8fdd +/agent-note-last-tab-close-rules-on-the-sidebar-s-docked-surface/problem: + en: 90a9c3dc146c7d11 + zh: a12b784b66fa3979 +/agent-note-last-tab-close-rules-on-the-sidebar-s-docked-surface/decision: + en: a760dcb29bb9645c + zh: ad4dafd7d5b407e7 +/agent-note-last-tab-close-rules-on-the-sidebar-s-docked-surface/alternatives-considered: + en: 4e2673d521d6540e + zh: 0d5f0b99ea80d5ff +/agent-note-last-tab-close-rules-on-the-sidebar-s-docked-surface/consequences: + en: 3e43dd3066e8b05b + zh: ed6ed81abb18131b diff --git a/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml b/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml index d704c77ad2..f4cc113bc2 100644 --- a/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-headless-machine-readable-run-surface.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.md -2026-09-09-headless-machine-readable-run-surface.md: 317f213095f86e94104c013139390cdf988f95fe -2026-09-09-headless-machine-readable-run-surface.zh.md: 0114f87aef4f25db0887663464973bb2f762b2d5 +/agent-note-headless-machine-readable-run-surface: + en: bcf2251478004e35 + zh: 70ade47c837c6bab +/agent-note-headless-machine-readable-run-surface/problem: + en: 9d2c64ed47b82129 + zh: bb0de126368e9f07 +/agent-note-headless-machine-readable-run-surface/decision: + en: ed08acff9c4ea030 + zh: 484c2646de4aa5d8 +/agent-note-headless-machine-readable-run-surface/decision/command-line-contract: + en: 59470d5c2eba0a57 + zh: 342c1ac9042c6b46 +/agent-note-headless-machine-readable-run-surface/decision/event-stream: + en: b6837e3de1305559 + zh: 183956da3319a126 +/agent-note-headless-machine-readable-run-surface/decision/session-identity: + en: ebb2c5da4ea076a9 + zh: a706416d290e7424 +/agent-note-headless-machine-readable-run-surface/consequences: + en: 1ba14087f533dd8e + zh: 66f4aa9d63a0da23 +/agent-note-headless-machine-readable-run-surface/alternatives-considered: + en: 42f321bd399f906e + zh: 3b13791afa256781 diff --git a/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.i18n.yaml b/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.i18n.yaml index 5bb1142826..4b6f724f0b 100644 --- a/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-present-filesystem-access.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-09-present-filesystem-access.md -2026-09-09-present-filesystem-access.md: 5c9d5bec47c73ac1c5952b887d56e582148a4cea -2026-09-09-present-filesystem-access.zh.md: 6387f07b17276b3455d19d650b4ae031a7efda4c +/agent-note-present-follows-session-filesystem-access: + en: 33cf0a75284f8392 + zh: 5299af2f77bf6fd8 +/agent-note-present-follows-session-filesystem-access/problem: + en: dda1953cb567c3dc + zh: 3c447175454c844a +/agent-note-present-follows-session-filesystem-access/decision: + en: 2668dd51b07e2653 + zh: 3cd895017f568c42 +/agent-note-present-follows-session-filesystem-access/alternatives-considered: + en: 85336cd165610ddf + zh: 75608e3bfeab5dc5 +/agent-note-present-follows-session-filesystem-access/consequences: + en: e31784fe619d4d1c + zh: 7cadc3941a0c7b33 diff --git a/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml b/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml index d88fb31e2e..6ae3a85d71 100644 --- a/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-ptc-trajectory-code-inspection.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.md -2026-09-09-ptc-trajectory-code-inspection.md: 19779d20e8d08ce0ca9678ab6626765faa13cf65 -2026-09-09-ptc-trajectory-code-inspection.zh.md: 7cdb2321d61893e43426798d311847662450d289 +/agent-note-inspect-recorded-ptc-source-in-trajectory: + en: 29f601adfcaa6019 + zh: bdd1c59d1bbbff62 +/agent-note-inspect-recorded-ptc-source-in-trajectory/problem: + en: 6b49bc4faca04ae0 + zh: 60165937e0a7c71d +/agent-note-inspect-recorded-ptc-source-in-trajectory/decision: + en: 43dd488c270c1664 + zh: 3fdf6d374c49fee3 +/agent-note-inspect-recorded-ptc-source-in-trajectory/alternatives-considered: + en: bbf705774c5c608a + zh: 1af9b4aa3d4fa025 +/agent-note-inspect-recorded-ptc-source-in-trajectory/consequences: + en: c680634fe8b95880 + zh: 7660cd3354522ef8 diff --git a/.agents/notes/implemented/feature/2026-09-09-sidebar-and-preview-interaction-polish.i18n.yaml b/.agents/notes/implemented/feature/2026-09-09-sidebar-and-preview-interaction-polish.i18n.yaml index 6906decd2f..e82abbb700 100644 --- a/.agents/notes/implemented/feature/2026-09-09-sidebar-and-preview-interaction-polish.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-09-sidebar-and-preview-interaction-polish.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-sidebar-and-preview-interaction-polish.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-09-sidebar-and-preview-interaction-polish.md -2026-09-09-sidebar-and-preview-interaction-polish.md: eba8bd3a2314c7eaf18cd9982aa4e599665dbc62 -2026-09-09-sidebar-and-preview-interaction-polish.zh.md: 93d88d41e99f50621c80d69d615e39852b715c89 +/agent-note-sidebar-and-preview-interaction-polish: + en: bce3b5bc9f49bbff + zh: bebc5b0ce3a370a7 +/agent-note-sidebar-and-preview-interaction-polish/problem: + en: 2d6e8ec1b08dcce9 + zh: 75e1c454d71da103 +/agent-note-sidebar-and-preview-interaction-polish/decision: + en: 7358c236daed510b + zh: 93cf67bbffa2c20b +/agent-note-sidebar-and-preview-interaction-polish/alternatives-considered: + en: c828e83875412d49 + zh: d0277bf0d1f5d7a9 +/agent-note-sidebar-and-preview-interaction-polish/consequences: + en: cb7cb72724552f2b + zh: 05705b4795ade85f diff --git a/.agents/notes/implemented/feature/2026-09-09-web-sidebar-terminal.i18n.yaml b/.agents/notes/implemented/feature/2026-09-09-web-sidebar-terminal.i18n.yaml index 76ed3e8786..73ba0975be 100644 --- a/.agents/notes/implemented/feature/2026-09-09-web-sidebar-terminal.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-09-web-sidebar-terminal.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-web-sidebar-terminal.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-09-web-sidebar-terminal.md -2026-09-09-web-sidebar-terminal.md: 09be4a142f615750799e01106eac7a9b52cbad48 -2026-09-09-web-sidebar-terminal.zh.md: c2ac1468756ee08c713855979119662390ffeadb +/agent-note-web-sidebar-terminals: + en: dfb245f871011059 + zh: d64c0bd9cbe5f652 +/agent-note-web-sidebar-terminals/problem: + en: 71813b1cb1f750ba + zh: 64d2b999933ccd98 +/agent-note-web-sidebar-terminals/decision: + en: d73dc0a37bd7c9dd + zh: f5c6cf8cce36090a +/agent-note-web-sidebar-terminals/alternatives-considered: + en: 0c129fba63a60777 + zh: c334f34dd71bbaf6 +/agent-note-web-sidebar-terminals/consequences: + en: d710787595b5dc89 + zh: 4df9518c32698f85 +/agent-note-web-sidebar-terminals/related: + en: 94540c743da01fc4 + zh: 53e3d9d2268153d1 diff --git a/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.i18n.yaml b/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.i18n.yaml index ee5d2b3fa2..e5beccba4f 100644 --- a/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-composer-reference-previews.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-10-composer-reference-previews.md -2026-09-10-composer-reference-previews.md: e9425851c1dc4ac0c8dc588d3b234c173eeb9262 -2026-09-10-composer-reference-previews.zh.md: c47718468bf1e38469140c12c1096b7bc5da0f40 +/agent-note-composer-reference-previews: + en: 4077f5f4bb6cbbc1 + zh: 0ed641c53ecc9ff9 +/agent-note-composer-reference-previews/problem: + en: b6c93af7ecb4f6df + zh: e6efd6ac2e2193fc +/agent-note-composer-reference-previews/decision: + en: f895747aad30a9ea + zh: 1a736bbf64f82041 +/agent-note-composer-reference-previews/alternatives-considered: + en: c76709c683a56316 + zh: a6708957a465c3ce +/agent-note-composer-reference-previews/consequences: + en: d67f32b4450e8c71 + zh: 7d3a8c6588959e04 diff --git a/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml b/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml index bc63e89dd9..9a45958b42 100644 --- a/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-symmetric-message-feedback-submission.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.md -2026-09-10-symmetric-message-feedback-submission.md: 51c754dbd3ecc566e15ec1b7a276fc2a3cf7c551 -2026-09-10-symmetric-message-feedback-submission.zh.md: 0ba5d1a1c53f08b76c5bbc32b84687c3dcd38ec2 +/agent-note-symmetric-message-feedback-submission: + en: 40f6c11f8f4332a2 + zh: fa31c26c296f892c +/agent-note-symmetric-message-feedback-submission/problem: + en: f5afa64229a1e8db + zh: b73e730754f33cc5 +/agent-note-symmetric-message-feedback-submission/decision: + en: a8a9598cb30f8f8e + zh: 3073219d585bc5fd +/agent-note-symmetric-message-feedback-submission/alternatives-considered: + en: b425d01d854f8962 + zh: f74131c171c9f74a +/agent-note-symmetric-message-feedback-submission/consequences: + en: 833bc3370c02fd1e + zh: 2718d60cdf762436 diff --git a/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml b/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml index 32ae05e725..0e6f21dae4 100644 --- a/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-desktop-mandatory-update-client.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.md -2026-09-11-desktop-mandatory-update-client.md: ff55f30836a37e49229adac6414cb3a98bca4d6c -2026-09-11-desktop-mandatory-update-client.zh.md: 6c17a9fbd0ce2741b635b742be682d4c5fd9f8c6 +/agent-note-desktop-mandatory-update-client-and-blocking-window: + en: 059254153764a162 + zh: 17dfd84fd2ba6eea +/agent-note-desktop-mandatory-update-client-and-blocking-window/problem: + en: f1aeaa7df97a744f + zh: 039b2cccd9a45198 +/agent-note-desktop-mandatory-update-client-and-blocking-window/decision: + en: fc0fa9c713fb74e8 + zh: 783f643486eeccaa +/agent-note-desktop-mandatory-update-client-and-blocking-window/alternatives-considered: + en: 136afb04a37db4a1 + zh: 2b049e0d9fd8aa27 +/agent-note-desktop-mandatory-update-client-and-blocking-window/consequences: + en: 6f7a3decf4f0504f + zh: 16241131d1053989 diff --git a/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml b/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml index fe0979cdb2..bffd9997fe 100644 --- a/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-sidebar-document-preview-polish.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.md -2026-09-11-sidebar-document-preview-polish.md: b78141881513167a08050afb287eb4d1bcb43995 -2026-09-11-sidebar-document-preview-polish.zh.md: 43016af0dff72ed09a19271535912ba9abd65d9c +/agent-note-sidebar-document-preview-polish: + en: f6de5780a080c43b + zh: 43c5fe472e41c955 +/agent-note-sidebar-document-preview-polish/problem: + en: 4a52e0a397d95c28 + zh: ecaeb3f570c775da +/agent-note-sidebar-document-preview-polish/decision: + en: 6292b936ed7ee1bb + zh: 1758900c96a6811b +/agent-note-sidebar-document-preview-polish/alternatives-considered: + en: e2e5b8bbd191385e + zh: 29b37f3ec312f5ca +/agent-note-sidebar-document-preview-polish/consequences: + en: 38951cfb55e9214c + zh: 6ca3845e206be2da diff --git a/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.i18n.yaml b/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.i18n.yaml index 376ac2b6d8..26ab339a79 100644 --- a/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-turn-changed-files-card.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.md -2026-09-11-turn-changed-files-card.md: 0c41783c6d5d02fecd0c85298aed1f07f5c8a65f -2026-09-11-turn-changed-files-card.zh.md: f417b31b899529b664664926c832c28f4b1be6ba +/agent-note-turn-changed-files-card: + en: 21aea14160ab0796 + zh: c8b389f1b684f677 +/agent-note-turn-changed-files-card/problem: + en: f3416b4d37371155 + zh: 52e22bd5a90358e5 +/agent-note-turn-changed-files-card/decision: + en: 75a1a9aa9b204844 + zh: 941fdb3556ebe035 +/agent-note-turn-changed-files-card/alternatives-considered: + en: 7ade7ce52c2a320d + zh: 18832d5f45568429 +/agent-note-turn-changed-files-card/consequences: + en: 33504bcb31f30f84 + zh: c6626b532701fcc7 diff --git a/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml b/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml index 44220ef7f3..05daf52fa7 100644 --- a/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-mcp-resources-and-instructions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.md -2026-09-12-mcp-resources-and-instructions.md: a5eabd6170507d5a4df295b8554e6da47b40b9be -2026-09-12-mcp-resources-and-instructions.zh.md: 44890b23944f482a2e1a38483029f1e61caebbe1 +/agent-note-on-demand-mcp-resources-and-scoped-server-instructions: + en: 052fc1f95f280688 + zh: fdfacc841597d4da +/agent-note-on-demand-mcp-resources-and-scoped-server-instructions/problem: + en: 0d6c75e85a04c36a + zh: fe5043f324369cdd +/agent-note-on-demand-mcp-resources-and-scoped-server-instructions/decision: + en: 69a021dd23820bb8 + zh: 447d2d8d03f12896 +/agent-note-on-demand-mcp-resources-and-scoped-server-instructions/alternatives-considered: + en: 02bc8e76ce4d68ab + zh: 0991cc64ff9e3011 +/agent-note-on-demand-mcp-resources-and-scoped-server-instructions/verification: + en: 41694d9121383436 + zh: 781ea7503ea149f1 +/agent-note-on-demand-mcp-resources-and-scoped-server-instructions/consequences: + en: 432b24aa763eff2e + zh: 236825ede84e2c0d diff --git a/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml b/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml index 61450c1d3c..25b2735cf8 100644 --- a/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-mcp-sdk-protocol-negotiation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.md -2026-09-12-mcp-sdk-protocol-negotiation.md: 74f027cead92688b0af71c1028d536b26f2a8059 -2026-09-12-mcp-sdk-protocol-negotiation.zh.md: bc8a9a41b8ccd8cbc844b4b9de8b39a646d1dcbf +/agent-note-mcp-sdk-protocol-negotiation: + en: 9228ca2f4da2f41b + zh: 7cd10429865c3f2d +/agent-note-mcp-sdk-protocol-negotiation/problem: + en: bd614e17c62d137e + zh: ee71fdcd310a9592 +/agent-note-mcp-sdk-protocol-negotiation/decision: + en: ed7b45ffcaeffedd + zh: 2287d525ec04006c +/agent-note-mcp-sdk-protocol-negotiation/alternatives-considered: + en: 1fba2ebdcc100c37 + zh: 45c384641d3b0300 +/agent-note-mcp-sdk-protocol-negotiation/consequences: + en: 1a50179c0254517c + zh: 046e4f72bfc2ea89 diff --git a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml b/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml index d15870537e..ccb4558c12 100644 --- a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-13-macos-hidden-titlebar-vibrancy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md -2026-09-13-macos-hidden-titlebar-vibrancy.md: 807c79d06c468e01b8b9df3f18a32e5fbaba1e90 -2026-09-13-macos-hidden-titlebar-vibrancy.zh.md: a521aff7624b1f9dbab18e7d0f02f61af0bdc24a +/agent-note-macos-hidden-titlebar-with-vibrancy-sidebar: + en: 1872fd56128fb565 + zh: dc7b04d80eda9880 +/agent-note-macos-hidden-titlebar-with-vibrancy-sidebar/problem: + en: 199f00b0e7f3c09c + zh: bb331fc8d7d46bbd +/agent-note-macos-hidden-titlebar-with-vibrancy-sidebar/decision: + en: f59c3d276d0fb5c0 + zh: 85509dca9810cd4d +/agent-note-macos-hidden-titlebar-with-vibrancy-sidebar/alternatives-considered: + en: 28d920253012bd11 + zh: ae6a27f959d5afe3 +/agent-note-macos-hidden-titlebar-with-vibrancy-sidebar/consequences: + en: e08ce133c72863d8 + zh: e67b5c3bff579d86 +/agent-note-macos-hidden-titlebar-with-vibrancy-sidebar/testing: + en: a075febd9b78dc5f + zh: 7c59a9b7f0798dac diff --git a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md b/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md index 807c79d06c..7e69fea3a4 100644 --- a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md +++ b/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md @@ -18,11 +18,11 @@ Every macOS web-side adjustment keys off `html[data-platform='darwin']`, which o **Native theme sync.** The vibrancy material follows `nativeTheme.themeSource`, which otherwise tracks the OS appearance and diverges from the app's own theme preference. The ui-theme boot script and ui-layout `ThemePresenter` publish `html[data-ds-theme-source]` (`light`, `dark`, or `system`; a fixed preference, including registered theme ids, publishes its resolved scheme). The app preload observes the attribute and forwards it over `dsh-desktop:native-theme-set`; main validates the value and the sender (the main window's WebContents, including its local static Web document) and assigns `nativeTheme.themeSource`. Publishing the preference rather than the resolved scheme preserves OS-follow while the preference is `system`. -**Sidebar top strip and full hide.** On darwin the sidebar opens with a 52px top strip that clears the traffic lights and carries the collapse toggle; the frame's `.leadingBand` drag band covers the same 52px geometry, so the strip declares no app-region of its own and the toggle subtracts itself through the base.css interactive rule. Collapsing the sidebar hides the column entirely — `computeColumns` takes an explicit `collapsedWidth` and the AppFrame passes 0 on darwin desktop — instead of the 56px rail the other platforms keep. The reopen affordances live in the frame's root-scoped `shell.leading` window-chrome seat, which the AppFrame mounts only while the column is fully hidden; ui-sidebar registers `HeaderLeadingControls` (open sidebar + New Session, reusing the shell's inject face and locale) into it. The seat placement, the `--dsh-frame-leading-clearance` variable panels pad by, and the removal of the earlier conversation-header seat are owned by the [shell.leading Agent Note](../architecture/2026-09-17-frame-shell-leading-window-chrome-seat.md). +**Sidebar top strip and full hide.** On darwin the sidebar opens with a 52px top strip that clears the traffic lights and carries the collapse toggle; the strip marks itself `data-window-drag`, so its own 52px box is the window's drag region (ui-web base.css declares the one darwin drag rule) and the toggle subtracts itself through the base.css interactive rule. Collapsing the sidebar hides the column entirely — `computeColumns` takes an explicit `collapsedWidth` and the AppFrame passes 0 on darwin desktop — instead of the 56px rail the other platforms keep. The reopen affordances live in the frame's root-scoped `shell.leading` window-chrome seat, which the AppFrame mounts only while the column is fully hidden; ui-sidebar registers `HeaderLeadingControls` (open sidebar + New Session, reusing the shell's inject face and locale) into it. The seat placement, the `--dsh-frame-leading-clearance` variable panels pad by, and the removal of the earlier conversation-header seat are owned by the [shell.leading Agent Note](../architecture/2026-09-17-frame-shell-leading-window-chrome-seat.md). **Window fullscreen marker.** macOS fullscreen hides the traffic lights, so layouts built around them must relax. The main process relays `isFullScreen()` over `dsh-desktop:window-fullscreen` on `enter-full-screen`, `leave-full-screen`, and each `did-finish-load`; the app preload's `syncWindowFullscreen()` mirrors it onto `html[data-fullscreen]`. Consumers: the AppFrame drops `--dsh-frame-leading-clearance` to 84px and moves the seat to `left: 12px`, the sidebar's `.topStrip` moves the toggle to the strip's left edge, and the right sidebar's fullscreen panel resets its first pane's dockkit strip inset to the ordinary 10px. -**Drag regions.** Electron computes drag regions from window geometry in DOM order, not stacking, so `-webkit-app-region: drag` is declared only inside the two allowlisted stylesheets: ui-layout `AppFrame.module.css` (the darwin `.leadingBand`, a 52px full-width `pointer-events: none` strip rendered as the frame's first child, and the Windows caption `.frame::before`) and ui-sidebar `SidebarRoot.module.css` (`.logoRow`, which extends the band below 52px). Everything interactive subtracts itself through two global ui-web base.css rules: one `:is(...)` selector opting out every interactive element (buttons, links, inputs, roles, `[tabindex]`), and one `body > :not(#root)` rule covering every overlay portaled beside `#root`. Because the drag bands mount before all content, any later no-drag box wins; content containers never declare drag, which would override earlier-mounted overlays. +**Drag regions.** Electron computes drag regions from window geometry in DOM order, not stacking, so the shell declares `-webkit-app-region: drag` once, over the mark a chrome row puts on its own box, each row's box being its draggable geometry. The ui-theme app-region gate's `CHROME_ROWS` manifest is the list of rows that must carry the mark, so this note keeps only the mechanism. The frame declares none — the Windows caption row is that platform's own chrome — so no fixed band has to match any row's height. Everything interactive subtracts itself through two global ui-web base.css rules: one `:is(...)` selector opting out every interactive element (buttons, links, inputs, roles, `[tabindex]`), and one `body > :not(#root)` rule covering every overlay portaled beside `#root`. The ordering rule those two rest on: a surface that covers the window and must stay clickable portals beside `#root` (the settings overlay does), which puts it after every drag row in document order; content containers never declare drag, which would override earlier-mounted overlays. The [coverage contract note](../architecture/2026-09-19-window-drag-coverage-contract.md) owns the manifest, the browser lane, and the manual state matrix. **Fullscreen traffic-light clearance.** ui-dockkit publishes the tab strip's start inset as `--dsh-dockkit-strip-inline-start` (fallback the design's own 10px). The right sidebar's fullscreen presentation on darwin sets 88px on the panel body and resets 10px for every non-first split cell's subtree, so exactly the pane touching the window's top-left corner clears the lights at any split depth. @@ -43,9 +43,9 @@ Every macOS web-side adjustment keys off `html[data-platform='darwin']`, which o - The macOS window gains a translucent sidebar and hidden titlebar at zero cost to other platforms: every rule is scoped to `[data-platform='darwin']`, which only the Electron preload sets. - The vibrancy material follows the app theme, including third-party registered themes (their resolved scheme). Screenshots and screen recordings differ from the flat web rendering. - The reopen controls occupy the frame's `shell.leading` seat, a public slot in the client catalog; the earlier `conversation.session.header.leading` seat is removed ([shell.leading Agent Note](../architecture/2026-09-17-frame-shell-leading-window-chrome-seat.md)). -- Drag-region ownership is a window-global invariant: `-webkit-app-region: drag` appears only inside the two allowlisted stylesheets (ui-layout `AppFrame.module.css`: darwin `.leadingBand` and Windows caption `.frame::before`; ui-sidebar `SidebarRoot.module.css`: `.logoRow`); other packages rely on the base.css opt-outs or add a scoped `no-drag`, never a new drag surface. The ui-theme app-region stylesheet gate enforces the allowlist over every package stylesheet. +- Drag-region ownership is a window-global invariant: `-webkit-app-region: drag` appears only in ui-web `base.css` (the one darwin rule over `data-window-drag`) and in ui-layout `AppFrame.module.css` (the Windows caption `.frame::before`); other packages rely on the base.css opt-outs or add a scoped `no-drag`, never a new drag surface. The ui-theme app-region gate pairs each chrome row's markup mark with its sheet, selector, and authored height, and refuses a mark anywhere else. - The transparent window plus vibrancy is accepted to look different in screen sharing and may flash on startup; the transparent `backgroundColor` mitigates the flash. ## Testing -ui-theme boot and ui-layout presenter specs pin the `data-ds-theme-source` publication and disposal. The ui-sidebar apply spec pins the `shell.leading` registration (component, locale, shared inject face) and its removal on teardown; the ui-layout app-frame spec pins the seat's darwin mount. The desktop main-startup spec pins the fullscreen relay (transitions, reloads, destroyed-window guard, darwin-only registration) and the preload-platform spec pins the `html[data-fullscreen]` mirror. The ui-theme corner-shape and full-round style gates cover the new stylesheet, and its app-region style gate pins drag-region ownership to the two allowlisted stylesheets across every package stylesheet. +ui-theme boot and ui-layout presenter specs pin the `data-ds-theme-source` publication and disposal. The ui-sidebar apply spec pins the `shell.leading` registration (component, locale, shared inject face) and its removal on teardown; the ui-layout app-frame spec pins the seat's darwin mount. The desktop main-startup spec pins the fullscreen relay (transitions, reloads, destroyed-window guard, darwin-only registration) and the preload-platform spec pins the `html[data-fullscreen]` mirror. The ui-theme corner-shape and full-round style gates cover the new stylesheet, and its app-region gate pins the one darwin drag rule and every chrome row's markup mark. diff --git a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md b/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md index a521aff762..fbba185740 100644 --- a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md +++ b/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md @@ -18,11 +18,11 @@ Electron 主进程在 darwin 上以 `titleBarStyle: 'hiddenInset'`、`trafficLig **原生主题同步。** 毛玻璃材质跟随 `nativeTheme.themeSource`,后者默认跟踪系统外观,会与应用自身的主题偏好背离。ui-theme 引导脚本与 ui-layout 的 `ThemePresenter` 发布 `html[data-ds-theme-source]`(`light`、`dark` 或 `system`;固定偏好——包括注册主题 id——发布其解析后的配色)。应用 preload 观察该属性并经 `dsh-desktop:native-theme-set` 转发;主进程校验取值与发送者(主窗口的 WebContents,包括其本地静态 Web 文档)后赋给 `nativeTheme.themeSource`。发布偏好而非解析值,可在偏好为 `system` 时保留跟随系统。 -**侧边栏顶部条与完全隐藏。** darwin 上侧边栏展开时有一条 52px 的顶部条,避开红绿灯并承载收起按钮;框架的 `.leadingBand` 拖拽带覆盖同一 52px 几何,顶部条自身不声明 app-region,按钮经 base.css 交互规则自行减除。收起侧边栏时整列隐藏——`computeColumns` 接受显式 `collapsedWidth`,AppFrame 在 darwin 桌面传 0——而非其他平台保留的 56px rail。重新打开的入口位于框架 root 作用域的 `shell.leading` 窗口 chrome 座,由 AppFrame 仅在整列隐藏时挂载;ui-sidebar 向其注册 `HeaderLeadingControls`(打开侧边栏 + 新会话,复用 shell 的 inject face 与 locale)。座的位置、面板用于避让的 `--dsh-frame-leading-clearance` 变量,以及早先会话头部座的移除,归 [shell.leading Agent Note](../architecture/2026-09-17-frame-shell-leading-window-chrome-seat.zh.md) 所有。 +**侧边栏顶部条与完全隐藏。** darwin 上侧边栏展开时有一条 52px 的顶部条,避开红绿灯并承载收起按钮;顶部条自己打上 `data-window-drag`,于是它自身那 52px 盒子就是窗口的拖拽区(唯一的 darwin drag 规则由 ui-web base.css 声明),按钮经 base.css 交互规则自行减除。收起侧边栏时整列隐藏——`computeColumns` 接受显式 `collapsedWidth`,AppFrame 在 darwin 桌面传 0——而非其他平台保留的 56px rail。重新打开的入口位于框架 root 作用域的 `shell.leading` 窗口 chrome 座,由 AppFrame 仅在整列隐藏时挂载;ui-sidebar 向其注册 `HeaderLeadingControls`(打开侧边栏 + 新会话,复用 shell 的 inject face 与 locale)。座的位置、面板用于避让的 `--dsh-frame-leading-clearance` 变量,以及早先会话头部座的移除,归 [shell.leading Agent Note](../architecture/2026-09-17-frame-shell-leading-window-chrome-seat.zh.md) 所有。 **窗口全屏标记。** macOS 全屏隐藏红绿灯,围绕它们构建的布局必须放松。主进程在 `enter-full-screen`、`leave-full-screen` 与每次 `did-finish-load` 时经 `dsh-desktop:window-fullscreen` 转发 `isFullScreen()`;应用 preload 的 `syncWindowFullscreen()` 把它镜像到 `html[data-fullscreen]`。消费者:AppFrame 把 `--dsh-frame-leading-clearance` 降到 84px 并把座移到 `left: 12px`,侧边栏 `.topStrip` 把收起按钮移到条带左端,右侧边栏全屏面板把首格 pane 的 dockkit strip 内边距重置回常规 10px。 -**拖拽区。** Electron 按 DOM 顺序以窗口几何计算拖拽区,不看层叠,因此 `-webkit-app-region: drag` 只在两个允许清单样式表内声明:ui-layout `AppFrame.module.css`(darwin 的 `.leadingBand`——52px 全宽、`pointer-events: none`、作为框架第一个子元素渲染的条带——与 Windows 顶栏 `.frame::before`)和 ui-sidebar `SidebarRoot.module.css`(`.logoRow`,把拖拽带向 52px 以下延伸)。所有可交互内容通过 ui-web base.css 的两条全局规则自行减除:一条 `:is(...)` 选择器让每个交互元素(按钮、链接、输入框、role、`[tabindex]`)退出拖拽,一条 `body > :not(#root)` 规则覆盖所有 portal 到 `#root` 之外的浮层。拖拽带先于全部内容挂载,任何靠后的 no-drag 盒子必然生效;内容容器永不声明 drag——那会覆盖更早挂载的浮层。 +**拖拽区。** Electron 按 DOM 顺序以窗口几何计算拖拽区,不看层叠,因此外壳只声明一次 `-webkit-app-region: drag`,作用于 chrome 行打在自身盒子上的标记,行自身的盒子就是它的可拖几何;哪些行必须带这个标记由 ui-theme app-region 门禁的 `CHROME_ROWS` 清单拥有,本 note 只保留机制。框架不再声明任何 drag——Windows 标题栏行是那个平台自己的 chrome——因此没有一条固定带子需要匹配某一行的高度。所有可交互内容通过 ui-web base.css 的两条全局规则自行减除:一条 `:is(...)` 选择器让每个交互元素(按钮、链接、输入框、role、`[tabindex]`)退出拖拽,一条 `body > :not(#root)` 规则覆盖所有 portal 到 `#root` 之外的浮层。这两条规则依赖的顺序约定:覆盖窗口且必须可点的表面 portal 到 `#root` 之外(settings 浮层即如此),从而在文档顺序上晚于所有 drag 行;内容容器永不声明 drag——那会覆盖更早挂载的浮层。清单、浏览器车道与人工状态矩阵归 [覆盖契约 note](../architecture/2026-09-19-window-drag-coverage-contract.zh.md)。 **全屏避开红绿灯。** ui-dockkit 把 tab 条起始内边距发布为 `--dsh-dockkit-strip-inline-start`(回退为设计自身的 10px)。右侧边栏全屏形态在 darwin 上对面板主体设 88px,并对每个非首格 split 单元的子树重置为 10px,使得任意分屏深度下恰好只有触及窗口左上角的 pane 避开红绿灯。 @@ -43,9 +43,9 @@ Electron 主进程在 darwin 上以 `titleBarStyle: 'hiddenInset'`、`trafficLig - macOS 窗口获得半透明侧边栏与隐藏标题栏,对其他平台零成本:所有规则限定在 `[data-platform='darwin']` 下,该属性仅由 Electron preload 设置。 - 毛玻璃材质跟随应用主题,含第三方注册主题(取其解析配色)。截图与录屏与纯 Web 的平面渲染不同。 - 重新打开控件占据框架的 `shell.leading` 座,是客户端 catalog 中的公开 slot;早先的 `conversation.session.header.leading` 座已移除([shell.leading Agent Note](../architecture/2026-09-17-frame-shell-leading-window-chrome-seat.zh.md))。 -- 拖拽区归属是窗口级全局不变量:`-webkit-app-region: drag` 只出现在两个允许清单样式表内(ui-layout `AppFrame.module.css`:darwin `.leadingBand` 与 Windows 顶栏 `.frame::before`;ui-sidebar `SidebarRoot.module.css`:`.logoRow`);其他包依赖 base.css 的退出规则或添加限定范围的 `no-drag`,永不新增拖拽面。ui-theme 的 app-region 样式门禁对全部包内样式表强制该允许清单。 +- 拖拽区归属是窗口级全局不变量:`-webkit-app-region: drag` 只出现在 ui-web `base.css`(作用于 `data-window-drag` 的唯一 darwin 规则)与 ui-layout `AppFrame.module.css`(Windows 顶栏 `.frame::before`)内;其他包依赖 base.css 的退出规则或添加限定范围的 `no-drag`,永不新增拖拽面。ui-theme 的 app-region 门禁把每个 chrome 行的 markup 标记与它的样式表、选择器和写死高度配成一条,并拒绝别处的标记。 - 接受透明窗口 + 毛玻璃在屏幕共享中呈现不同、启动可能闪烁;透明 `backgroundColor` 缓解闪烁。 ## Testing -ui-theme 引导与 ui-layout presenter 测试钉住 `data-ds-theme-source` 的发布与清除。ui-sidebar apply 测试钉住 `shell.leading` 注册(组件、locale、共享 inject face)及 teardown 移除;ui-layout 的 app-frame 测试钉住 darwin 下座的挂载。desktop main-startup 测试钉住全屏转发(状态切换、重载、已销毁窗口守卫、仅 darwin 注册),preload-platform 测试钉住 `html[data-fullscreen]` 镜像。ui-theme 的 corner-shape 与 full-round 样式门覆盖新样式表,其 app-region 样式门在全部包内样式表上把拖拽区归属钉在两个允许清单样式表内。 +ui-theme 引导与 ui-layout presenter 测试钉住 `data-ds-theme-source` 的发布与清除。ui-sidebar apply 测试钉住 `shell.leading` 注册(组件、locale、共享 inject face)及 teardown 移除;ui-layout 的 app-frame 测试钉住 darwin 下座的挂载。desktop main-startup 测试钉住全屏转发(状态切换、重载、已销毁窗口守卫、仅 darwin 注册),preload-platform 测试钉住 `html[data-fullscreen]` 镜像。ui-theme 的 corner-shape 与 full-round 样式门覆盖新样式表,其 app-region 门禁钉住唯一那条 darwin drag 规则与每个 chrome 行的 markup 标记。 diff --git a/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml b/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml index ea2358fcd3..854c136a37 100644 --- a/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-13-mcp-resources-in-profiles.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.md -2026-09-13-mcp-resources-in-profiles.md: 236cd2849383e32fee523c56a43aae2fcae1f07a -2026-09-13-mcp-resources-in-profiles.zh.md: d2e0fbc45cdffe16ac482173d75c13329b98b868 +/agent-note-mcp-resource-availability-follows-configured-servers: + en: 2f520034ae7711ed + zh: 0e76516042ef51c1 +/agent-note-mcp-resource-availability-follows-configured-servers/problem: + en: 729c308d0bb4e142 + zh: 42df44189f83a701 +/agent-note-mcp-resource-availability-follows-configured-servers/decision: + en: 6d79d22b7a2d118a + zh: 9e7aaccbcb6535c0 +/agent-note-mcp-resource-availability-follows-configured-servers/alternatives-considered: + en: e60cb2c45a8a8cf7 + zh: e74f3b9ca5157278 +/agent-note-mcp-resource-availability-follows-configured-servers/verification: + en: d07e735ad317655c + zh: c9419acac96f0740 +/agent-note-mcp-resource-availability-follows-configured-servers/consequences: + en: 270341820e2713d4 + zh: d56cdd72625fd570 diff --git a/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.i18n.yaml b/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.i18n.yaml index 9c3ae26c74..ce405a2db5 100644 --- a/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-composer-selection-keyboard.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.md -2026-09-14-composer-selection-keyboard.md: 675e7239108604c51f4e9a82b98e164833ff9173 -2026-09-14-composer-selection-keyboard.zh.md: 2b296a609cdd76a407fd4ddcc5855eef2fcfa047 +/agent-note-composer-selection-surfaces-mirror-the-composer-s-enter-and-escape-keys: + en: d3af1337a24bd411 + zh: ebf464a7f3d9b5c3 +/agent-note-composer-selection-surfaces-mirror-the-composer-s-enter-and-escape-keys/problem: + en: e5f4084d8eda4d0e + zh: 4dc98999d008fecd +/agent-note-composer-selection-surfaces-mirror-the-composer-s-enter-and-escape-keys/decision: + en: d6a84d4b3d935fbb + zh: b842b20d197fc1a6 +/agent-note-composer-selection-surfaces-mirror-the-composer-s-enter-and-escape-keys/alternatives-considered: + en: f062131fb8b9cbcf + zh: a14b718ed6381b3f +/agent-note-composer-selection-surfaces-mirror-the-composer-s-enter-and-escape-keys/verification: + en: 81508f6216c1cde0 + zh: 764a8cafea8594e5 +/agent-note-composer-selection-surfaces-mirror-the-composer-s-enter-and-escape-keys/consequences: + en: 1310807e3a7a259d + zh: c35aca580ee553b7 diff --git a/.agents/notes/implemented/feature/2026-09-14-desktop-primary-runtime.i18n.yaml b/.agents/notes/implemented/feature/2026-09-14-desktop-primary-runtime.i18n.yaml index 27bbadb4ae..56a6a1ef1e 100644 --- a/.agents/notes/implemented/feature/2026-09-14-desktop-primary-runtime.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-14-desktop-primary-runtime.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-desktop-primary-runtime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-14-desktop-primary-runtime.md -2026-09-14-desktop-primary-runtime.md: a1491ca0c47e40c6d5b885c9f6a42ccf8180b78c -2026-09-14-desktop-primary-runtime.zh.md: 6447086a6948ed262699b62061eb44af8d6071d7 +/agent-note-desktop-primary-runtime: + en: aac537d0aef9e6c3 + zh: 30166e8f8627087f +/agent-note-desktop-primary-runtime/problem: + en: 36bf235f0821ef6a + zh: a86bf07af03d54a3 +/agent-note-desktop-primary-runtime/decision: + en: b3b104e314762322 + zh: 77478c007893201f +/agent-note-desktop-primary-runtime/alternatives-considered: + en: 566fd91c30cb0a0a + zh: 70758ae2617f6ebb +/agent-note-desktop-primary-runtime/consequences: + en: d0583f2397b7f778 + zh: cf42263bc62ee947 diff --git a/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.i18n.yaml b/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.i18n.yaml index a2eba8f020..f43d81c749 100644 --- a/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-docs-mermaid-viewer.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.md -2026-09-14-docs-mermaid-viewer.md: 5cb4bae84fcafb49c559b7678e9a9dc1aa961ab0 -2026-09-14-docs-mermaid-viewer.zh.md: 665ab65e48e15651ebb9323e96e6a950c0b48deb +/agent-note-documentation-diagram-and-image-viewer: + en: c43de97ff7fbe82d + zh: 5e2ecb9d39255ad7 +/agent-note-documentation-diagram-and-image-viewer/problem: + en: 3630dd02a8e8dfdf + zh: f25b00903e05bd05 +/agent-note-documentation-diagram-and-image-viewer/decision: + en: e82d48a7ebee05c8 + zh: af5c517d1d728f07 +/agent-note-documentation-diagram-and-image-viewer/alternatives-considered: + en: bdebec164a27c787 + zh: 8acb59417c96b807 +/agent-note-documentation-diagram-and-image-viewer/consequences: + en: f7bc4c0588dda49d + zh: 9261c0bde08031b1 diff --git a/.agents/notes/implemented/feature/2026-09-14-unattended-browser-terminal-reclamation.i18n.yaml b/.agents/notes/implemented/feature/2026-09-14-unattended-browser-terminal-reclamation.i18n.yaml index b8b927d5ab..11e6f533a5 100644 --- a/.agents/notes/implemented/feature/2026-09-14-unattended-browser-terminal-reclamation.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-14-unattended-browser-terminal-reclamation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-unattended-browser-terminal-reclamation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-14-unattended-browser-terminal-reclamation.md -2026-09-14-unattended-browser-terminal-reclamation.md: 6eca6faa222ed744b8ebd4ef59b2dbaec25fd8ce -2026-09-14-unattended-browser-terminal-reclamation.zh.md: 9065fe53a7d7970c4523beaffb08b3df30a4944f +/agent-note-two-hour-reclamation-of-unattended-browser-terminals: + en: 7d9283383e551b42 + zh: c9d9ed029a0afcf2 +/agent-note-two-hour-reclamation-of-unattended-browser-terminals/problem: + en: bd5cfc222df1a98c + zh: b58a3570a98298ee +/agent-note-two-hour-reclamation-of-unattended-browser-terminals/decision: + en: 079c8a1e95099239 + zh: 613d888fd7bf6b61 +/agent-note-two-hour-reclamation-of-unattended-browser-terminals/alternatives-considered: + en: 165fedee22bdb52e + zh: 6b9b7054ddb2a3a9 +/agent-note-two-hour-reclamation-of-unattended-browser-terminals/consequences: + en: ded45621bb710e52 + zh: f5f9624fa5f608e8 diff --git a/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.i18n.yaml index 00f68c0337..d220a04f6f 100644 --- a/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-bundled-office-skills.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-bundled-office-skills.md -2026-09-15-bundled-office-skills.md: 089ca0326a7c53d4ee023608010efd49a8616db2 -2026-09-15-bundled-office-skills.zh.md: cd10aa863b1149594e9eb6b6a8e479511424f20d +/agent-note-bundled-office-skills-with-structural-verification: + en: 8cc7012d7343c387 + zh: 8565543be5d94a56 +/agent-note-bundled-office-skills-with-structural-verification/problem: + en: d1e1e74b0fa286de + zh: 61ce855e4726d4a3 +/agent-note-bundled-office-skills-with-structural-verification/decision: + en: 486c2b40a0a4fe3c + zh: 317f47318b27e8f8 +/agent-note-bundled-office-skills-with-structural-verification/alternatives-considered: + en: c5389aef638deb0c + zh: a11a99a269e81c6a +/agent-note-bundled-office-skills-with-structural-verification/consequences: + en: a6035aefa4443df3 + zh: f87c6f099e4f3c7d diff --git a/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.i18n.yaml index bb657950e7..b52514834c 100644 --- a/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-changed-file-diff-preview.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.md -2026-09-15-changed-file-diff-preview.md: e265c1f4528f2de3a95ce0fab3e20cab1c83a3f6 -2026-09-15-changed-file-diff-preview.zh.md: 48571cd9866cb01e31609c90500d26b19802bb8e +/agent-note-turn-review-tab: + en: cdcf921443075122 + zh: 177609e61939922a +/agent-note-turn-review-tab/problem: + en: 91d904d836519a4b + zh: c0aec4e184ff924b +/agent-note-turn-review-tab/decision: + en: 8169e63f8bf8416d + zh: 24c1e3fb394983e3 +/agent-note-turn-review-tab/alternatives-considered: + en: e648f82b78a2c0d3 + zh: f4e6511766ace168 +/agent-note-turn-review-tab/consequences: + en: 2147596d8c6574da + zh: db8b2e1ce86465df diff --git a/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.i18n.yaml index be51075feb..a373848ad2 100644 --- a/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-continuable-activation-capacity.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.md -2026-09-15-continuable-activation-capacity.md: a6403d10fd4bcfb73147a0482293429e108939e2 -2026-09-15-continuable-activation-capacity.zh.md: 75cf6ca7a352d503cfffef29416c0990f98185db +/agent-note-shared-continuable-activation-capacity: + en: 56a51d29c97b2c8e + zh: c99085a3b2deb97c +/agent-note-shared-continuable-activation-capacity/problem: + en: f940cc05cf90362d + zh: 1cdb4281d845c0da +/agent-note-shared-continuable-activation-capacity/decision: + en: e03ae0d516885585 + zh: bd81d197e097b1ee +/agent-note-shared-continuable-activation-capacity/alternatives-considered: + en: 54aefa812e00ce1e + zh: 08251d541b7991df +/agent-note-shared-continuable-activation-capacity/consequences: + en: 4792e84eeaac32ee + zh: 4c941792d03130a0 +/agent-note-shared-continuable-activation-capacity/verification: + en: f599edb8fb0112af + zh: a66f9102a79234f0 diff --git a/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.i18n.yaml index 776fa5a823..87e8807409 100644 --- a/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-docs-page-markdown-actions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.md -2026-09-15-docs-page-markdown-actions.md: ff4002fd69d670b743b7394544cf8486b141b5ce -2026-09-15-docs-page-markdown-actions.zh.md: 4e2db5e55f47104d1b2f401099648cc1d6a7dc34 +/agent-note-page-markdown-actions-in-the-documentation-site: + en: 135670d1e466e923 + zh: b071c98c104c6aa5 +/agent-note-page-markdown-actions-in-the-documentation-site/problem: + en: d8c4d91741fe4a3f + zh: 0dae755314b52d9d +/agent-note-page-markdown-actions-in-the-documentation-site/decision: + en: b02d9faf0f2dfa91 + zh: 994a9755e0ddf16c +/agent-note-page-markdown-actions-in-the-documentation-site/alternatives-considered: + en: 96b23eb170e4edf2 + zh: 63e91e6c425afe1b +/agent-note-page-markdown-actions-in-the-documentation-site/consequences: + en: 57a6d0707d1793cd + zh: b63d4f3f82f8c38f diff --git a/.agents/notes/implemented/feature/2026-09-15-docs-platform-command-tabs.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-docs-platform-command-tabs.i18n.yaml index f6c0f88653..ceadaacf73 100644 --- a/.agents/notes/implemented/feature/2026-09-15-docs-platform-command-tabs.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-docs-platform-command-tabs.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-docs-platform-command-tabs.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-docs-platform-command-tabs.md -2026-09-15-docs-platform-command-tabs.md: 4d44d1191a7ffc1601e15aa4d9f119a90e06b0dd -2026-09-15-docs-platform-command-tabs.zh.md: 450765b52d1507fa9b9e6a20a1854e6861655838 +/agent-note-platform-command-tabs-in-the-python-sdk-guide: + en: 3d96f04869d2a2fb + zh: 4a6ebfb3ccf9c69d +/agent-note-platform-command-tabs-in-the-python-sdk-guide/problem: + en: 8fb6ad2440352a06 + zh: 0809a5c9866e52ee +/agent-note-platform-command-tabs-in-the-python-sdk-guide/decision: + en: 0ec36e0eccea6209 + zh: 5df6069c60a55f31 +/agent-note-platform-command-tabs-in-the-python-sdk-guide/alternatives-considered: + en: a98aa2b8d03f11aa + zh: 0aefaa161a20a24e +/agent-note-platform-command-tabs-in-the-python-sdk-guide/consequences: + en: f3af5502a73e7725 + zh: 4ca34dfd993fcc21 diff --git a/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.i18n.yaml index 182ff386d9..43efd357fe 100644 --- a/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-markdown-file-preview-links.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.md -2026-09-15-markdown-file-preview-links.md: d9d535afc5b005ae453bd7623e05c411e4d6932b -2026-09-15-markdown-file-preview-links.zh.md: 63c18e284b785ed5686721a0b04cf73c78c0ceb3 +/agent-note-markdown-file-preview-links: + en: 98c528496f33598e + zh: 640619a2dfa0255e +/agent-note-markdown-file-preview-links/problem: + en: ba7789f83fadbe95 + zh: 34bcaa0aed5f5c3b +/agent-note-markdown-file-preview-links/decision: + en: b986fe2640c2ebf4 + zh: e69700b233e7bd69 +/agent-note-markdown-file-preview-links/alternatives-considered: + en: d8a4d6ab17eb2880 + zh: 089419d53f71305a +/agent-note-markdown-file-preview-links/consequences: + en: c0fc2dd3d860edfa + zh: 129aa543b4a39e10 diff --git a/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.i18n.yaml index 2ef9ed7383..5665220ce2 100644 --- a/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-profile-command-shorthand.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.md -2026-09-15-profile-command-shorthand.md: 15bdf30b98eb814e299e8e2c3af3756b1f59aad1 -2026-09-15-profile-command-shorthand.zh.md: 77ffd2324fc8fe518368fce44f52ad85274eb7b5 +/agent-note-profile-command-shorthand: + en: 35f20a1162b8407f + zh: 33d263d534df0b1d +/agent-note-profile-command-shorthand/problem: + en: b5c950343e5fbe8c + zh: df2a055d2c0b3f53 +/agent-note-profile-command-shorthand/decision: + en: cc8d5ebd595fee34 + zh: 99cb3ade0f17fb7b +/agent-note-profile-command-shorthand/alternatives-considered: + en: 8d10eee94348e187 + zh: 5930dee3861058e1 +/agent-note-profile-command-shorthand/consequences: + en: bbfeb6e59bb8ba55 + zh: fc33289f717cb805 diff --git a/.agents/notes/implemented/feature/2026-09-15-sidebar-workspace-hierarchy.i18n.yaml b/.agents/notes/implemented/feature/2026-09-15-sidebar-workspace-hierarchy.i18n.yaml index fe452cfeb2..5f0daf0064 100644 --- a/.agents/notes/implemented/feature/2026-09-15-sidebar-workspace-hierarchy.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-15-sidebar-workspace-hierarchy.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-sidebar-workspace-hierarchy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-15-sidebar-workspace-hierarchy.md -2026-09-15-sidebar-workspace-hierarchy.md: 82e63684ec1d8c5d86e062b125aff6e1144ef8fa -2026-09-15-sidebar-workspace-hierarchy.zh.md: 07f9ff89b6e33fd4d46b5e386b4240ad12c177c5 +/agent-note-sidebar-workspace-hierarchy: + en: 6be9fd74b0422158 + zh: ba6dbc81479b75b5 +/agent-note-sidebar-workspace-hierarchy/problem: + en: dc209dd9d8c73af4 + zh: cc5384ba15ea0be0 +/agent-note-sidebar-workspace-hierarchy/decision: + en: 9f34c1e903475d25 + zh: 6b22b19f6da3d390 +/agent-note-sidebar-workspace-hierarchy/alternatives-considered: + en: b30322d71fc7c464 + zh: 36b218a82690cd19 +/agent-note-sidebar-workspace-hierarchy/consequences: + en: bf890a80351fa883 + zh: 05da81c7026a5204 diff --git a/.agents/notes/implemented/feature/2026-09-16-browser-excel-preview.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-browser-excel-preview.i18n.yaml index 5edfca99c1..caa8355929 100644 --- a/.agents/notes/implemented/feature/2026-09-16-browser-excel-preview.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-browser-excel-preview.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-browser-excel-preview.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-browser-excel-preview.md -2026-09-16-browser-excel-preview.md: 8a4bbd5dc838bc79e61f9b412af43b912a8fe019 -2026-09-16-browser-excel-preview.zh.md: f04170b28fe4c6d267b12958f47a392638bfaadb +/agent-note-browser-excel-preview-with-saved-formula-results: + en: 2437d7b03a82ed8b + zh: 7ca514afeba1ffde +/agent-note-browser-excel-preview-with-saved-formula-results/problem: + en: 518507d82a9f15f5 + zh: b857b75e0359ae6d +/agent-note-browser-excel-preview-with-saved-formula-results/decision: + en: f962826fcf5e3949 + zh: 8a9932d86332fb47 +/agent-note-browser-excel-preview-with-saved-formula-results/alternatives-considered: + en: 8d7ac06eaa3ba42c + zh: b6e43ae09e4df4fa +/agent-note-browser-excel-preview-with-saved-formula-results/consequences: + en: 62595b9a9b948422 + zh: 0618904d9ebfa7fc diff --git a/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml index 7614cd0318..e3f4c53695 100644 --- a/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-open-in-default-app-for-sidebar-files.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.md -2026-09-16-open-in-default-app-for-sidebar-files.md: fa7506be77e8a62e5dfd97b59de6ebc4be510ae0 -2026-09-16-open-in-default-app-for-sidebar-files.zh.md: af124182dc1b38658ff55736277e499e963a6281 +/agent-note-open-sidebar-previewed-files-in-the-default-application: + en: 948e52b8edac6120 + zh: 0898da7049f15ca5 +/agent-note-open-sidebar-previewed-files-in-the-default-application/problem: + en: 6caae0cf235cdb1d + zh: e80f02c05d65598a +/agent-note-open-sidebar-previewed-files-in-the-default-application/decision: + en: ebd2273122d077db + zh: 8a596d0a49fb4e4e +/agent-note-open-sidebar-previewed-files-in-the-default-application/alternatives-considered: + en: f42e5763bf52e401 + zh: 4b2d954904505fc9 +/agent-note-open-sidebar-previewed-files-in-the-default-application/consequences: + en: 618062f56d294415 + zh: 5eb57d17854fa805 diff --git a/.agents/notes/implemented/feature/2026-09-16-performance-usage-preference.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-performance-usage-preference.i18n.yaml index 2da6cd2bfa..369511d545 100644 --- a/.agents/notes/implemented/feature/2026-09-16-performance-usage-preference.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-performance-usage-preference.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-performance-usage-preference.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-performance-usage-preference.md -2026-09-16-performance-usage-preference.md: 36ab30561fccc6c824ee8483f5a533a9178f11c5 -2026-09-16-performance-usage-preference.zh.md: ecfd19c41c861116d18829b355bf8c8df4ea929a +/agent-note-performance-and-usage-detail-preference: + en: 6179732355b5c019 + zh: 3a620cf25a5580c4 +/agent-note-performance-and-usage-detail-preference/problem: + en: 3b420f5fb2952b3e + zh: 6fa1ef1090e595ec +/agent-note-performance-and-usage-detail-preference/decision: + en: 953b5fcaed000c9e + zh: 2ff9d6ff0535d846 +/agent-note-performance-and-usage-detail-preference/alternatives-considered: + en: 7c676c0b192d03eb + zh: 2e994f30fc99c5d4 +/agent-note-performance-and-usage-detail-preference/consequences: + en: 2bc7b780efbae1e9 + zh: c7ecaffd29dfbbff diff --git a/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.i18n.yaml index 426e7d8c80..dfc86aee32 100644 --- a/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-sandbox-same-mode.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.md -2026-09-16-sandbox-same-mode.md: f1b7c3ae05103363f47f28fab1ae534a8a8b04c2 -2026-09-16-sandbox-same-mode.zh.md: 0bb04415230ec7a0f0f3fdd3c7f00bd7b76d9d9b +/agent-note-repeated-sandbox-modes-need-no-approval: + en: 85325770757063d8 + zh: 9c55052551299ddf +/agent-note-repeated-sandbox-modes-need-no-approval/problem: + en: 0d5832fd63b9cd7b + zh: f07b20a91b92de25 +/agent-note-repeated-sandbox-modes-need-no-approval/decision: + en: b102948c4acbdd96 + zh: 7220f043716d571c +/agent-note-repeated-sandbox-modes-need-no-approval/alternatives-considered: + en: fb337915525ed95c + zh: d0584f998f0a3b8f +/agent-note-repeated-sandbox-modes-need-no-approval/consequences: + en: bde9f3b22f5159c2 + zh: 105c24546f0943bb diff --git a/.agents/notes/implemented/feature/2026-09-16-shared-subagent-settings-card.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-shared-subagent-settings-card.i18n.yaml index e98c3c4e39..eab4632401 100644 --- a/.agents/notes/implemented/feature/2026-09-16-shared-subagent-settings-card.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-shared-subagent-settings-card.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-shared-subagent-settings-card.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-shared-subagent-settings-card.md -2026-09-16-shared-subagent-settings-card.md: d9457b3e9b9786d77dcced4cac8ca1086914699a -2026-09-16-shared-subagent-settings-card.zh.md: ccde0c97df24239b4e5113fecbaec6e85f19b145 +/agent-note-shared-subagent-settings-card: + en: 63fcf9d6ab8a601d + zh: 0f824893329679f2 +/agent-note-shared-subagent-settings-card/problem: + en: a63f47c29f3a6305 + zh: 9f2150e9a9c5bc4b +/agent-note-shared-subagent-settings-card/decision: + en: 2c4056b23e053d3a + zh: d46c391f9b5be135 +/agent-note-shared-subagent-settings-card/alternatives-considered: + en: 8674979fbd8197f1 + zh: 6c2169803839f70b +/agent-note-shared-subagent-settings-card/consequences: + en: 4a3671620dfa64b6 + zh: eb6eb20e864f77a1 +/agent-note-shared-subagent-settings-card/verification: + en: 8d9956c13fb6658b + zh: 3d95564e51595bca diff --git a/.agents/notes/implemented/feature/2026-09-16-sidebar-browser.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-sidebar-browser.i18n.yaml index fac9746b09..70686c479d 100644 --- a/.agents/notes/implemented/feature/2026-09-16-sidebar-browser.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-sidebar-browser.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-sidebar-browser.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-sidebar-browser.md -2026-09-16-sidebar-browser.md: eff143cc042da7c6455152f684ec83dfa654a1ec -2026-09-16-sidebar-browser.zh.md: a037c2fb54be745a3a85f43561c0bd587873c008 +/agent-note-sandboxed-sidebar-browser: + en: eae586a5966353a5 + zh: ca3a7283e3fae594 +/agent-note-sandboxed-sidebar-browser/problem: + en: 5236141e90e42b81 + zh: 1af6306b20797603 +/agent-note-sandboxed-sidebar-browser/decision: + en: 9e89a0fe77cd8b9f + zh: 7aba8507320cf504 +/agent-note-sandboxed-sidebar-browser/web-navigation-states: + en: 6aec277c70600c7d + zh: e2b53f01072b2423 +/agent-note-sandboxed-sidebar-browser/electron-carrier: + en: dd20fa5656fc5779 + zh: 94b5908de0695755 +/agent-note-sandboxed-sidebar-browser/alternatives-considered: + en: 73919eb8d5618982 + zh: 18d2f5becae72790 +/agent-note-sandboxed-sidebar-browser/verification: + en: 91563b2be0b76a37 + zh: 24e55764bc85b8ae +/agent-note-sandboxed-sidebar-browser/consequences: + en: d9844d90ebdeb553 + zh: 7f05c8e911bd73c4 diff --git a/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.i18n.yaml index e74186da34..4a74dfb669 100644 --- a/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-unified-model-input-controls.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.md -2026-09-16-unified-model-input-controls.md: 73913880924577caf86b30990baef98efdbe751e -2026-09-16-unified-model-input-controls.zh.md: 691ca5229c017919e708bf7df92285dee25ef6b4 +/agent-note-unified-model-input-controls: + en: a22f2dd1b73eb314 + zh: 1f43526fa6af593a +/agent-note-unified-model-input-controls/problem: + en: e28035e73033057d + zh: 262cf7551cdb783a +/agent-note-unified-model-input-controls/decision: + en: 6b4872a76d480c8a + zh: f833a14a48d2e9d7 +/agent-note-unified-model-input-controls/alternatives-considered: + en: 83f8ffa39259a9f4 + zh: e158cb5868c82d74 +/agent-note-unified-model-input-controls/consequences: + en: 768bb77e3a4d72be + zh: 81080b075b0cc26c diff --git a/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.i18n.yaml b/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.i18n.yaml index d85ac2b2b2..6c3b3ddfe0 100644 --- a/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-windows-desktop-titlebar.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.md -2026-09-16-windows-desktop-titlebar.md: 17fd2aac308cff0b4357a0c39c3fe757cfc60f5b -2026-09-16-windows-desktop-titlebar.zh.md: 05903d86960942204d7b18d4155266c144effc1a +/agent-note-windows-desktop-caption-and-application-menus: + en: 4220f3c0d8058ca7 + zh: 4751c2cffb9b8e2a +/agent-note-windows-desktop-caption-and-application-menus/problem: + en: 9a3d1b6d02197c6b + zh: 5eba9f9bf6928430 +/agent-note-windows-desktop-caption-and-application-menus/decision: + en: be4b50d09caa5d46 + zh: 20b0572be5941b0c +/agent-note-windows-desktop-caption-and-application-menus/alternatives-considered: + en: db7703a7a37ac5da + zh: 704a2a289b8f7cb0 +/agent-note-windows-desktop-caption-and-application-menus/consequences: + en: a52bfa0c00b4e26d + zh: c479cc99fd1bff03 +/agent-note-windows-desktop-caption-and-application-menus/testing: + en: d72a6473a7d385cf + zh: ededb7391908db38 diff --git a/.agents/notes/implemented/feature/2026-09-17-compact-translucent-menu-surfaces.i18n.yaml b/.agents/notes/implemented/feature/2026-09-17-compact-translucent-menu-surfaces.i18n.yaml index cf44de1cb6..101417360a 100644 --- a/.agents/notes/implemented/feature/2026-09-17-compact-translucent-menu-surfaces.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-17-compact-translucent-menu-surfaces.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-compact-translucent-menu-surfaces.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-17-compact-translucent-menu-surfaces.md -2026-09-17-compact-translucent-menu-surfaces.md: 08fcb2d851e4c75ce9069fc797e8dbcb070acc5b -2026-09-17-compact-translucent-menu-surfaces.zh.md: 8e13634995d46b7414f17bbb51443df85cb3ac3c +/agent-note-compact-translucent-menu-surfaces: + en: 629cdf857a84d1f3 + zh: 676a34bac03903be +/agent-note-compact-translucent-menu-surfaces/problem: + en: f1ff5b408b409003 + zh: 1f548352bc075cc4 +/agent-note-compact-translucent-menu-surfaces/decision: + en: 30cbe72206e81f96 + zh: 21cb393871fe6420 +/agent-note-compact-translucent-menu-surfaces/alternatives-considered: + en: f06228674ee82029 + zh: 385603bebcd17d5f +/agent-note-compact-translucent-menu-surfaces/consequences: + en: e76746c0b95549df + zh: 9ff34644703d565c diff --git a/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.i18n.yaml b/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.i18n.yaml index 6485deaade..1609de0af7 100644 --- a/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-developer-tools-settings.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-17-developer-tools-settings.md -2026-09-17-developer-tools-settings.md: 5ae8861efa701042e0730310ddb23f6f559d14d7 -2026-09-17-developer-tools-settings.zh.md: e7a9d3c28d53ba9fe14c970bd48f2a6031248e58 +/agent-note-shared-developer-tool-settings: + en: 353fa09368362d0f + zh: b36c06c8b49833b1 +/agent-note-shared-developer-tool-settings/problem: + en: e22ee243b1503319 + zh: b53c1a932d547f55 +/agent-note-shared-developer-tool-settings/decision: + en: 3fc14af35b025970 + zh: 0e6047f33b7e91db +/agent-note-shared-developer-tool-settings/alternatives-considered: + en: df1b80e5b8d2a178 + zh: 0136d16fc44d57bf +/agent-note-shared-developer-tool-settings/consequences: + en: c1e05aebc88fc12c + zh: 0ace5bced7b32437 diff --git a/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.i18n.yaml b/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.i18n.yaml index da8a49ddb6..bc17196684 100644 --- a/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-persistent-plan-cards.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.md -2026-09-17-persistent-plan-cards.md: 096c89c7ed3e52293787a2724b0c7231ae3740ae -2026-09-17-persistent-plan-cards.zh.md: 95cce3fed84dd802195b87f593654b7d511933cb +/agent-note-persistent-plan-cards-and-sidebar-reading: + en: e84bc0e16f40cafb + zh: b11a06e7800e3f9a +/agent-note-persistent-plan-cards-and-sidebar-reading/problem: + en: 273400b515da3a1d + zh: 13b508617f08c6d0 +/agent-note-persistent-plan-cards-and-sidebar-reading/decision: + en: 243abb4fe9944c97 + zh: 6e66ddceb9c89aee +/agent-note-persistent-plan-cards-and-sidebar-reading/alternatives-considered: + en: f1f8dbe0f29b89cd + zh: 4fc73f1f4b4bcbae +/agent-note-persistent-plan-cards-and-sidebar-reading/consequences: + en: 4d1740b16711041d + zh: 412ac19a3705045e diff --git a/.agents/notes/implemented/feature/2026-09-17-sidebar-file-and-directory-auto-refresh.i18n.yaml b/.agents/notes/implemented/feature/2026-09-17-sidebar-file-and-directory-auto-refresh.i18n.yaml index bee0b26a39..f8fc347f32 100644 --- a/.agents/notes/implemented/feature/2026-09-17-sidebar-file-and-directory-auto-refresh.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-17-sidebar-file-and-directory-auto-refresh.i18n.yaml @@ -1,6 +1,73 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-sidebar-file-and-directory-auto-refresh.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-17-sidebar-file-and-directory-auto-refresh.md -2026-09-17-sidebar-file-and-directory-auto-refresh.md: f509a8cf2642d3ca816d40e9e9817d3c962c79a6 -2026-09-17-sidebar-file-and-directory-auto-refresh.zh.md: ff7a950aa86c663d4f5d2fb8e20d64bb2b077f6b +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees: + en: 8dfe4436b064776d + zh: acb3f1e2fae231f4 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/problem: + en: f7e7751fe98be91e + zh: e1d6c4f042c7d75d +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/decision: + en: b51a6972761816ef + zh: 6f50b2a09b8d6abc +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/implementation-and-responsibilities: + en: 79480338424c1829 + zh: c32ff30ccf3d9b87 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/implementation-and-responsibilities/fs-and-host: + en: ca63fb903b447c2d + zh: 3014adbdb0a890ee +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/implementation-and-responsibilities/client-and-sidebar: + en: 5cb8326d8a5b0407 + zh: a31173f990276856 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/watch-requests-and-notifications: + en: 025ba83ae78824df + zh: 264d74d2bdfe3d27 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/watch-requests-and-notifications/one-stream-per-explicit-target: + en: 75d1c4e35d0f4d74 + zh: a6b11f70a64d6922 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/watch-requests-and-notifications/os-watching-and-access-scope: + en: 48af866f541caf04 + zh: c3df4edf7f7ddb4a +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/complete-file-preview-data-flow: + en: f8468653186b2a60 + zh: 0c624d957c9ce332 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/html-resourcegroup: + en: 0f2419d75906ca0a + zh: 3ff0dbb7382ba02c +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/automatic-refresh-controls: + en: a00c8265a48e910d + zh: e1aa7c639a4e2c10 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/complete-files-panel-data-flow: + en: d688642e5f272d48 + zh: 96088fbc0471aeae +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/directory-node-tree-and-lifecycle: + en: 2ea8615be8d5229b + zh: 0c73fa4ebb06445e +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/user-flows: + en: eb4005a334103895 + zh: e2c207faffa64e57 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/user-flows/edit-a-previewed-file: + en: 2b7d90550ad49eff + zh: a8136d5d00390635 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/user-flows/browse-changing-directories: + en: d375f21c1ae106ef + zh: 5a39f248cc98f20a +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/user-flows/deletion-renaming-and-failure: + en: 4f343f7a6c4d3ba4 + zh: a4390843a20f8dde +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/readiness-races-and-refresh-coalescing: + en: caadd187479e9074 + zh: 3deedd8093f60703 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/alternatives-considered: + en: 8a8c19229647c760 + zh: 2de283fc2c815e65 +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/verification: + en: e8143b93c93b4dc2 + zh: a90105eb5823a2ff +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/consequences: + en: 8faa05de777dea21 + zh: 2f0b1ff65bdba75b +/agent-note-on-demand-watching-and-automatic-refresh-for-sidebar-previews-and-file-trees/relationship-to-existing-agent-notes: + en: 8ddc059f64cb3b1c + zh: f6d6836458ef9522 diff --git a/.agents/notes/implemented/feature/2026-09-17-state-dot-visual-language.i18n.yaml b/.agents/notes/implemented/feature/2026-09-17-state-dot-visual-language.i18n.yaml index d86602a99e..711a40b14b 100644 --- a/.agents/notes/implemented/feature/2026-09-17-state-dot-visual-language.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-17-state-dot-visual-language.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-state-dot-visual-language.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-17-state-dot-visual-language.md -2026-09-17-state-dot-visual-language.md: 751abbaa33919721c7e71738ad9b6bed744fcad7 -2026-09-17-state-dot-visual-language.zh.md: 9746ec9af79e15fc41ea8e6601cc52c1cfafba02 +/agent-note-statedot-solid-marks-and-loading-spinner: + en: 74ca1dda90213e27 + zh: 14851ca8d3d4617d +/agent-note-statedot-solid-marks-and-loading-spinner/problem: + en: 4739e4079e950c72 + zh: 4633fc299da13565 +/agent-note-statedot-solid-marks-and-loading-spinner/decision: + en: 98dd1c4ac95913b9 + zh: c3c53bae1ffc430a +/agent-note-statedot-solid-marks-and-loading-spinner/alternatives-considered: + en: 962827b807ebf026 + zh: dfe83e98956dd2cd +/agent-note-statedot-solid-marks-and-loading-spinner/testing: + en: 9d5f7bfb69b7bded + zh: 281db4c0e7ddd8c2 +/agent-note-statedot-solid-marks-and-loading-spinner/consequences: + en: 17a7a8d9c3923666 + zh: 84d941223b079f2b diff --git a/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml b/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml index 39b7b53e98..a74636286a 100644 --- a/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-18-session-pin-and-sidebar-archive.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.md -2026-09-18-session-pin-and-sidebar-archive.md: ac580979b9419e3f00af860e2dce2655fec51908 -2026-09-18-session-pin-and-sidebar-archive.zh.md: d4719fe75bb8aa1e2ebe9b89d4d80182a7597447 +/agent-note-session-pinning-and-the-sidebar-archived-filter: + en: f21362fdb86cdb6c + zh: b14889b8b7a717a3 +/agent-note-session-pinning-and-the-sidebar-archived-filter/problem: + en: 8a33826809d1dd8f + zh: b37aa33a8e2ed8d8 +/agent-note-session-pinning-and-the-sidebar-archived-filter/decision: + en: c483432158826f12 + zh: 2fc1e96f276420a7 +/agent-note-session-pinning-and-the-sidebar-archived-filter/decision/complete-session-order: + en: 321a47984818bbb9 + zh: a55d22a44e7b7155 +/agent-note-session-pinning-and-the-sidebar-archived-filter/decision/archive-restoration: + en: 0e16cb25af1f2bb1 + zh: 026fdf7bfa1c104c +/agent-note-session-pinning-and-the-sidebar-archived-filter/decision/archived-visibility-and-row-motion: + en: 83dd778a865f2cf5 + zh: 7636166749f63633 +/agent-note-session-pinning-and-the-sidebar-archived-filter/decision/persistence: + en: 4bcb0398b47334aa + zh: fa386724afa99a77 +/agent-note-session-pinning-and-the-sidebar-archived-filter/alternatives-considered: + en: 3bf6fc0c22b17377 + zh: 0fc64131ee8be859 +/agent-note-session-pinning-and-the-sidebar-archived-filter/consequences: + en: a487faf9af215726 + zh: a92cae8b15fba541 +/agent-note-session-pinning-and-the-sidebar-archived-filter/related: + en: 6c67f3a071f80c15 + zh: e0455cddc9c4bea9 diff --git a/.agents/notes/implemented/feature/2026-09-19-windows-acl-mandatory-integrity-confinement.i18n.yaml b/.agents/notes/implemented/feature/2026-09-19-windows-acl-mandatory-integrity-confinement.i18n.yaml index 4ab68b411e..5058cd26a1 100644 --- a/.agents/notes/implemented/feature/2026-09-19-windows-acl-mandatory-integrity-confinement.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-19-windows-acl-mandatory-integrity-confinement.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-windows-acl-mandatory-integrity-confinement.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-19-windows-acl-mandatory-integrity-confinement.md -2026-09-19-windows-acl-mandatory-integrity-confinement.md: f53765f34a7d6d9bcae8b06839c30731a054165d -2026-09-19-windows-acl-mandatory-integrity-confinement.zh.md: a963fd7f549ca2e995f74893c95f1620034664eb +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny: + en: 2255e36ca94e90fa + zh: 7bfa70db175ce842 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/problem: + en: adb85f1842b69545 + zh: 42a0ebb3b8015a74 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/decision: + en: 08406f9c720d66c1 + zh: b9c81901488d73b5 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 4237c596c10e1ee9 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/alternatives-considered/why-not-make-the-label-revocable-per-session: + en: 198f33d224035c53 + zh: 63068271658034e7 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/alternatives-considered/why-not-untrusted-integrity-for-read-only-mode: + en: 5f53545a83ccd02c + zh: f8fd05c1f3440e41 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/alternatives-considered/why-not-deny-file-delete-child-with-oi-ci: + en: 78a36aa70395d214 + zh: 0dd32d8ca513cb43 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/alternatives-considered/why-not-drop-the-confinement-layer-and-document-the-escape: + en: 9ff963493255783c + zh: 41b5577792e977cd +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/alternatives-considered/why-not-give-each-workspace-its-own-integrity-level: + en: c39c82f7b745d672 + zh: 7b38d3c4b889dac6 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/consequences: + en: 4930b2596686d377 + zh: 022a62051a58181e +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/testing: + en: 6c1deeacdbff418d + zh: 4d7c546e19da5e53 +/agent-note-windows-sandbox-delete-confinement-mandatory-integrity-plus-an-ambient-delete-deny/related: + en: e4b631df90dd1efa + zh: abc66bfbf8ea2c52 diff --git a/.agents/notes/implemented/feature/2026-09-20-config-schema-dump-validation-policy.i18n.yaml b/.agents/notes/implemented/feature/2026-09-20-config-schema-dump-validation-policy.i18n.yaml index c93f11edb2..9575bd914d 100644 --- a/.agents/notes/implemented/feature/2026-09-20-config-schema-dump-validation-policy.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-20-config-schema-dump-validation-policy.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-config-schema-dump-validation-policy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-20-config-schema-dump-validation-policy.md -2026-09-20-config-schema-dump-validation-policy.md: a0f15b6aad1f534f80db15185a9a70d5c22bc7c2 -2026-09-20-config-schema-dump-validation-policy.zh.md: d94f040057e0a221057a8410523e1e154a8ae166 +/agent-note-config-schema-dump-validation-policy: + en: 3934f170891561da + zh: 3f54f8a830b766ee +/agent-note-config-schema-dump-validation-policy/problem: + en: c0baf581702ed4e8 + zh: eb9ab134045c2e18 +/agent-note-config-schema-dump-validation-policy/decision: + en: 047d67040b39f999 + zh: f7eccdb59e9e72bd +/agent-note-config-schema-dump-validation-policy/alternatives-considered: + en: be0e67675b0a6bf3 + zh: 361c7fd4eb482f3a +/agent-note-config-schema-dump-validation-policy/consequences: + en: 5df3531b64f09edd + zh: 03e1a9f15248b171 diff --git a/.agents/notes/implemented/feature/2026-09-20-default-workspace.i18n.yaml b/.agents/notes/implemented/feature/2026-09-20-default-workspace.i18n.yaml index 89b4d5dabf..eec425be40 100644 --- a/.agents/notes/implemented/feature/2026-09-20-default-workspace.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-20-default-workspace.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-default-workspace.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-20-default-workspace.md -2026-09-20-default-workspace.md: 1674079403b17fb1bd984052a85975609179cad0 -2026-09-20-default-workspace.zh.md: 81a7c96efa3d8b8d4673b684b59babe339706f29 +/agent-note-first-use-default-workspace: + en: cf68fedc85ef73ad + zh: a48dfa96ac11585a +/agent-note-first-use-default-workspace/problem: + en: 952ca70e83872f88 + zh: 471b4e39dba2039a +/agent-note-first-use-default-workspace/decision: + en: 7f51354b3082f290 + zh: 8f6ce1c14f11f888 +/agent-note-first-use-default-workspace/alternatives-considered: + en: 65c93ecfbbcf22a9 + zh: c88ed47852200752 +/agent-note-first-use-default-workspace/consequences: + en: ab39d4e9302a2641 + zh: 8921bb8451ef2d0e diff --git a/.agents/notes/implemented/feature/2026-09-20-desktop-browser-webview.i18n.yaml b/.agents/notes/implemented/feature/2026-09-20-desktop-browser-webview.i18n.yaml index 254189ee9f..b30c8e7897 100644 --- a/.agents/notes/implemented/feature/2026-09-20-desktop-browser-webview.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-20-desktop-browser-webview.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-desktop-browser-webview.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-20-desktop-browser-webview.md -2026-09-20-desktop-browser-webview.md: e69114a90f50d51542e9b6a0d40daef05a93001f -2026-09-20-desktop-browser-webview.zh.md: b0ab8b1a7058ae9cbb1258977cb4c4e2d8c40614 +/agent-note-retained-desktop-browser-webviews: + en: 59456b799c9d5d5e + zh: 19a88c553986b463 +/agent-note-retained-desktop-browser-webviews/problem: + en: c6abffbd4077e427 + zh: a7a0a2c2a99cc70b +/agent-note-retained-desktop-browser-webviews/decision: + en: f4970f18902b8974 + zh: 2b1a5fa3fc05f256 +/agent-note-retained-desktop-browser-webviews/decision/storage-ownership: + en: fac51097030c3670 + zh: 86868bc1b9a6d8cf +/agent-note-retained-desktop-browser-webviews/decision/initial-guest-policy: + en: 21ab346f9a98863c + zh: efa115f530d22de3 +/agent-note-retained-desktop-browser-webviews/alternatives-considered: + en: 884daa089df32dcc + zh: 7e16d740897555c9 +/agent-note-retained-desktop-browser-webviews/consequences: + en: 01d4a2e6f638d5e9 + zh: 9804b00edea2b03c diff --git a/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.i18n.yaml b/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.i18n.yaml index aa7199eff4..7467604771 100644 --- a/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-developer-tools-default-on.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.md -2026-09-20-developer-tools-default-on.md: 42c89faed11b966ac8ea0882236af9bf13557702 -2026-09-20-developer-tools-default-on.zh.md: a684844f5ba53a0bebdd1c3a3a3ade1ed150cc31 +/agent-note-developer-tools-default-on-after-preference-resolution: + en: 9e6062c94dd70c14 + zh: 3c04f278da2016a5 +/agent-note-developer-tools-default-on-after-preference-resolution/problem: + en: 81d08fb192b8e83b + zh: 90a841219f86bc12 +/agent-note-developer-tools-default-on-after-preference-resolution/decision: + en: 8a3fbb5281d1b313 + zh: 320b845842676375 +/agent-note-developer-tools-default-on-after-preference-resolution/alternatives-considered: + en: 7d9ecd04554103c4 + zh: 2706bb78fcc6072d +/agent-note-developer-tools-default-on-after-preference-resolution/consequences: + en: 54622ff5338afba9 + zh: 494d55213b2751a0 diff --git a/.agents/notes/implemented/feature/2026-09-20-focus-ring-brand-primary.i18n.yaml b/.agents/notes/implemented/feature/2026-09-20-focus-ring-brand-primary.i18n.yaml index 83f884abed..13e7268078 100644 --- a/.agents/notes/implemented/feature/2026-09-20-focus-ring-brand-primary.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-20-focus-ring-brand-primary.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-20-focus-ring-brand-primary.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-20-focus-ring-brand-primary.md -2026-09-20-focus-ring-brand-primary.md: c1f25f5d782f3bc1d8ff0558b05eee51739465ba -2026-09-20-focus-ring-brand-primary.zh.md: 725153657e268b67f9d058d11118c72a1fbf2da4 +/agent-note-one-keyboard-focus-colour-for-every-control: + en: 967e19daff3df9bc + zh: 81e1a21d4204eb8a +/agent-note-one-keyboard-focus-colour-for-every-control/problem: + en: 2f3f77b1de539959 + zh: a4fa146b1d9ddecf +/agent-note-one-keyboard-focus-colour-for-every-control/decision: + en: 1beb00d4a01adbd3 + zh: 84ee34e20227238f +/agent-note-one-keyboard-focus-colour-for-every-control/alternatives-considered: + en: 392968102d520d1d + zh: e7b7b68f145cf3d3 +/agent-note-one-keyboard-focus-colour-for-every-control/consequences: + en: e03729eb25545e81 + zh: 94f5c934786f3c26 diff --git a/.agents/notes/implemented/feature/2026-09-21-archive-stops-running-session-work.i18n.yaml b/.agents/notes/implemented/feature/2026-09-21-archive-stops-running-session-work.i18n.yaml index d6f9f2b719..cda575574b 100644 --- a/.agents/notes/implemented/feature/2026-09-21-archive-stops-running-session-work.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-21-archive-stops-running-session-work.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-21-archive-stops-running-session-work.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-21-archive-stops-running-session-work.md -2026-09-21-archive-stops-running-session-work.md: 2df18c00e6a561e3d85820cbf472bacf5acd9b1d -2026-09-21-archive-stops-running-session-work.zh.md: 423a01bd2feab61c62fa0f4b4b4296674e6b24e4 +/agent-note-archiving-a-session-with-running-work: + en: 0fbbf70c0c7c2bfa + zh: 5d3119ee84af3796 +/agent-note-archiving-a-session-with-running-work/problem: + en: 7926983089aebab2 + zh: 366e32db00674a83 +/agent-note-archiving-a-session-with-running-work/decision: + en: ba02c1b57e6ca76b + zh: 2908fcda98c4734e +/agent-note-archiving-a-session-with-running-work/alternatives-considered: + en: c9d0a5c8d9924ad6 + zh: f848ba8fa3c0d030 +/agent-note-archiving-a-session-with-running-work/consequences: + en: 977e6f36e62c0618 + zh: 706de6bc6bb06282 diff --git a/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml b/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml index 24ad5190da..a107523e07 100644 --- a/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-22-unbounded-completion-wakes-by-default.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.md -2026-09-22-unbounded-completion-wakes-by-default.md: 8760154054de423240e16d93e3db5ae01521820a -2026-09-22-unbounded-completion-wakes-by-default.zh.md: e5560bc7ced5a8ca9ab55ea56ba309676d78b568 +/agent-note-background-job-completion-wakes-are-unbounded-by-default: + en: 5c8e5c0ff2d19ab9 + zh: a046e3297aba3904 +/agent-note-background-job-completion-wakes-are-unbounded-by-default/problem: + en: 32fdd5fa938fc279 + zh: f8f97f806157eea1 +/agent-note-background-job-completion-wakes-are-unbounded-by-default/decision: + en: 7e4ee951808e1860 + zh: 8dad4884d259cdc3 +/agent-note-background-job-completion-wakes-are-unbounded-by-default/alternatives-considered: + en: 62630b7ec477bf7b + zh: 0640a01ac9d22722 +/agent-note-background-job-completion-wakes-are-unbounded-by-default/consequences: + en: ba000076db02ccb7 + zh: 1aa1e7d45d6512fe diff --git a/.agents/notes/implemented/process/2026-06-11-quality-gates.i18n.yaml b/.agents/notes/implemented/process/2026-06-11-quality-gates.i18n.yaml index 5dedd0a1fb..515c9508fd 100644 --- a/.agents/notes/implemented/process/2026-06-11-quality-gates.i18n.yaml +++ b/.agents/notes/implemented/process/2026-06-11-quality-gates.i18n.yaml @@ -1,6 +1,16 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-quality-gates.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-06-11-quality-gates.md -2026-06-11-quality-gates.md: b4bcbcbb6e47ccbb3ed193300c4a8b2daa3901c0 -2026-06-11-quality-gates.zh.md: 64179fd7b13bf5de3d82bf9bf8819f6230b46238 +/agent-note-mechanical-quality-gates-over-prose-guidelines: + en: ee219fd65689e5ea + zh: a5eb719557f02ad6 +/agent-note-mechanical-quality-gates-over-prose-guidelines/problem: + en: 526b060333ea2457 + zh: 182f46699589aff5 +/agent-note-mechanical-quality-gates-over-prose-guidelines/decision: + en: c6d1551e56d22b99 + zh: 6b7efc184274b7ac +/agent-note-mechanical-quality-gates-over-prose-guidelines/consequences: + en: 7bf0c081f242501e + zh: 30f892fbd982f1b2 diff --git a/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.i18n.yaml b/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.i18n.yaml index 2a7d105492..d4354efa31 100644 --- a/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.i18n.yaml +++ b/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-16-pnpm-over-yarn.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.md -2026-06-16-pnpm-over-yarn.md: 4a8560a0216e614f4ea06c0a1aac3a553abcaf8d -2026-06-16-pnpm-over-yarn.zh.md: 4955cf88834a56d89ba1c4c1866c72cf647ccbd3 +/agent-note-pnpm-as-the-package-manager-instead-of-yarn-4: + en: 2c8be5b7d3dae8c7 + zh: e6d4d5dc41455f52 +/agent-note-pnpm-as-the-package-manager-instead-of-yarn-4/problem: + en: a397e5f0a83c3306 + zh: 5ced99f94dae9e30 +/agent-note-pnpm-as-the-package-manager-instead-of-yarn-4/decision: + en: cadbbd8b1bab85ef + zh: 31fcb11ddbcb79c3 +/agent-note-pnpm-as-the-package-manager-instead-of-yarn-4/alternatives-considered: + en: 20e2ebed65f92625 + zh: f1717d69d271fb43 +/agent-note-pnpm-as-the-package-manager-instead-of-yarn-4/consequences: + en: 024fefe88e8bbc95 + zh: 018dc287c07d6483 diff --git a/.agents/notes/implemented/process/2026-06-17-ts-build-config.i18n.yaml b/.agents/notes/implemented/process/2026-06-17-ts-build-config.i18n.yaml index 6ee41d8ba1..3d3e5e065d 100644 --- a/.agents/notes/implemented/process/2026-06-17-ts-build-config.i18n.yaml +++ b/.agents/notes/implemented/process/2026-06-17-ts-build-config.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-17-ts-build-config.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-06-17-ts-build-config.md -2026-06-17-ts-build-config.md: 05b70cb836491e8a3e6c66deb38773b5351e69e8 -2026-06-17-ts-build-config.zh.md: d42d9b7abe6368b3ed8e0f32605e866e214f1e7c +/agent-note-tsc-first-build-and-one-compiler-ownership: + en: 98c341593a211f00 + zh: 5c051e3aaff4847e +/agent-note-tsc-first-build-and-one-compiler-ownership/problem: + en: 62307ddfb9e110cb + zh: 236bdad7df92a028 +/agent-note-tsc-first-build-and-one-compiler-ownership/decision: + en: e2b61f1e0549117d + zh: 596ca8cf8207f2b5 +/agent-note-tsc-first-build-and-one-compiler-ownership/alternatives-considered: + en: 9b143ba610f06e2f + zh: 7832be7816aec7e6 +/agent-note-tsc-first-build-and-one-compiler-ownership/consequences: + en: 05b0f4a3a96e9435 + zh: 2903da5edbaf3cb7 diff --git a/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml b/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml index 213fa7b96a..59b17b44ff 100644 --- a/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-02-bilingual-docs-and-pairing-gate.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.md -2026-07-02-bilingual-docs-and-pairing-gate.md: 9448c9dcd75cae0ab39fd62b418fd3aa3b5e4484 -2026-07-02-bilingual-docs-and-pairing-gate.zh.md: b843de91e2fb92d05c81387f49853c4ca413228f +/agent-note-bilingual-documentation-via-paired-sibling-files-and-a-pairing-gate: + en: 04529b9cc16be36d + zh: 5fb4377453231503 +/agent-note-bilingual-documentation-via-paired-sibling-files-and-a-pairing-gate/problem: + en: 0ca5c6556229e3ee + zh: 6dacd60a7dc4bff4 +/agent-note-bilingual-documentation-via-paired-sibling-files-and-a-pairing-gate/decision: + en: 46b0ca2b0f45eb6c + zh: 3ddcd36e9ef8d134 +/agent-note-bilingual-documentation-via-paired-sibling-files-and-a-pairing-gate/verification: + en: 8fbf681b863a831c + zh: e5ba11a549a92612 +/agent-note-bilingual-documentation-via-paired-sibling-files-and-a-pairing-gate/alternatives-considered: + en: 995a746c59ea7b6c + zh: 04a248329dc0d04b +/agent-note-bilingual-documentation-via-paired-sibling-files-and-a-pairing-gate/industry-precedent: + en: 6b5d62086bfd3868 + zh: 219dad72943f590a +/agent-note-bilingual-documentation-via-paired-sibling-files-and-a-pairing-gate/consequences: + en: 65f9f024d99d438f + zh: ff624c8be88c5830 diff --git a/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml b/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml index 06f10621ec..e72a4d0af7 100644 --- a/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-04-doc-tiers-and-budgets.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.md -2026-07-04-doc-tiers-and-budgets.md: 209504218d18e97ae6da65bed9a22da40d2a7681 -2026-07-04-doc-tiers-and-budgets.zh.md: 9c866424d84b4fefa5ffe95efa21a3cf7d3c321a +/agent-note-documentation-structure-tiers-and-budgets: + en: f2add84f6fdb18d0 + zh: 7f97fab8f9234bb9 +/agent-note-documentation-structure-tiers-and-budgets/problem: + en: 6ecec6cc312745dd + zh: ac1244b6113b89da +/agent-note-documentation-structure-tiers-and-budgets/decision: + en: 8a3a2e086af59a6c + zh: d1d45a4a108031a2 +/agent-note-documentation-structure-tiers-and-budgets/alternatives-considered: + en: 8275e8f6ffe18def + zh: 06a5af3e5581f45b +/agent-note-documentation-structure-tiers-and-budgets/consequences: + en: 76c254b56618cef6 + zh: 1f1264d6879df20c diff --git a/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.i18n.yaml b/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.i18n.yaml index 95a5b0ee27..c860b4f1d3 100644 --- a/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-05-uniform-agent-note-format.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.md -2026-07-05-uniform-agent-note-format.md: c05d81c700b81f0d619173a261f405b1cc039df1 -2026-07-05-uniform-agent-note-format.zh.md: 13991632e70cfab1c65170ba5f2350f47ad1acd0 +/agent-note-one-gated-in-file-format-for-agent-notes: + en: 1d02708a467f4a07 + zh: 3c924198ec72c881 +/agent-note-one-gated-in-file-format-for-agent-notes/problem: + en: 71bd2d16e40c3ed7 + zh: 485862218afcdc00 +/agent-note-one-gated-in-file-format-for-agent-notes/decision: + en: 246ec96b0c1da90d + zh: 12a06608ffdf28f8 +/agent-note-one-gated-in-file-format-for-agent-notes/alternatives-considered: + en: 330044b841da3ab9 + zh: e909207cbcbc5edb +/agent-note-one-gated-in-file-format-for-agent-notes/consequences: + en: 345e6318b76b1a06 + zh: 63cef25e59d91654 diff --git a/.agents/notes/implemented/process/2026-07-06-node-engine-floor.i18n.yaml b/.agents/notes/implemented/process/2026-07-06-node-engine-floor.i18n.yaml index 5687bcd853..18ab194298 100644 --- a/.agents/notes/implemented/process/2026-07-06-node-engine-floor.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-06-node-engine-floor.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-06-node-engine-floor.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-06-node-engine-floor.md -2026-07-06-node-engine-floor.md: e2fe7661f43b77f544de2c3a555e5d756f260ea2 -2026-07-06-node-engine-floor.zh.md: e7d41e81281aa1d335780cf4edd65749ccb1db84 +/agent-note-raise-the-node-lts-engine-floor-to-22-19: + en: 01f43f2b4c6bd4fa + zh: 7f34e5b3c1c55419 +/agent-note-raise-the-node-lts-engine-floor-to-22-19/problem: + en: d7bf1b1699ce0dc8 + zh: f10dfd0e4787bb44 +/agent-note-raise-the-node-lts-engine-floor-to-22-19/decision: + en: 0051c0d8c1948f63 + zh: cbab7aa0f53f7200 +/agent-note-raise-the-node-lts-engine-floor-to-22-19/consequences: + en: 0b9fbe932d9a8b1f + zh: 642e19d06caecef2 +/agent-note-raise-the-node-lts-engine-floor-to-22-19/alternatives-considered: + en: c433389b2064eaf9 + zh: 57de2af812def1c4 diff --git a/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.i18n.yaml b/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.i18n.yaml index 482b7bc689..60dff04b5b 100644 --- a/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-06-parallel-pre-push-gates.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.md -2026-07-06-parallel-pre-push-gates.md: 9773a86428545608d184112ec4ab95136d4690d0 -2026-07-06-parallel-pre-push-gates.zh.md: 4d0e15a3389d276ea4b1c51224c96b864b0958a0 +/agent-note-parallel-pre-push-gates: + en: d5ee83ee15159e15 + zh: 07a6599af21d98a9 +/agent-note-parallel-pre-push-gates/problem: + en: 896ffdae7d51cc19 + zh: eed0d7e80456bd8e +/agent-note-parallel-pre-push-gates/decision: + en: c95d213689164ad6 + zh: da85165d13b26d58 +/agent-note-parallel-pre-push-gates/verification: + en: c7124c68afb12a8e + zh: 0a0269476ae353f3 +/agent-note-parallel-pre-push-gates/alternatives-considered: + en: d54f4ed806116b2e + zh: 38725684130bb843 +/agent-note-parallel-pre-push-gates/consequences: + en: 5d22505a7c041e41 + zh: ba1010f18d3e8302 diff --git a/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.i18n.yaml b/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.i18n.yaml index 1d988cd081..0496ff4408 100644 --- a/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-12-package-model-experience-contract.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-12-package-model-experience-contract.md -2026-07-12-package-model-experience-contract.md: 8462cc20e8de43927cd04b73cfdb11a0c3d77336 -2026-07-12-package-model-experience-contract.zh.md: 040412f3afe4f5854d1945a6e638d6a517464f7f +/agent-note-package-model-experience-contract: + en: c14f97f66251831b + zh: a7ef93d593a72215 +/agent-note-package-model-experience-contract/problem: + en: 69034b9a9ba40d49 + zh: 016b64cb54c4c873 +/agent-note-package-model-experience-contract/decision: + en: f67c13ad41004520 + zh: 28cf10f7d217f626 +/agent-note-package-model-experience-contract/alternatives-considered: + en: 206bc943c04313b1 + zh: 6d295d9da6675854 +/agent-note-package-model-experience-contract/consequences: + en: dc6057b8836bb3fc + zh: 6e41a27a99ae0339 diff --git a/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.i18n.yaml b/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.i18n.yaml index 7b91c29627..42524fde30 100644 --- a/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-remove-generated-agent-note-index.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.md -2026-07-19-remove-generated-agent-note-index.md: 60dba14064ffe294228968cdb111920696fe7d63 -2026-07-19-remove-generated-agent-note-index.zh.md: 912aea133068a727856475df21516a28b2d27876 +/agent-note-keep-agent-notes-discoverable-without-a-generated-index: + en: aedcead60a29472a + zh: 0b17ad37acb4a92e +/agent-note-keep-agent-notes-discoverable-without-a-generated-index/problem: + en: 8a66ca1096aab8f4 + zh: f9774f5f3e7d0a31 +/agent-note-keep-agent-notes-discoverable-without-a-generated-index/decision: + en: 2b02e79f20d9be1b + zh: 5dec073afcee9c2e +/agent-note-keep-agent-notes-discoverable-without-a-generated-index/alternatives-considered: + en: 0317d3d10b97f004 + zh: 9315c31a17f7057a +/agent-note-keep-agent-notes-discoverable-without-a-generated-index/consequences: + en: 631728aa0d482555 + zh: 910a749ae88d4c83 diff --git a/.agents/notes/implemented/process/2026-07-19-web-styling-system.i18n.yaml b/.agents/notes/implemented/process/2026-07-19-web-styling-system.i18n.yaml index f9fe8dd6ff..7889068a5c 100644 --- a/.agents/notes/implemented/process/2026-07-19-web-styling-system.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-19-web-styling-system.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-web-styling-system.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-19-web-styling-system.md -2026-07-19-web-styling-system.md: b4d647924ab6ab172cd7a7e2531a10a2a7e62981 -2026-07-19-web-styling-system.zh.md: e7384575cf69099c8a95610f61c85b5bcb80d300 +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints: + en: 60e793c38185c08c + zh: 8f4d4644e3502c31 +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints/problem: + en: aa546850f8c51cd1 + zh: bba14f66aaf1e06a +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints/decision: + en: 72a1d3545d1ebd6d + zh: f2fdc9006468aa72 +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints/engineering-constraints: + en: 39f1984d96e609ed + zh: 14eda6caf43c5514 +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints/the-execution-shape-for-agents: + en: 10342491b9dcc1a7 + zh: cd23d8c2f8ef3d26 +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints/division-of-labor-with-web-styling-md: + en: 91e06333e11b1417 + zh: c743f392dbd9391f +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints/consequences: + en: 128333a6495cbfa0 + zh: f165ef2f3d76f216 +/agent-note-web-styling-system-the-token-framework-and-engineering-constraints/alternatives-considered: + en: 6579ca659b112618 + zh: f1a650f4af1b8cc2 diff --git a/.agents/notes/implemented/process/2026-07-20-gui-testing-system.i18n.yaml b/.agents/notes/implemented/process/2026-07-20-gui-testing-system.i18n.yaml index 8d3f060672..d91e7a4590 100644 --- a/.agents/notes/implemented/process/2026-07-20-gui-testing-system.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-20-gui-testing-system.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-20-gui-testing-system.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-20-gui-testing-system.md -2026-07-20-gui-testing-system.md: 3fdb9a596dd18861ea8b765da129656942778f96 -2026-07-20-gui-testing-system.zh.md: e49d5a2f848e7f4847c7761ee0a487ce6fd3220e +/agent-note-gui-testing-system-the-three-tier-structure: + en: 66959d1c7c3cad28 + zh: 1e29f27d36c45909 +/agent-note-gui-testing-system-the-three-tier-structure/problem: + en: 1c54e58ea993ef6a + zh: 73108687fa58a6f2 +/agent-note-gui-testing-system-the-three-tier-structure/decision: + en: 4c6e52549113c2c7 + zh: 586175edee8b128c +/agent-note-gui-testing-system-the-three-tier-structure/lane-map: + en: 81d53390f31e540e + zh: 272a2b2b93269c45 +/agent-note-gui-testing-system-the-three-tier-structure/anti-regression-discipline: + en: 80fe1589a6236740 + zh: 30e1911d37865c49 +/agent-note-gui-testing-system-the-three-tier-structure/consequences: + en: 22f2475a438c639c + zh: aafab5ff60b7c644 +/agent-note-gui-testing-system-the-three-tier-structure/alternatives-considered: + en: 19e29023b70018b0 + zh: d47ff8e62a0befb6 diff --git a/.agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml b/.agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml index 2ce7922815..42a4a26dc0 100644 --- a/.agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-21-serial-cross-platform-ci-reference.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.md -2026-07-21-serial-cross-platform-ci-reference.md: 24022fea271d677a4588bd5dc9c7cb5b417ca8b7 -2026-07-21-serial-cross-platform-ci-reference.zh.md: c9fbc84d8ff91803acc6bcd008607fc03136b832 +/agent-note-serial-cross-platform-ci-reference: + en: 4dd700fefdda5d17 + zh: 3a6a9bc2a28b3f39 +/agent-note-serial-cross-platform-ci-reference/problem: + en: 4fb1c27a631b32d3 + zh: 9dbe9a4b9aadfca9 +/agent-note-serial-cross-platform-ci-reference/decision: + en: f547014d316c1385 + zh: f13b09a4a778adaa +/agent-note-serial-cross-platform-ci-reference/alternatives-considered: + en: bc72a1e194e3b0e2 + zh: 9a92cbac88adc7a7 +/agent-note-serial-cross-platform-ci-reference/consequences: + en: 7042125ce6a209d4 + zh: ef2be4fa8a4d6320 diff --git a/.agents/notes/implemented/process/2026-07-26-ci-failover-runbook.i18n.yaml b/.agents/notes/implemented/process/2026-07-26-ci-failover-runbook.i18n.yaml index 1be4833f09..14ae915151 100644 --- a/.agents/notes/implemented/process/2026-07-26-ci-failover-runbook.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-26-ci-failover-runbook.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-26-ci-failover-runbook.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-26-ci-failover-runbook.md -2026-07-26-ci-failover-runbook.md: d46f9d140860580011e06aa3b51bb8618a23a114 -2026-07-26-ci-failover-runbook.zh.md: a229d46f16d959356e9108842edd557420e699ae +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool: + en: 677b522817e84e2f + zh: f8518a7033b0fd54 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/problem: + en: 317fafe666a76953 + zh: c886a5a4bccceda0 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/decision: + en: 2520d6c0d2bfe1a6 + zh: 616c70b8b1026109 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/decision/release-rehearsals-share-the-linux-switch: + en: 7fdad4f7d060d659 + zh: 6773db9b7d62cd0a +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/decision/what-the-in-house-pool-is: + en: 00d8934ed30e838c + zh: bdb5584fbaf27c7d +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/decision/what-the-in-house-pool-is/windows-pool: + en: f395af725d1deaf1 + zh: 896cedbb36c13758 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/decision/switch-any-repository-writer-1-minute-no-merge: + en: 2e3829fd72d6b1b0 + zh: 563f0abade7974f9 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/capacity-during-failover: + en: 4095da1b492d7484 + zh: 0c0bb9c97e4af977 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/capacity-during-failover/switch-back: + en: 63cf911019db8d2f + zh: 5eb3903b0ceb30db +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/capacity-during-failover/trust-boundary: + en: c05bc0ceba304ff0 + zh: 19ae9a2d70f25d33 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/alternatives-considered: + en: e68b70d7caca52f1 + zh: e6f0be792105a9e6 +/agent-note-ci-failover-runbook-hosted-pools-in-house-pool/consequences: + en: f66e0aa401136799 + zh: 657188692959955e diff --git a/.agents/notes/implemented/process/2026-07-26-dependencies-over-hand-rolling.i18n.yaml b/.agents/notes/implemented/process/2026-07-26-dependencies-over-hand-rolling.i18n.yaml index edc74a719e..5d93d0272b 100644 --- a/.agents/notes/implemented/process/2026-07-26-dependencies-over-hand-rolling.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-26-dependencies-over-hand-rolling.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-26-dependencies-over-hand-rolling.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-26-dependencies-over-hand-rolling.md -2026-07-26-dependencies-over-hand-rolling.md: 53336e5a2dc8970422dcf8a161a31eb01f8155e4 -2026-07-26-dependencies-over-hand-rolling.zh.md: deec00d87f2c514dbf16cac0e96cdf00ec055958 +/agent-note-prefer-maintained-dependencies-over-hand-rolling: + en: 5cf63576459c1942 + zh: c3f2dbc5e4656693 +/agent-note-prefer-maintained-dependencies-over-hand-rolling/problem: + en: 5c13c4dd8707db61 + zh: b788b35b54bec861 +/agent-note-prefer-maintained-dependencies-over-hand-rolling/decision: + en: 2b8c6ea6c61732cd + zh: 946b2ef6142eaca3 +/agent-note-prefer-maintained-dependencies-over-hand-rolling/alternatives-considered: + en: c3575c5c8b4a6e51 + zh: f20aa07eefed8a3b +/agent-note-prefer-maintained-dependencies-over-hand-rolling/consequences: + en: abac778b1b57b62a + zh: 7cd7b253d637726b diff --git a/.agents/notes/implemented/process/2026-07-26-frozen-agent-note-archive.i18n.yaml b/.agents/notes/implemented/process/2026-07-26-frozen-agent-note-archive.i18n.yaml index c8bfb9d43c..1b44f40971 100644 --- a/.agents/notes/implemented/process/2026-07-26-frozen-agent-note-archive.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-26-frozen-agent-note-archive.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-26-frozen-agent-note-archive.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-26-frozen-agent-note-archive.md -2026-07-26-frozen-agent-note-archive.md: e9ecfa78f53a5912608201654e2c56e399defccd -2026-07-26-frozen-agent-note-archive.zh.md: 9a3ce2e6e21864f2754f627be6f7576bfc1f9076 +/agent-note-freeze-low-future-value-agent-notes-outside-the-active-corpus: + en: f6883e4627411644 + zh: e034e9b350dfd622 +/agent-note-freeze-low-future-value-agent-notes-outside-the-active-corpus/problem: + en: cef0f05fd8dfd6a1 + zh: 228107eb6c00a91a +/agent-note-freeze-low-future-value-agent-notes-outside-the-active-corpus/decision: + en: 453cf66046816477 + zh: af5bb77e849416a1 +/agent-note-freeze-low-future-value-agent-notes-outside-the-active-corpus/alternatives-considered: + en: 7637deef67f3ec14 + zh: 7f43606e487fab67 +/agent-note-freeze-low-future-value-agent-notes-outside-the-active-corpus/consequences: + en: 679af41e64d0dd15 + zh: ebbead84f8b8e1df diff --git a/.agents/notes/implemented/process/2026-07-27-worktree-local-lefthook.i18n.yaml b/.agents/notes/implemented/process/2026-07-27-worktree-local-lefthook.i18n.yaml index 5bb1f929e1..5d29f39a16 100644 --- a/.agents/notes/implemented/process/2026-07-27-worktree-local-lefthook.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-27-worktree-local-lefthook.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-27-worktree-local-lefthook.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-27-worktree-local-lefthook.md -2026-07-27-worktree-local-lefthook.md: 42adc1ed1d60d1462a3fb6600b22b7d77b6ae28e -2026-07-27-worktree-local-lefthook.zh.md: b4b905967861606154a4bf63f4dbb6b4eb469e92 +/agent-note-make-lefthook-installation-worktree-local: + en: 2a11ec534041e270 + zh: 9cbd4adbaecd1b32 +/agent-note-make-lefthook-installation-worktree-local/problem: + en: b3ec2245644b46e6 + zh: 83de1cb620f9ddcf +/agent-note-make-lefthook-installation-worktree-local/decision: + en: 577d90ff7e03ebaf + zh: dc680155c0c3a2a1 +/agent-note-make-lefthook-installation-worktree-local/alternatives-considered: + en: d7100b0d2c95a3f9 + zh: 070c38c4d0d1331a +/agent-note-make-lefthook-installation-worktree-local/consequences: + en: ea991f7a0d5c0bf2 + zh: e7f7b3c9215213ba diff --git a/.agents/notes/implemented/process/2026-07-30-generated-third-party-notices.i18n.yaml b/.agents/notes/implemented/process/2026-07-30-generated-third-party-notices.i18n.yaml index c92bdd5546..91cb4b1f67 100644 --- a/.agents/notes/implemented/process/2026-07-30-generated-third-party-notices.i18n.yaml +++ b/.agents/notes/implemented/process/2026-07-30-generated-third-party-notices.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-30-generated-third-party-notices.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-07-30-generated-third-party-notices.md -2026-07-30-generated-third-party-notices.md: 71f1fd0a5b650d53c5ef21438e17e0a6e162bdf5 -2026-07-30-generated-third-party-notices.zh.md: e3adb43e4b407945a8cca88105de689407b5908b +/agent-note-generated-third-party-notices: + en: 762fe10c2750eb0a + zh: 24f5efdf4cc1755e +/agent-note-generated-third-party-notices/problem: + en: e6929494e60041a2 + zh: 15bec8e8baabcab2 +/agent-note-generated-third-party-notices/decision: + en: 4d9ab23559067da3 + zh: 8de95de194393187 +/agent-note-generated-third-party-notices/testing: + en: 194f87f780991068 + zh: 58096d2339576d20 +/agent-note-generated-third-party-notices/alternatives-considered: + en: 093ddc027e296bf0 + zh: 6b9e64d99dcefa11 +/agent-note-generated-third-party-notices/consequences: + en: 860b806c5d393c98 + zh: 51b4ca11e2d3802a diff --git a/.agents/notes/implemented/process/2026-08-02-native-github-stacks-and-optional-rebases.i18n.yaml b/.agents/notes/implemented/process/2026-08-02-native-github-stacks-and-optional-rebases.i18n.yaml index 360c8ca687..88fc7212bb 100644 --- a/.agents/notes/implemented/process/2026-08-02-native-github-stacks-and-optional-rebases.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-02-native-github-stacks-and-optional-rebases.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-02-native-github-stacks-and-optional-rebases.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-02-native-github-stacks-and-optional-rebases.md -2026-08-02-native-github-stacks-and-optional-rebases.md: 394f0d7b4557bd306ae020d3edb5339fbcd2f068 -2026-08-02-native-github-stacks-and-optional-rebases.zh.md: 6266619fa1b2e58b50377b2ddb268632bb6cce08 +/agent-note-native-github-stacks-and-optional-pr-rebases: + en: 9427ca53db68d50b + zh: 9e72b34deee3bb9f +/agent-note-native-github-stacks-and-optional-pr-rebases/problem: + en: 21312af191207fa6 + zh: 86306b4c6dd08a0c +/agent-note-native-github-stacks-and-optional-pr-rebases/decision: + en: 893a172d6f0fc764 + zh: 5fdeca6898882bb2 +/agent-note-native-github-stacks-and-optional-pr-rebases/verification: + en: eac5830cd3dd385e + zh: 8e272a5cf2e54519 +/agent-note-native-github-stacks-and-optional-pr-rebases/alternatives-considered: + en: 9c601bc6dee773f1 + zh: 72fb6396e76ba2a5 +/agent-note-native-github-stacks-and-optional-pr-rebases/consequences: + en: 7cb31f6445970432 + zh: 0da95a9f9b521bea diff --git a/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml b/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml index 1e3b097d4c..b427a1cc50 100644 --- a/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-03-package-anchored-subsystem-pages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.md -2026-08-03-package-anchored-subsystem-pages.md: ea98bae0c54b45351712a75b5c2387c5f57fae71 -2026-08-03-package-anchored-subsystem-pages.zh.md: 4da4211f4e29eff0d30bd3da5d5035ad2a928ee5 +/agent-note-package-anchored-subsystem-pages-and-thin-group-readmes: + en: 48a39166064d9f0d + zh: c23ba48570aab506 +/agent-note-package-anchored-subsystem-pages-and-thin-group-readmes/problem: + en: 244099e9da9c15ce + zh: 72b5dd59abe0133a +/agent-note-package-anchored-subsystem-pages-and-thin-group-readmes/decision: + en: b8c1668317997b2c + zh: 62d0ef605bfa3d3c +/agent-note-package-anchored-subsystem-pages-and-thin-group-readmes/alternatives-considered: + en: 07b4fc9048074b31 + zh: d14c862196f545fa +/agent-note-package-anchored-subsystem-pages-and-thin-group-readmes/consequences: + en: 9a6d02787410d14d + zh: e63d7023f49d5750 diff --git a/.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml b/.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml deleted file mode 100644 index 5e46e610a1..0000000000 --- a/.agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: -# pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-08-automatic-translation-pairing-merges.md -2026-08-08-automatic-translation-pairing-merges.md: ac4e0c11290abfd48d0f3caf037062aa2fe36c4d -2026-08-08-automatic-translation-pairing-merges.zh.md: 820ebdbe8c20988c4e917704db2f1994ae830fad diff --git a/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml b/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml index e09c768aba..402eb36c98 100644 --- a/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-08-browser-gif-evidence-chain.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.md -2026-08-08-browser-gif-evidence-chain.md: 8a7c28792bbab178cac6ba6743628882a15fdf6e -2026-08-08-browser-gif-evidence-chain.zh.md: ff9b6cc729c23dd9f3ba170752fa05fe65c7fb53 +/agent-note-browser-gifs-preserve-one-evidence-chain: + en: acd1abc5215025db + zh: 13d04f81ebb47d18 +/agent-note-browser-gifs-preserve-one-evidence-chain/problem: + en: 427edb924ca3106e + zh: 2115278719f9fd25 +/agent-note-browser-gifs-preserve-one-evidence-chain/decision: + en: 1a098893e7e55ff8 + zh: c2912855cfc4a2bb +/agent-note-browser-gifs-preserve-one-evidence-chain/alternatives-considered: + en: 7c8b16109ffaf01a + zh: d978945c49912639 +/agent-note-browser-gifs-preserve-one-evidence-chain/consequences: + en: 18e112842a2a0ac8 + zh: bb562ffcbd660b83 diff --git a/.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml b/.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml index 7ad3923251..8a421fe006 100644 --- a/.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-08-native-windows-pull-request-ci.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.md -2026-08-08-native-windows-pull-request-ci.md: 64c4366ee8d60dd0137e6e4eb5473c0450204efe -2026-08-08-native-windows-pull-request-ci.zh.md: 48725cdc58ab7b8db22461da64236c6de3bb3027 +/agent-note-wine-and-native-windows-ci: + en: 9c96424c10b83c6b + zh: b2adf0c650fbf529 +/agent-note-wine-and-native-windows-ci/problem: + en: 3e229ecf646af866 + zh: d358507b1e1d381f +/agent-note-wine-and-native-windows-ci/decision: + en: f557cb00e1b457c1 + zh: eeaec8412ddb315a +/agent-note-wine-and-native-windows-ci/alternatives-considered: + en: f6c5e77fe3f05739 + zh: 8de640d12d3a38c4 +/agent-note-wine-and-native-windows-ci/consequences: + en: 58069228d4e904c6 + zh: 2601a48b82400903 diff --git a/.agents/notes/implemented/process/2026-08-08-unified-github-label-taxonomy.i18n.yaml b/.agents/notes/implemented/process/2026-08-08-unified-github-label-taxonomy.i18n.yaml index 8c6982cd71..3abc0c9d28 100644 --- a/.agents/notes/implemented/process/2026-08-08-unified-github-label-taxonomy.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-08-unified-github-label-taxonomy.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-08-unified-github-label-taxonomy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-08-unified-github-label-taxonomy.md -2026-08-08-unified-github-label-taxonomy.md: 1748f9b77ed2922035c5e75ac4a2eee047f413d3 -2026-08-08-unified-github-label-taxonomy.zh.md: 3b221a5f3db43597656f46dfc505cdfda38c75db +/agent-note-unified-github-label-taxonomy: + en: 59560a685380483f + zh: 1bf2324f05c8968a +/agent-note-unified-github-label-taxonomy/problem: + en: 8c0c360d500f22f0 + zh: 97c815076ee9b53b +/agent-note-unified-github-label-taxonomy/decision: + en: 398fb26c5da12e42 + zh: 02c16ca5058283bc +/agent-note-unified-github-label-taxonomy/decision/kinds: + en: 04e51bc9313727a0 + zh: 443388bc0472c368 +/agent-note-unified-github-label-taxonomy/decision/areas: + en: b8d485a8222d0938 + zh: 8fbb27557db98023 +/agent-note-unified-github-label-taxonomy/decision/issues-and-migrations: + en: 6d720c37cf806ae6 + zh: c16c420482d02067 +/agent-note-unified-github-label-taxonomy/alternatives-considered: + en: 57740baaeda04f6d + zh: 8da0aabac6b06424 +/agent-note-unified-github-label-taxonomy/consequences: + en: 41169a21b2ac9801 + zh: 5506bf106f95163d diff --git a/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.i18n.yaml b/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.i18n.yaml index febe070830..e8b85c04de 100644 --- a/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-09-committed-artifact-citations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-09-committed-artifact-citations.md -2026-08-09-committed-artifact-citations.md: 66dec38755fbe366385349e65da3dbc0ff632769 -2026-08-09-committed-artifact-citations.zh.md: ebc4541e56c4481005700cf16aa03881c9fb005d +/agent-note-cite-committed-artifacts-never-design-session-ordinals: + en: c97b89961652ab9f + zh: a2ecdc61c29652a6 +/agent-note-cite-committed-artifacts-never-design-session-ordinals/problem: + en: 79dc8b3d2c600d91 + zh: e7b16c9e276e565f +/agent-note-cite-committed-artifacts-never-design-session-ordinals/decision: + en: 83f88200cfa66c98 + zh: 3db6822a92701d64 +/agent-note-cite-committed-artifacts-never-design-session-ordinals/alternatives-considered: + en: cdf3ce2ccd530449 + zh: f24bb73190b4b22b +/agent-note-cite-committed-artifacts-never-design-session-ordinals/verification: + en: fb9ce345704f7da4 + zh: 3148c6bbf67ad87f +/agent-note-cite-committed-artifacts-never-design-session-ordinals/consequences: + en: 53fe33cd40aa7133 + zh: 4eaf89d5dea43c62 diff --git a/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml b/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml index 4326e893cf..eb5e443f1b 100644 --- a/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-09-concrete-prose-names-actors-and-recorded-facts.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md -2026-08-09-concrete-prose-names-actors-and-recorded-facts.md: 91f7913ff0cabafdd1c089e618d7864b9a085147 -2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md: 315850711adb234fa2bd9a92d9bd69fea5077230 +/agent-note-concrete-prose-names-actors-and-recorded-facts: + en: fbfbd92c8f73d34c + zh: fc48118b80f5dbb9 +/agent-note-concrete-prose-names-actors-and-recorded-facts/problem: + en: f0228c15ff233209 + zh: b6183fdc8dd705a0 +/agent-note-concrete-prose-names-actors-and-recorded-facts/decision: + en: 833658027dc8e2d7 + zh: a360c4aa7b4dde7f +/agent-note-concrete-prose-names-actors-and-recorded-facts/alternatives-considered: + en: 08a988b00edf03b2 + zh: 8614c5edbc46ca36 +/agent-note-concrete-prose-names-actors-and-recorded-facts/consequences: + en: 18e6d0b597186220 + zh: 744ed1b795929bba diff --git a/.agents/notes/implemented/process/2026-08-10-event-directed-pr-review-status.i18n.yaml b/.agents/notes/implemented/process/2026-08-10-event-directed-pr-review-status.i18n.yaml index 4d9e3fafc1..6d96599459 100644 --- a/.agents/notes/implemented/process/2026-08-10-event-directed-pr-review-status.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-10-event-directed-pr-review-status.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-event-directed-pr-review-status.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-10-event-directed-pr-review-status.md -2026-08-10-event-directed-pr-review-status.md: 37b8086a081145e8c16ceb29d489fbc38a7f0d43 -2026-08-10-event-directed-pr-review-status.zh.md: cc0dad8554f869d51965c30d2648937c54dc2b75 +/agent-note-event-directed-pr-review-status-commands: + en: 936b85c184551acf + zh: faf32b3209539114 +/agent-note-event-directed-pr-review-status-commands/problem: + en: 3e00a9cb6c0e53ec + zh: 1bd27ceea8a424ce +/agent-note-event-directed-pr-review-status-commands/decision: + en: 3b661de4e6fbf401 + zh: 2fb7f7adb4f846e4 +/agent-note-event-directed-pr-review-status-commands/verification: + en: 46301d11d2f1c8df + zh: daa44a617912c315 +/agent-note-event-directed-pr-review-status-commands/alternatives-considered: + en: 8b5ec4d7fc09a9ab + zh: d72ebe462bb2e9d2 +/agent-note-event-directed-pr-review-status-commands/consequences: + en: e3d39dca9122531b + zh: 262098573f196b93 diff --git a/.agents/notes/implemented/process/2026-08-10-npm-release-sequences.i18n.yaml b/.agents/notes/implemented/process/2026-08-10-npm-release-sequences.i18n.yaml index bd7e432b63..40e0e18b71 100644 --- a/.agents/notes/implemented/process/2026-08-10-npm-release-sequences.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-10-npm-release-sequences.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-10-npm-release-sequences.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-10-npm-release-sequences.md -2026-08-10-npm-release-sequences.md: 6a4f9d1ec23d1fd1c7b74630e106974b680fe41a -2026-08-10-npm-release-sequences.zh.md: d33d48e4458a62951aa957e694dd70eedcf2a6c8 +/agent-note-private-npm-publication-as-three-independent-sequences: + en: 176f873a6b094838 + zh: 9baeba69cbaea9cf +/agent-note-private-npm-publication-as-three-independent-sequences/problem: + en: b94462e04e350571 + zh: 07cef78e4cf7a9ac +/agent-note-private-npm-publication-as-three-independent-sequences/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/three-independent-sequences: + en: 6cd23b2407935500 + zh: 6d50f5f4fb867342 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/versions-land-in-the-repository-from-a-local-command-ci-only-checks-and-uploads: + en: 71d4cda384013bfb + zh: 909d853c18496925 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/vendor-publish-what-changed-and-let-tags-be-the-ledger: + en: 7f578bb18f7f8693 + zh: 49f25210f7c1a61f +/agent-note-private-npm-publication-as-three-independent-sequences/decision/publication-runs-only-on-github-and-the-registry-decides-what-goes-out: + en: 4f399390f58d7a34 + zh: 9df67248acfc61c8 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/workspace-internal-references-use-the-workspace-protocol: + en: 6cff087e7e2d0ac7 + zh: 5d45a3abdd960d9c +/agent-note-private-npm-publication-as-three-independent-sequences/decision/published-dependency-faces-use-an-explicit-policy: + en: 30a64e0e919a27c0 + zh: 19729d7ebee35439 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/an-optional-dependency-is-never-loaded-at-module-scope: + en: d83f6cf38529c5b5 + zh: 4df5659b2154d3b7 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/release-family-objects: + en: e8bb80d936e2cbbd + zh: bc4ae297e98a5446 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/workflow-shape-pack-on-pr-push-publish-from-a-manual-dispatch-workflow: + en: ea0acc6409da4d5c + zh: ac0bd2fe41f4fe67 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/repository-changes-this-carried: + en: c505237cad2c4128 + zh: 55364ba462536680 +/agent-note-private-npm-publication-as-three-independent-sequences/decision/relationship-to-the-earlier-proposal: + en: 298382a27013dcfb + zh: ab89cf392232f9bb +/agent-note-private-npm-publication-as-three-independent-sequences/alternatives-considered: + en: 11877d09e5a84f6e + zh: ea372c779254be93 +/agent-note-private-npm-publication-as-three-independent-sequences/consequences: + en: f961ebb927e30b5c + zh: 019f1628fb1f2c56 diff --git a/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.i18n.yaml b/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.i18n.yaml index b11aba495c..47454c2346 100644 --- a/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-18-in-job-partitioned-coverage.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.md -2026-08-18-in-job-partitioned-coverage.md: 3eafecc02f45b470e13ca426ad005f053a852472 -2026-08-18-in-job-partitioned-coverage.zh.md: 457e352992519b1845b0a592cc9d5a235d29df9d +/agent-note-in-job-partitioned-coverage: + en: eb25ff049a1ecc31 + zh: d7430b14ccea5707 +/agent-note-in-job-partitioned-coverage/problem: + en: ab6dcac4ca2bbfb3 + zh: c754cc8077671b25 +/agent-note-in-job-partitioned-coverage/decision: + en: ae23ea86587c23e8 + zh: b9868c5c76238d9a +/agent-note-in-job-partitioned-coverage/failure-and-output-semantics: + en: c73ddbc65107e34e + zh: dbc7649637f8d1c0 +/agent-note-in-job-partitioned-coverage/verification: + en: 81dcaebd4b96229c + zh: 76b3332b183f6c44 +/agent-note-in-job-partitioned-coverage/alternatives-considered: + en: 82f314bd434b0059 + zh: 7b64e90b74f428e5 +/agent-note-in-job-partitioned-coverage/consequences: + en: 146e997017ee6e47 + zh: cd5e5d2d9b0b47b9 diff --git a/.agents/notes/implemented/process/2026-08-19-remove-knip.i18n.yaml b/.agents/notes/implemented/process/2026-08-19-remove-knip.i18n.yaml index aee415539b..1d76a326bd 100644 --- a/.agents/notes/implemented/process/2026-08-19-remove-knip.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-19-remove-knip.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-19-remove-knip.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-19-remove-knip.md -2026-08-19-remove-knip.md: 5e7e898e05a7e6a6e087b8784f7f49e71cf8fc37 -2026-08-19-remove-knip.zh.md: f6bca8661648efd565dc0bbec86ca2c76738ea85 +/agent-note-remove-knip-from-repository-gates: + en: adba00071ebc35c8 + zh: 44f778106e0b9965 +/agent-note-remove-knip-from-repository-gates/problem: + en: 5b2ece5e6f3775e0 + zh: 4fbc60619afdb7e2 +/agent-note-remove-knip-from-repository-gates/decision: + en: c5d7ae84ed863e29 + zh: 409dca40c2a63940 +/agent-note-remove-knip-from-repository-gates/alternatives-considered: + en: 95363dbc293712f3 + zh: 9cbcb9937081f5f0 +/agent-note-remove-knip-from-repository-gates/consequences: + en: 7466ca9e99d0bb27 + zh: 2ac417bc23865e14 diff --git a/.agents/notes/implemented/process/2026-08-26-ban-ambiguous-origin-label.i18n.yaml b/.agents/notes/implemented/process/2026-08-26-ban-ambiguous-origin-label.i18n.yaml index c1d9874a82..064bf1cbf2 100644 --- a/.agents/notes/implemented/process/2026-08-26-ban-ambiguous-origin-label.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-26-ban-ambiguous-origin-label.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-26-ban-ambiguous-origin-label.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-26-ban-ambiguous-origin-label.md -2026-08-26-ban-ambiguous-origin-label.md: b4c161a8a963e0aebdb3dcf24b8aac028429f349 -2026-08-26-ban-ambiguous-origin-label.zh.md: 2d592f44429d8622b5a42c55c7f92eae6da96800 +/agent-note-ban-an-ambiguous-origin-label: + en: 98843ceb0ee72c06 + zh: e4963bfe0e1b1314 +/agent-note-ban-an-ambiguous-origin-label/problem: + en: e3c5b3a689f7a3cc + zh: 676620dfb5303bed +/agent-note-ban-an-ambiguous-origin-label/decision: + en: bb8507460f159ad1 + zh: 357b5e6065cf389c +/agent-note-ban-an-ambiguous-origin-label/alternatives-considered: + en: 50421d71ea80fef9 + zh: 512625bd4dac0734 +/agent-note-ban-an-ambiguous-origin-label/consequences: + en: 51a4f9c099f993f1 + zh: 655bcf2eda1835ff diff --git a/.agents/notes/implemented/process/2026-08-26-published-dependency-faces.i18n.yaml b/.agents/notes/implemented/process/2026-08-26-published-dependency-faces.i18n.yaml index 02670de7a5..19ca92d47b 100644 --- a/.agents/notes/implemented/process/2026-08-26-published-dependency-faces.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-26-published-dependency-faces.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-26-published-dependency-faces.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-26-published-dependency-faces.md -2026-08-26-published-dependency-faces.md: f188ccc0fc91b2899ccb618d3000a9b3cb94eb59 -2026-08-26-published-dependency-faces.zh.md: d59bb724ceb15f6eae65b509f8437a5dcfa05a23 +/agent-note-published-dependency-faces-and-bounded-peer-relays: + en: 553313933867d0f4 + zh: 11288efed41eea50 +/agent-note-published-dependency-faces-and-bounded-peer-relays/problem: + en: a8357e7e0735ad71 + zh: 5217d99a4ef921c7 +/agent-note-published-dependency-faces-and-bounded-peer-relays/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-published-dependency-faces-and-bounded-peer-relays/decision/package-selection: + en: 5ea13b09ae774437 + zh: ef9dbccada39107a +/agent-note-published-dependency-faces-and-bounded-peer-relays/decision/dependency-sections: + en: b1c3e9a87b8bb1ea + zh: 5cfd8b4db39805b7 +/agent-note-published-dependency-faces-and-bounded-peer-relays/decision/maintainer-workflow: + en: 5983475fa551ca90 + zh: a5519f4817f65e8c +/agent-note-published-dependency-faces-and-bounded-peer-relays/decision/performance-verification: + en: 4ef3cc92457794fd + zh: 16ac73ea9760223b +/agent-note-published-dependency-faces-and-bounded-peer-relays/alternatives-considered: + en: e1c6f1cebc9dc6d2 + zh: 8c4b1959cdd6b3f2 +/agent-note-published-dependency-faces-and-bounded-peer-relays/consequences: + en: 70e475315e0898e2 + zh: bcb54a35da49fc99 diff --git a/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml b/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml index 4fd1361ca9..9413c6b4fd 100644 --- a/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml +++ b/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-28-ci-node-compile-cache-data-disk.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.md -2026-08-28-ci-node-compile-cache-data-disk.md: 3f5f7eb2f00a37b635b63093f60c66688b82316b -2026-08-28-ci-node-compile-cache-data-disk.zh.md: c55a6c73cf98f0dd0b31b50d64e7937ee9e14305 +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp: + en: 52bb1466b8f7f8fe + zh: fa7c282d3d207e53 +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/problem: + en: 3efe58882ca81bf7 + zh: 14f802e97e26f03d +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/decision: + en: cb66e6c4ad73b50b + zh: 43540cec116e342a +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/verification: + en: e23de17356f97224 + zh: b28bcafb4d1a72ad +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/alternatives-considered: + en: 6119e2aff3b6be5a + zh: e01a6c669a9ec6aa +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/alternatives-considered/why-not-disable-the-compile-cache-entirely: + en: cee8de5b45031309 + zh: 6ce10a304e63bdbb +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/alternatives-considered/why-not-add-node-compile-cache-to-the-dsh-residue-sweep: + en: 7e06d9c4df7a9f56 + zh: f3151fe2671fd91e +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/alternatives-considered/why-not-job-level-env-or-gate-step-env-only: + en: 4ba6c9a14bafbc80 + zh: 410149f4a3e930e6 +/agent-note-redirect-the-node-compile-cache-to-the-data-volume-runner-temp/consequences: + en: 083e2665e1550111 + zh: 70560c09ca2b3750 diff --git a/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.i18n.yaml b/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.i18n.yaml index 305f975303..c092807a5a 100644 --- a/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-02-project-local-issue-planning-fields.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.md -2026-09-02-project-local-issue-planning-fields.md: e44fe0f002c40309beaeb4af3ccdd975714777e6 -2026-09-02-project-local-issue-planning-fields.zh.md: 28308d48994dbb144f7e7934a1058cef35942c20 +/agent-note-project-local-issue-planning-fields: + en: 9791d03a5df4c38c + zh: 19cbbf884294402b +/agent-note-project-local-issue-planning-fields/problem: + en: d01d052a9f366f35 + zh: b18600b91aad9a7c +/agent-note-project-local-issue-planning-fields/decision: + en: 21db463121897497 + zh: fd0551038412fd17 +/agent-note-project-local-issue-planning-fields/verification: + en: 7d1ef3eb9aac465d + zh: 68280a4511bce360 +/agent-note-project-local-issue-planning-fields/alternatives-considered: + en: b51a8fbc92bb7b5f + zh: 9316e86ac82c0a1b +/agent-note-project-local-issue-planning-fields/consequences: + en: d3614b91a0a6523a + zh: 773a31194e293014 diff --git a/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml b/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml index 782e6472d4..68c4e68e70 100644 --- a/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-03-semantic-issue-templates-and-policy.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.md -2026-09-03-semantic-issue-templates-and-policy.md: 96b1981b21e901841d88b09d68a0e7e31ca140a2 -2026-09-03-semantic-issue-templates-and-policy.zh.md: 706cd59047fe5121964183bbc27efc8961a493ed +/agent-note-semantic-issue-templates-and-presentation-neutral-policy: + en: e1e183193c798bf4 + zh: db76ac954cd3038f +/agent-note-semantic-issue-templates-and-presentation-neutral-policy/problem: + en: 5da7b92d65316469 + zh: 30bc615947b3a8aa +/agent-note-semantic-issue-templates-and-presentation-neutral-policy/decision: + en: a351c272ef520bb9 + zh: 98db942d18da7565 +/agent-note-semantic-issue-templates-and-presentation-neutral-policy/verification: + en: 90912d4c58b9e35d + zh: 811eaab5bdd54ab4 +/agent-note-semantic-issue-templates-and-presentation-neutral-policy/alternatives-considered: + en: 520ba80ce03e05b4 + zh: 50df33c59c4c837d +/agent-note-semantic-issue-templates-and-presentation-neutral-policy/consequences: + en: c762b95945320c61 + zh: 935f6e7290c06811 diff --git a/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.i18n.yaml b/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.i18n.yaml index 52ccc34d2c..a9cf40b2dc 100644 --- a/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-evidence-driven-performance-skill.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.md -2026-09-06-evidence-driven-performance-skill.md: 221287ef03386f53d61458db7a280142dfde690a -2026-09-06-evidence-driven-performance-skill.zh.md: 90e2c1aa5778d23492bec4f2049ce158433e2363 +/agent-note-evidence-driven-performance-optimization-workflow: + en: 0a63ab9dc4847f40 + zh: f8ba9a608396c47c +/agent-note-evidence-driven-performance-optimization-workflow/problem: + en: 2e0cb63ef966a541 + zh: 1853e223e530708e +/agent-note-evidence-driven-performance-optimization-workflow/decision: + en: bd0e363221108421 + zh: fc83dc1020d53f4e +/agent-note-evidence-driven-performance-optimization-workflow/historical-evidence: + en: 2d913642c87e5a01 + zh: 45fce898640c87e8 +/agent-note-evidence-driven-performance-optimization-workflow/alternatives-considered: + en: 70d016cd8e541933 + zh: 2ebeb9cbeba8129e +/agent-note-evidence-driven-performance-optimization-workflow/consequences: + en: 961c634c37340937 + zh: 9a528567223f7bfa diff --git a/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.i18n.yaml b/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.i18n.yaml index a331c0727e..0397c20321 100644 --- a/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-master-only-platform-ci.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-06-master-only-platform-ci.md -2026-09-06-master-only-platform-ci.md: fcdc413d644c1129635a7f33fe80bdec1b4a0b7a -2026-09-06-master-only-platform-ci.zh.md: 4fb55d5e95f8fe75e6d1efb8b57295b8e8469e8d +/agent-note-master-only-platform-ci: + en: fed101c5775cbbcd + zh: b407efdb4c46cfe2 +/agent-note-master-only-platform-ci/problem: + en: 85cf39297a859208 + zh: c959bf7f94ebc50b +/agent-note-master-only-platform-ci/decision: + en: 98b8ecd3b4cfe5e5 + zh: 2c622950ea7afd42 +/agent-note-master-only-platform-ci/alternatives-considered: + en: 71ce7f8bb8a31323 + zh: 45f97b72eb9c6971 +/agent-note-master-only-platform-ci/consequences: + en: 523bbd6a59c120bf + zh: a9d834b5c32a911f diff --git a/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.i18n.yaml b/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.i18n.yaml index 93aad86a87..7cc692226f 100644 --- a/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-node-compatibility-selfhosted.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.md -2026-09-06-node-compatibility-selfhosted.md: 0ed422711426268efcb3b7cf37b6e19c52feba55 -2026-09-06-node-compatibility-selfhosted.zh.md: 2e58e3e7983b370050484bb8455cfa8554af494e +/agent-note-isolated-node-compatibility-jobs-on-self-hosted-linux: + en: 21c12c8bd0c44122 + zh: b07f0ffc18092f0d +/agent-note-isolated-node-compatibility-jobs-on-self-hosted-linux/problem: + en: 6bcedb8e3f0dce21 + zh: 83e88ed593259292 +/agent-note-isolated-node-compatibility-jobs-on-self-hosted-linux/decision: + en: 14f1348f993b9102 + zh: a94e1b802e6a8c39 +/agent-note-isolated-node-compatibility-jobs-on-self-hosted-linux/alternatives-considered: + en: 93217ca46c2cefb8 + zh: 77a167c69f59111c +/agent-note-isolated-node-compatibility-jobs-on-self-hosted-linux/consequences: + en: 116d255b8d1b846c + zh: 931754a68e4f75c6 +/agent-note-isolated-node-compatibility-jobs-on-self-hosted-linux/verification: + en: d0b1f1431fae737b + zh: 6cf4f4d654a9525d diff --git a/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml b/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml index 3156f6b0bd..6bd758533f 100644 --- a/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-preview-hosted-runner-sizing.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.md -2026-09-06-preview-hosted-runner-sizing.md: 414a17bf8a47f901e61ed271e9b2cf3dee3415b8 -2026-09-06-preview-hosted-runner-sizing.zh.md: 91a67b90b6617fea4dfa77672cb7e78412f462ee +/agent-note-measured-github-hosted-pr-preview-sizing: + en: 987e2592c644030d + zh: 55f306766247e4a4 +/agent-note-measured-github-hosted-pr-preview-sizing/problem: + en: bc382c3ef9c28709 + zh: 27e50735d80696a2 +/agent-note-measured-github-hosted-pr-preview-sizing/decision: + en: 9988e6268f8fc5b8 + zh: e92f3922b49b193d +/agent-note-measured-github-hosted-pr-preview-sizing/decision/measurements: + en: 768cd2ecf9d33c87 + zh: 693ea069a5275736 +/agent-note-measured-github-hosted-pr-preview-sizing/alternatives-considered: + en: 04f845ddb2a86e31 + zh: 993c6f82f5119f66 +/agent-note-measured-github-hosted-pr-preview-sizing/consequences: + en: ed9e8446f4579f5d + zh: c899cdd070e6befa diff --git a/.agents/notes/implemented/process/2026-09-06-python-runtime-windows-hosted.i18n.yaml b/.agents/notes/implemented/process/2026-09-06-python-runtime-windows-hosted.i18n.yaml index 4836b9f8c0..52e1d7fc30 100644 --- a/.agents/notes/implemented/process/2026-09-06-python-runtime-windows-hosted.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-06-python-runtime-windows-hosted.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-python-runtime-windows-hosted.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-06-python-runtime-windows-hosted.md -2026-09-06-python-runtime-windows-hosted.md: 95b762f2247c791536ae0902287ba40e20066258 -2026-09-06-python-runtime-windows-hosted.zh.md: e3f27788b0b620b4a7215b98bdc42b7d6957d5d7 +/agent-note-windows-python-runtime-ci-stays-on-github-hosted-windows: + en: d36b4627e3216a22 + zh: aabdaed56959936a +/agent-note-windows-python-runtime-ci-stays-on-github-hosted-windows/problem: + en: 81d36185575e6d77 + zh: 19003ab154d93394 +/agent-note-windows-python-runtime-ci-stays-on-github-hosted-windows/decision: + en: 1169dd58149ad6b4 + zh: aeebaf9ca8769de6 +/agent-note-windows-python-runtime-ci-stays-on-github-hosted-windows/alternatives-considered: + en: 817e77f011ea35c8 + zh: 2087bc653620a60f +/agent-note-windows-python-runtime-ci-stays-on-github-hosted-windows/consequences: + en: c31f88bace48ff9e + zh: 4698cd5ee3152e87 diff --git a/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml b/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml index a8ce01be68..9e35b7e987 100644 --- a/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-release-rehearsal-selfhosted.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.md -2026-09-06-release-rehearsal-selfhosted.md: 415ae4716e9bc0ae9b165afc807f6f41e8a57e04 -2026-09-06-release-rehearsal-selfhosted.zh.md: a6fa441d01e66cea998d77a9b1be588053ac60a5 +/agent-note-trusted-release-rehearsals-on-persistent-linux-runners: + en: 1bccf6bdafd4cc76 + zh: 28ce63be303697f1 +/agent-note-trusted-release-rehearsals-on-persistent-linux-runners/problem: + en: c458bf4244320194 + zh: fbd5f64cf8875725 +/agent-note-trusted-release-rehearsals-on-persistent-linux-runners/decision: + en: d51d35350d91f19b + zh: 65297576aff64e8a +/agent-note-trusted-release-rehearsals-on-persistent-linux-runners/alternatives-considered: + en: cd04297045b93d7b + zh: 9eacc1d9c6c10726 +/agent-note-trusted-release-rehearsals-on-persistent-linux-runners/consequences: + en: 90c50dda81822e7c + zh: 9c3ff4df4d2d9533 diff --git a/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml b/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml index 435048c1ba..b8002f1c9e 100644 --- a/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-selective-issue-policy-evaluation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.md -2026-09-07-selective-issue-policy-evaluation.md: 5e05bef320980b6069ede9edb0d40446ddd27b0f -2026-09-07-selective-issue-policy-evaluation.zh.md: 37c531e14e485499a3cb76d042d4c17438d413a0 +/agent-note-selective-issue-policy-evaluation: + en: b0f986e68a7b7d74 + zh: cffd2efae38626ef +/agent-note-selective-issue-policy-evaluation/problem: + en: 5af4901a5e9576fb + zh: eb089750b27129b1 +/agent-note-selective-issue-policy-evaluation/decision: + en: 99e6c76f04a4d49b + zh: 2631ff72b4db3bdf +/agent-note-selective-issue-policy-evaluation/alternatives-considered: + en: 89631c2a92ab079a + zh: 37b94f76ec6dc36a +/agent-note-selective-issue-policy-evaluation/consequences: + en: 6013a044827444e5 + zh: 69f767a1d534761a +/agent-note-selective-issue-policy-evaluation/verification: + en: b7fb4ebd009d7fd3 + zh: 6d682a4b7f41a4e0 diff --git a/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.i18n.yaml b/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.i18n.yaml index 7fc8e364f2..70e32ca967 100644 --- a/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-browser-third-party-build-inputs.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.md -2026-09-08-browser-third-party-build-inputs.md: 97e61f3b99955cb402f9e622b2d40e3ee2953d79 -2026-09-08-browser-third-party-build-inputs.zh.md: e23c4e9d4615c7c5bc788beafcf6b94699f211ce +/agent-note-browser-third-party-libraries-as-build-inputs: + en: 907b99b05fcbce0e + zh: 57980cde5b585338 +/agent-note-browser-third-party-libraries-as-build-inputs/problem: + en: 55458dc0cd27341e + zh: ab23b350c17862be +/agent-note-browser-third-party-libraries-as-build-inputs/decision: + en: 2e9ff103342733eb + zh: d8be06fe18aab03a +/agent-note-browser-third-party-libraries-as-build-inputs/alternatives-considered: + en: 0247f31a86099d53 + zh: 445a6d35c03fc468 +/agent-note-browser-third-party-libraries-as-build-inputs/consequences: + en: ee331a2282a6884e + zh: de81b33db3fd6486 diff --git a/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.i18n.yaml b/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.i18n.yaml index a7a1903352..e57f7c6ecc 100644 --- a/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-package-index-link-discovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-08-package-index-link-discovery.md -2026-09-08-package-index-link-discovery.md: be9084f72e468b914bd035ce62e95aa6a89983dc -2026-09-08-package-index-link-discovery.zh.md: 93d6c2163183b4fb6391b731e982002b1938a704 +/agent-note-include-package-indexes-in-markdown-link-discovery: + en: edf2fd5b97c0075a + zh: da6ca05db38ee998 +/agent-note-include-package-indexes-in-markdown-link-discovery/problem: + en: 74a87cccbf602fc4 + zh: 88d1116da4cc35fb +/agent-note-include-package-indexes-in-markdown-link-discovery/decision: + en: 350354f891182cbf + zh: 4607ef9c38ff7a68 +/agent-note-include-package-indexes-in-markdown-link-discovery/alternatives-considered: + en: e12999e567cd2cbd + zh: a502f11b11e86815 +/agent-note-include-package-indexes-in-markdown-link-discovery/consequences: + en: 0bd932bd7feb363b + zh: acce05659887e5e5 diff --git a/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.i18n.yaml b/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.i18n.yaml index bdf8870e5f..f8222bf89a 100644 --- a/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-playwright-video-gif.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-08-playwright-video-gif.md -2026-09-08-playwright-video-gif.md: 44db04814900d4813f1d39521e4e84e7d0b8d1b8 -2026-09-08-playwright-video-gif.zh.md: 4922d739f0ff760afe12fe1a624abc1d1c4cd81f +/agent-note-playwright-video-captures-continuous-browser-demos: + en: fcca6f069dc51b80 + zh: e9d171b6c84f92a7 +/agent-note-playwright-video-captures-continuous-browser-demos/problem: + en: 967fed211899587e + zh: 0062f7ca29211105 +/agent-note-playwright-video-captures-continuous-browser-demos/decision: + en: 5f9e88a564fd6b8a + zh: b78164f92167dada +/agent-note-playwright-video-captures-continuous-browser-demos/alternatives-considered: + en: 221e89bafcb152d4 + zh: b33816c680dc450f +/agent-note-playwright-video-captures-continuous-browser-demos/consequences: + en: e5c9eb6df05801ba + zh: 786cd7775bfceb9e diff --git a/.agents/notes/implemented/process/2026-09-09-blacksmith-failover-leg.i18n.yaml b/.agents/notes/implemented/process/2026-09-09-blacksmith-failover-leg.i18n.yaml index bfd50afb64..be7e6eb89c 100644 --- a/.agents/notes/implemented/process/2026-09-09-blacksmith-failover-leg.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-09-blacksmith-failover-leg.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-blacksmith-failover-leg.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-09-blacksmith-failover-leg.md -2026-09-09-blacksmith-failover-leg.md: 4fb4ed4ccb500887622200e01310230393b3de12 -2026-09-09-blacksmith-failover-leg.zh.md: c2c4ee76a3fcd8c9f16c635ac81bc987d40a04e2 +/agent-note-blacksmith-as-a-failover-leg-for-ci-pools: + en: 018c4f4b64ca6634 + zh: 949f97c78d0f0236 +/agent-note-blacksmith-as-a-failover-leg-for-ci-pools/problem: + en: 43ecfec1601f933e + zh: 3db5365403ffeac5 +/agent-note-blacksmith-as-a-failover-leg-for-ci-pools/decision: + en: fac195b5006faa2d + zh: 7c0ea86638c54e95 +/agent-note-blacksmith-as-a-failover-leg-for-ci-pools/alternatives-considered: + en: a605440fed0ccc2a + zh: 621b35ad2850ca1b +/agent-note-blacksmith-as-a-failover-leg-for-ci-pools/consequences: + en: 09db977b1472b797 + zh: c1b890aaca4e557e diff --git a/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml b/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml index 8817e9561a..3cf9104f6e 100644 --- a/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-blocked-weighted-approvals-remain-pending.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.md -2026-09-09-blocked-weighted-approvals-remain-pending.md: 50ab64dadc0d7ad14366950d24b4136d131f55ec -2026-09-09-blocked-weighted-approvals-remain-pending.zh.md: 58ab10b3acb3bee92c720b622d92170a1a8bcf03 +/agent-note-blocked-weighted-approvals-remain-pending: + en: 6a5da25eb874aece + zh: 654aa967a9222501 +/agent-note-blocked-weighted-approvals-remain-pending/problem: + en: 0afdda30d02b666b + zh: 6624aa9c8c58ea0a +/agent-note-blocked-weighted-approvals-remain-pending/decision: + en: cf7ac63f422b4cfb + zh: 250385e42d546d30 +/agent-note-blocked-weighted-approvals-remain-pending/verification: + en: af674f57088d303a + zh: b9c42f04beec9be5 +/agent-note-blocked-weighted-approvals-remain-pending/alternatives-considered: + en: 13d5f67070bd3396 + zh: c75db3746d31272e +/agent-note-blocked-weighted-approvals-remain-pending/consequences: + en: 284f19608b0d449f + zh: 1d9bd95239ba6ffa diff --git a/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.i18n.yaml b/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.i18n.yaml index 5ef13299ed..5dac131679 100644 --- a/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-cancel-superseded-ci.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.md -2026-09-09-cancel-superseded-ci.md: 8de1f757870a2b18852a224ec2f1cc33d9f6a95e -2026-09-09-cancel-superseded-ci.zh.md: 3ae6ec6ad58b0dfc94e803a33ba92ded4e239485 +/agent-note-cancel-superseded-ci-validation: + en: 78c382bc45c48256 + zh: a6a93a2ef554c61c +/agent-note-cancel-superseded-ci-validation/problem: + en: b436e3c8a7ffe727 + zh: 80b9f77b5cb051de +/agent-note-cancel-superseded-ci-validation/decision: + en: a61d1bc387ed8436 + zh: 3162cdd8096a8a01 +/agent-note-cancel-superseded-ci-validation/alternatives-considered: + en: c7d012d6e43f35ec + zh: 6f3eaf1342319aeb +/agent-note-cancel-superseded-ci-validation/consequences: + en: c226f645a79d0060 + zh: 023071f83b9a126d +/agent-note-cancel-superseded-ci-validation/verification: + en: 015f312772637350 + zh: b703cdab8bd4f0ae diff --git a/.agents/notes/implemented/process/2026-09-09-parallel-macos-notarization.i18n.yaml b/.agents/notes/implemented/process/2026-09-09-parallel-macos-notarization.i18n.yaml index 43d5e94cad..2a23f8fdfb 100644 --- a/.agents/notes/implemented/process/2026-09-09-parallel-macos-notarization.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-09-parallel-macos-notarization.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-parallel-macos-notarization.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-09-parallel-macos-notarization.md -2026-09-09-parallel-macos-notarization.md: 18358444426575e27a21f0f56541e22e37fcdf2c -2026-09-09-parallel-macos-notarization.zh.md: a69d586eff1413debe096656a7572a53f0938e98 +/agent-note-parallel-macos-notarization-from-isolated-app-copies: + en: 610808eedf6e8fdd + zh: 2db10903004a3ebd +/agent-note-parallel-macos-notarization-from-isolated-app-copies/problem: + en: 12c2160b03bac5e0 + zh: 2222e4490505f728 +/agent-note-parallel-macos-notarization-from-isolated-app-copies/decision: + en: 9084607b8e5ecba2 + zh: 00d70d13629a7dd4 +/agent-note-parallel-macos-notarization-from-isolated-app-copies/alternatives-considered: + en: 0ec8e4f3902e17e6 + zh: 3df3091fc01ab600 +/agent-note-parallel-macos-notarization-from-isolated-app-copies/consequences: + en: 81b2cc070cc05152 + zh: 30c684868025f994 diff --git a/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.i18n.yaml b/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.i18n.yaml index 2cadc0e736..521e943a63 100644 --- a/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-approval-review-workflow-identity.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.md -2026-09-10-approval-review-workflow-identity.md: 77164134e826acdf647db352cf73df2480055505 -2026-09-10-approval-review-workflow-identity.zh.md: 736851d6f3612080fd67ed6b72e1b8b667948d73 +/agent-note-identify-approval-review-workflows-by-file-path: + en: 8a332b9d080f3d62 + zh: 29f1de05d7867a77 +/agent-note-identify-approval-review-workflows-by-file-path/problem: + en: 6b927a7545ac2c48 + zh: 0902f03aa478d5ee +/agent-note-identify-approval-review-workflows-by-file-path/decision: + en: 82802438f1b8d16c + zh: ffe8c1fcbcc39abe +/agent-note-identify-approval-review-workflows-by-file-path/alternatives-considered: + en: f8fdd869a03ac5ff + zh: c355eb36e9cba350 +/agent-note-identify-approval-review-workflows-by-file-path/consequences: + en: 9f31e023a04a7849 + zh: 66831c450af4c88f diff --git a/.agents/notes/implemented/process/2026-09-11-persistence-type-history.i18n.yaml b/.agents/notes/implemented/process/2026-09-11-persistence-type-history.i18n.yaml index 969ab3fd9e..126601f6e3 100644 --- a/.agents/notes/implemented/process/2026-09-11-persistence-type-history.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-11-persistence-type-history.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-persistence-type-history.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-11-persistence-type-history.md -2026-09-11-persistence-type-history.md: 87e87041dd44c4f671409a75c1b374312736342a -2026-09-11-persistence-type-history.zh.md: cfe5c4f7bd1998d4329dc422607cfe33273d1a5a +/agent-note-in-tree-persistence-type-history: + en: 27496d50584a4feb + zh: 1b241d60286a92f3 +/agent-note-in-tree-persistence-type-history/problem: + en: c8e926bfc65d7195 + zh: e0e007960b68fe80 +/agent-note-in-tree-persistence-type-history/decision: + en: 0d6257a57763ad48 + zh: 6ce3cb7228bba27a +/agent-note-in-tree-persistence-type-history/decision/finalized-checkpoints: + en: 7dd42139850de3bf + zh: 0783bff2f0084f71 +/agent-note-in-tree-persistence-type-history/alternatives-considered: + en: 5cdac1b3f15f89f6 + zh: 36cda3b92d31c916 +/agent-note-in-tree-persistence-type-history/consequences: + en: 672c8cb59d291dc2 + zh: cbec90fbca92320a diff --git a/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.i18n.yaml b/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.i18n.yaml index bbc5adb976..9272a63484 100644 --- a/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-production-blame-approval-weight.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.md -2026-09-11-production-blame-approval-weight.md: d9a223c2f332cc110ddd8f6a3f592febe0072987 -2026-09-11-production-blame-approval-weight.zh.md: f4dfc9d4fc5cefcccadb2785f58893ec92043ba7 +/agent-note-weight-approvals-by-changed-production-line-ownership: + en: 40516dee2915ffc3 + zh: 3d58358bc7110df2 +/agent-note-weight-approvals-by-changed-production-line-ownership/problem: + en: 2dbd821b8d65b054 + zh: 9bef2993db51a00d +/agent-note-weight-approvals-by-changed-production-line-ownership/decision: + en: 7dc225f91538ace1 + zh: a22d05ffd8d32b6d +/agent-note-weight-approvals-by-changed-production-line-ownership/alternatives-considered: + en: 5e8af03e3ff6018a + zh: 6b518c8eee8c5172 +/agent-note-weight-approvals-by-changed-production-line-ownership/consequences: + en: 08495483b77771be + zh: a798d4af0eda55fe +/agent-note-weight-approvals-by-changed-production-line-ownership/verification: + en: cb604625373372b9 + zh: f9056d20ab612537 diff --git a/.agents/notes/implemented/process/2026-09-12-default-product-experimental-isolation.i18n.yaml b/.agents/notes/implemented/process/2026-09-12-default-product-experimental-isolation.i18n.yaml index 30118b2276..cf4ae928c6 100644 --- a/.agents/notes/implemented/process/2026-09-12-default-product-experimental-isolation.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-12-default-product-experimental-isolation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-default-product-experimental-isolation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-12-default-product-experimental-isolation.md -2026-09-12-default-product-experimental-isolation.md: 5c2485e4f737b822088a680b0006f395a5479fa9 -2026-09-12-default-product-experimental-isolation.zh.md: 3a412a491ab8356a4e29d706fed55226dc0f6038 +/agent-note-keep-experimental-packages-outside-the-default-product: + en: 2d1751612781064c + zh: 8be0f776c4a37e11 +/agent-note-keep-experimental-packages-outside-the-default-product/problem: + en: 6938ed9a5ca419bb + zh: 6d2cd6bb912b9118 +/agent-note-keep-experimental-packages-outside-the-default-product/decision: + en: d471671fd6c06d03 + zh: 205586983a29eba4 +/agent-note-keep-experimental-packages-outside-the-default-product/alternatives-considered: + en: b8615d8d31f313d7 + zh: 556e3b96a90f6897 +/agent-note-keep-experimental-packages-outside-the-default-product/consequences: + en: 5ffd5e60d782a0bd + zh: 300665f42d70f049 diff --git a/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.i18n.yaml b/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.i18n.yaml index 9ec2270d40..0d6fed02a4 100644 --- a/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-experimental-publication-denylist.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.md -2026-09-12-experimental-publication-denylist.md: f19faa1f391628574fd47e3064130e00c26c831a -2026-09-12-experimental-publication-denylist.zh.md: 92a1c6d5cd0f23615f89d4779f2b9a977b1a8438 +/agent-note-publish-experimental-packages-with-explicit-private-exceptions: + en: 20aed7271477745f + zh: 81b50a3ba89b7935 +/agent-note-publish-experimental-packages-with-explicit-private-exceptions/problem: + en: c267b50c3004619f + zh: 91830d04d2972d46 +/agent-note-publish-experimental-packages-with-explicit-private-exceptions/decision: + en: 3cf968834876a655 + zh: 7f7bad8b931a5ed2 +/agent-note-publish-experimental-packages-with-explicit-private-exceptions/alternatives-considered: + en: 61369830fb32e695 + zh: 445eb44e1ae3457a +/agent-note-publish-experimental-packages-with-explicit-private-exceptions/consequences: + en: 23f4d725196f1c2d + zh: ebd9455778d8a89f diff --git a/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.i18n.yaml b/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.i18n.yaml index ee236e6c0b..34379e6e6c 100644 --- a/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-maintained-repository-references.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-12-maintained-repository-references.md -2026-09-12-maintained-repository-references.md: b2bc750100e1aaf2ff63ffc773bbd54997fdf355 -2026-09-12-maintained-repository-references.zh.md: 99216e8105af9d159f6f371c9e31fec6d75a0e75 +/agent-note-maintained-repository-references: + en: 10750a69061b5dd0 + zh: ab4be61612ead1da +/agent-note-maintained-repository-references/problem: + en: 36ca11f2ef3d8b4e + zh: 6e6ca6ae00fab2f7 +/agent-note-maintained-repository-references/decision: + en: ec87568d74d5dc5f + zh: bc34159aeafa9fcd +/agent-note-maintained-repository-references/alternatives-considered: + en: de1c15bc0d404c41 + zh: a32a80be126d3d71 +/agent-note-maintained-repository-references/consequences: + en: 17e87405d1ab8efa + zh: d4dbc337733d9a2d diff --git a/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.i18n.yaml b/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.i18n.yaml index d3452d5d10..3568158aca 100644 --- a/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-publish-all-experimental-packages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.md -2026-09-12-publish-all-experimental-packages.md: 8bef877297d096159fcce60e6b479e12461357f2 -2026-09-12-publish-all-experimental-packages.zh.md: 6163e6b4ac11c46dac3897361585d2fcc29ef746 +/agent-note-publish-every-current-experimental-package: + en: e08e7bc92478407d + zh: 45501f51a5f619ec +/agent-note-publish-every-current-experimental-package/problem: + en: 7db3c27e4b5c2d09 + zh: 0a770941ec41a50a +/agent-note-publish-every-current-experimental-package/decision: + en: cc702e2596b0bd73 + zh: 3815da9b56ae653b +/agent-note-publish-every-current-experimental-package/alternatives-considered: + en: e59c9f8484629e20 + zh: d6f64683af3d0460 +/agent-note-publish-every-current-experimental-package/consequences: + en: 2721ffbcf5341d3b + zh: be0b430b9d91d7c2 diff --git a/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.i18n.yaml b/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.i18n.yaml index 640bea7c7b..14bf4d7016 100644 --- a/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-pr-approval-delegation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-15-pr-approval-delegation.md -2026-09-15-pr-approval-delegation.md: 4dcf0e8a8d23d66da11381586e376fdf39d23635 -2026-09-15-pr-approval-delegation.zh.md: bf21724d672aaf534bfe94540b76878177eeb57e +/agent-note-pr-scoped-approval-delegation: + en: 3fa5881b5ca14a79 + zh: 99dbde5fae7cdd6a +/agent-note-pr-scoped-approval-delegation/problem: + en: 5fe2f3b3cb7ce046 + zh: ed27d4efc995b8b5 +/agent-note-pr-scoped-approval-delegation/decision: + en: 41c5c90b82d323c6 + zh: 55d5ed09d88bb821 +/agent-note-pr-scoped-approval-delegation/alternatives-considered: + en: a6006217cb29613a + zh: 83968328096f1d91 +/agent-note-pr-scoped-approval-delegation/consequences: + en: e761c382b4431212 + zh: 43bb475b646c85eb diff --git a/.agents/notes/implemented/process/2026-09-15-shipped-optional-bundles.i18n.yaml b/.agents/notes/implemented/process/2026-09-15-shipped-optional-bundles.i18n.yaml index 2c5a3f8554..dbe4c5aaab 100644 --- a/.agents/notes/implemented/process/2026-09-15-shipped-optional-bundles.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-15-shipped-optional-bundles.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-shipped-optional-bundles.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-15-shipped-optional-bundles.md -2026-09-15-shipped-optional-bundles.md: c9f560f5c07ec6fb18030b77a0d1f53bd27dc045 -2026-09-15-shipped-optional-bundles.zh.md: e91b6580e29cd7ae142c9c61ed6aac7e5e1476eb +/agent-note-ship-optional-bundles-with-the-installation: + en: a35c5daebeaa4b1e + zh: a74f44bb23f0571c +/agent-note-ship-optional-bundles-with-the-installation/problem: + en: dc43ba84345e1405 + zh: dbc03572ab7710d2 +/agent-note-ship-optional-bundles-with-the-installation/decision: + en: 84777110aa68ecf8 + zh: b109275cfddb73b0 +/agent-note-ship-optional-bundles-with-the-installation/alternatives-considered: + en: 05c19f616009bee8 + zh: af318640481351f0 +/agent-note-ship-optional-bundles-with-the-installation/consequences: + en: 4a9d3a049a605150 + zh: 67b50bbc9f7f4bb0 diff --git a/.agents/notes/implemented/process/2026-09-16-author-approval-credit.i18n.yaml b/.agents/notes/implemented/process/2026-09-16-author-approval-credit.i18n.yaml index b3f403e7b5..cfc6317172 100644 --- a/.agents/notes/implemented/process/2026-09-16-author-approval-credit.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-16-author-approval-credit.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-author-approval-credit.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-16-author-approval-credit.md -2026-09-16-author-approval-credit.md: ab7aba88801271c22a0f054d5b3888726b94e97a -2026-09-16-author-approval-credit.zh.md: 316a09ea5d82f78915a9550fde7f29bd55761e44 +/agent-note-author-approval-credit: + en: 58068bcf9dbf6d30 + zh: ad51b869c8f3e791 +/agent-note-author-approval-credit/problem: + en: 13def594e495779d + zh: d5ceaa0d156ba043 +/agent-note-author-approval-credit/decision: + en: 5670829131121899 + zh: 7df21c9b22c4978d +/agent-note-author-approval-credit/alternatives-considered: + en: 8ab9e11e49044029 + zh: c7930455d747ceb5 +/agent-note-author-approval-credit/consequences: + en: 70ad19025f7fe6d4 + zh: c73aa8be25724790 +/agent-note-author-approval-credit/verification: + en: 0617e23e217b0a67 + zh: 82576f05a59d8db7 diff --git a/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.i18n.yaml b/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.i18n.yaml index 1293c824d8..f25c473733 100644 --- a/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-desktop-release-version-derivation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.md -2026-09-16-desktop-release-version-derivation.md: 54a7b9d52c63268f15209ad0a84bcd8da035dcee -2026-09-16-desktop-release-version-derivation.zh.md: dddf4b773217965380c4487803971311b57e0863 +/agent-note-derive-desktop-test-versions-from-the-complete-dsh-version: + en: b4afaf99cba87722 + zh: bd6c3b76efebf932 +/agent-note-derive-desktop-test-versions-from-the-complete-dsh-version/problem: + en: 307dae6b4bdf80de + zh: 72c9045a2e42036f +/agent-note-derive-desktop-test-versions-from-the-complete-dsh-version/decision: + en: 1a3ef4e14511dc1f + zh: 1db763a1323d9c87 +/agent-note-derive-desktop-test-versions-from-the-complete-dsh-version/alternatives-considered: + en: cf86267e11a4e534 + zh: daa4fb017b2725a5 +/agent-note-derive-desktop-test-versions-from-the-complete-dsh-version/consequences: + en: ce62d7f641c0cd45 + zh: 08b05c154f38d816 diff --git a/.agents/notes/implemented/process/2026-09-17-persistence-schema-review.i18n.yaml b/.agents/notes/implemented/process/2026-09-17-persistence-schema-review.i18n.yaml index 45223d0f08..564858250c 100644 --- a/.agents/notes/implemented/process/2026-09-17-persistence-schema-review.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-17-persistence-schema-review.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-persistence-schema-review.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-17-persistence-schema-review.md -2026-09-17-persistence-schema-review.md: 47308a5584b368c99ee849b6d550538ba1856a09 -2026-09-17-persistence-schema-review.zh.md: eaa3c17991b23612753634297993dd3b951259ab +/agent-note-persistence-schema-policy-and-review: + en: 354306d8acf2141b + zh: 01b9235a77121284 +/agent-note-persistence-schema-policy-and-review/problem: + en: 4dfc8768cd580993 + zh: ad78f2ff4c22b390 +/agent-note-persistence-schema-policy-and-review/decision: + en: ab2a881b58bb6e05 + zh: c6e7b7b9854a0f94 +/agent-note-persistence-schema-policy-and-review/alternatives-considered: + en: 4a73283af97bcd4b + zh: 952cf965d7615737 +/agent-note-persistence-schema-policy-and-review/consequences: + en: eeadd60710998de9 + zh: 5c48f512f1d53d2c diff --git a/.agents/notes/implemented/process/2026-09-17-windows-runtime-signature-cache.i18n.yaml b/.agents/notes/implemented/process/2026-09-17-windows-runtime-signature-cache.i18n.yaml index 0ace5db1f2..4bc132731b 100644 --- a/.agents/notes/implemented/process/2026-09-17-windows-runtime-signature-cache.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-17-windows-runtime-signature-cache.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-windows-runtime-signature-cache.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-17-windows-runtime-signature-cache.md -2026-09-17-windows-runtime-signature-cache.md: e9229e47929664984a92499e54f87bb2166bde9d -2026-09-17-windows-runtime-signature-cache.zh.md: 53b6182170d807843345fa90f962ee18807f2cf2 +/agent-note-windows-runtime-signature-cache: + en: 36e012be8a24f6d3 + zh: 6caabddc72c89c95 +/agent-note-windows-runtime-signature-cache/problem: + en: ee8762f64fbefe3f + zh: 8781828a4b19d862 +/agent-note-windows-runtime-signature-cache/decision: + en: 4c114a4e0c81a753 + zh: 3e05c0fcc9fe637b +/agent-note-windows-runtime-signature-cache/alternatives-considered: + en: f83b7439bb610dd4 + zh: 938ae28e9f269406 +/agent-note-windows-runtime-signature-cache/consequences: + en: 382899114280f46a + zh: c12090b052308163 +/agent-note-windows-runtime-signature-cache/risks: + en: 12b4df69b80bee3d + zh: 9cce7f8a26918f5d diff --git a/.agents/notes/implemented/process/2026-09-17-windows-signature-completion.i18n.yaml b/.agents/notes/implemented/process/2026-09-17-windows-signature-completion.i18n.yaml index c8a392f733..92b7cb3e69 100644 --- a/.agents/notes/implemented/process/2026-09-17-windows-signature-completion.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-17-windows-signature-completion.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-windows-signature-completion.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-17-windows-signature-completion.md -2026-09-17-windows-signature-completion.md: e9c81531633a41c87ea10c9e4af2999923aa4470 -2026-09-17-windows-signature-completion.zh.md: 3142749db309b638676c171d4b1da8bd34729fe4 +/agent-note-separate-windows-hardware-signing-from-timestamp-completion: + en: 1e28eec77c3e64c0 + zh: 59e5a5cd5b377949 +/agent-note-separate-windows-hardware-signing-from-timestamp-completion/problem: + en: 7fbde4e99b78b965 + zh: 9137ec46c0645b25 +/agent-note-separate-windows-hardware-signing-from-timestamp-completion/decision: + en: deb7b785a51ef40f + zh: 751965c28a9c303f +/agent-note-separate-windows-hardware-signing-from-timestamp-completion/alternatives-considered: + en: ee16de94898ac51e + zh: c6f1de465d8bb261 +/agent-note-separate-windows-hardware-signing-from-timestamp-completion/consequences: + en: 9e228d85054ce3e8 + zh: f5d6af6411bc3b13 diff --git a/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml b/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml index be42dfe317..e36a2aa1c1 100644 --- a/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-evidence-led-simplification-surveys.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.md -2026-09-19-evidence-led-simplification-surveys.md: c217f80239690ee2f7310ca8e97956ec06fb75c7 -2026-09-19-evidence-led-simplification-surveys.zh.md: 1b1a11731967c87ab54aa9eba82253f90bb2abde +/agent-note-evidence-led-simplification-surveys: + en: f0941223baf75c96 + zh: b3cc733f7f90509a +/agent-note-evidence-led-simplification-surveys/problem: + en: 528a0c462d456493 + zh: a2af4901a8f498a7 +/agent-note-evidence-led-simplification-surveys/decision: + en: 865cfb210f13b188 + zh: 777d8155216d98c6 +/agent-note-evidence-led-simplification-surveys/historical-evidence: + en: 53eea2f1d7560461 + zh: 3c55432d9cd3ebe3 +/agent-note-evidence-led-simplification-surveys/bounded-survey-evidence: + en: 3637438d2ed7f606 + zh: d78b39ae6b67a442 +/agent-note-evidence-led-simplification-surveys/alternatives-considered: + en: 9e0039e0ff82ba1b + zh: fa4b0a52bf3dcbdd +/agent-note-evidence-led-simplification-surveys/consequences: + en: 395acde9597898c5 + zh: 45ee94d13427862a diff --git a/.agents/notes/implemented/process/2026-09-19-no-unknown-casts.i18n.yaml b/.agents/notes/implemented/process/2026-09-19-no-unknown-casts.i18n.yaml index 29002959bc..d6f0972f92 100644 --- a/.agents/notes/implemented/process/2026-09-19-no-unknown-casts.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-19-no-unknown-casts.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-no-unknown-casts.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-19-no-unknown-casts.md -2026-09-19-no-unknown-casts.md: 2f90422d0980fddc2569951ef7f8dba34b488ce4 -2026-09-19-no-unknown-casts.zh.md: 3b66236e586a60a61cdcc1f93b1c0c14ce27eb15 +/agent-note-prohibit-new-assertions-to-unknown: + en: d05b7f323025e1b9 + zh: fa84da1b6dbbd40a +/agent-note-prohibit-new-assertions-to-unknown/problem: + en: de8fd99f06ce9378 + zh: 627e67ac20b16e56 +/agent-note-prohibit-new-assertions-to-unknown/decision: + en: 426df6b19b654021 + zh: f4d8c678f9760139 +/agent-note-prohibit-new-assertions-to-unknown/alternatives-considered: + en: 1080f8f62795b113 + zh: bee2b837e7ae0de4 +/agent-note-prohibit-new-assertions-to-unknown/consequences: + en: ab7350f789864067 + zh: 9867a9baaa1c6227 diff --git a/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.i18n.yaml b/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.i18n.yaml index a5fb8f7ea7..32be76bd93 100644 --- a/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-21-desktop-build-version-as-input.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.md -2026-09-21-desktop-build-version-as-input.md: 8653c1ed580ac360e0c2f5145781303f15fc29b2 -2026-09-21-desktop-build-version-as-input.zh.md: 0a995ab5740a73de00b2a417d07640b3c07e4690 +/agent-note-pass-the-desktop-build-version-as-an-argument-instead-of-rewriting-manifests: + en: 300e3ca5e8255a56 + zh: 59f948ca2440d33b +/agent-note-pass-the-desktop-build-version-as-an-argument-instead-of-rewriting-manifests/problem: + en: 9f373ce939732eb2 + zh: a021c3f432d10fbe +/agent-note-pass-the-desktop-build-version-as-an-argument-instead-of-rewriting-manifests/decision: + en: be9fa7f7e85134f1 + zh: 51796ebbdfffc063 +/agent-note-pass-the-desktop-build-version-as-an-argument-instead-of-rewriting-manifests/alternatives-considered: + en: b5025ea37e2908bc + zh: 6f2ebcaa138f1c62 +/agent-note-pass-the-desktop-build-version-as-an-argument-instead-of-rewriting-manifests/consequences: + en: 686a5979332c0964 + zh: 89cff9e1e04e0325 diff --git a/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.i18n.yaml b/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.i18n.yaml index 528c760888..05753024a2 100644 --- a/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.i18n.yaml +++ b/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-22-workspace-release-ranges.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-22-workspace-release-ranges.md -2026-09-22-workspace-release-ranges.md: 57c74df3eaeac16ba40f55cdc4069762ae8fe2ef -2026-09-22-workspace-release-ranges.zh.md: f39ede4fb1941956af12d0391f5b88bd244db6f8 +/agent-note-workspace-dependency-release-ranges: + en: 8b7bf2179034aa08 + zh: a7a8b5dc60849d88 +/agent-note-workspace-dependency-release-ranges/problem: + en: ea71dd3eea6e1c60 + zh: 2a8ea98e8f6a3fbf +/agent-note-workspace-dependency-release-ranges/decision: + en: c7e9c7eb5b3e2ebf + zh: b74ef023fc894e36 +/agent-note-workspace-dependency-release-ranges/alternatives-considered: + en: b6aa87296ee61fcf + zh: f516320e589ce7a3 +/agent-note-workspace-dependency-release-ranges/consequences: + en: 49eac7a43407bbd9 + zh: 8a39766e8df596b8 diff --git a/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.i18n.yaml b/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.i18n.yaml new file mode 100644 index 0000000000..f05c998dde --- /dev/null +++ b/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.i18n.yaml @@ -0,0 +1,25 @@ +# Bilingual-pair consistency record for 2026-09-23-section-keyed-translation-pairing-records.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.md +/agent-note-section-keyed-translation-pairing-records: + en: fe3ee02933f0e25b + zh: 3518b378aebef215 +/agent-note-section-keyed-translation-pairing-records/problem: + en: 1662619f5cc6743f + zh: e98e9b39e82a2294 +/agent-note-section-keyed-translation-pairing-records/decision: + en: 333d08badeeef8a6 + zh: 2ccb1fe95b3457ff +/agent-note-section-keyed-translation-pairing-records/alternatives-considered: + en: 3e17a6963d74e3de + zh: cc086da130648d3c +/agent-note-section-keyed-translation-pairing-records/consequences: + en: 7a1f77c69ef79755 + zh: 7f12bd25f556ba9c +/agent-note-section-keyed-translation-pairing-records/measured-effect: + en: 97af2f09c25338f1 + zh: 2ec62a414fa61254 +/agent-note-section-keyed-translation-pairing-records/related: + en: 8f208df4c003e06e + zh: c1660f5b55dea743 diff --git a/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.md b/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.md new file mode 100644 index 0000000000..e01eac4bbc --- /dev/null +++ b/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.md @@ -0,0 +1,56 @@ +# Agent Note: Section-keyed translation pairing records + +Status: implemented + +English | [中文](2026-09-23-section-keyed-translation-pairing-records.zh.md) + +## Problem + +A consistency record held the full blob hash of each language file. Any edit to a pair changed both lines, so two branches that edited different parts of the same pair always conflicted on the record, even when Git merged both Markdown files cleanly. Generated references such as `docs/config-catalog.md`, `docs/module-graph.md`, and `docs/event-producer-consumer.md` were affected most: most PRs that touch packages, config, or events regenerate one of them, and each regeneration also required a hand-copied Chinese update and a new record. A worktree-local merge driver composed such records, but GitHub's mergeability check never runs it, so PRs still showed a conflict until someone merged the base locally and pushed. + +## Decision + +`foo.i18n.yaml` holds one entry per heading section that contains hashed content. `verify-translation-pairing` computes the entries; `scripts/translation-pairing-record.ts` owns the format. + +- Both sides are split at every heading. Section `i` of the English file corresponds to section `i` of the Chinese file; different heading counts are a structure error and cannot be recorded. +- The key is the English heading-slug path, such as `/plugin-config-catalog/loadable-plugins-with-no-config`. Text before the first heading is `/`, and a repeated path gets `~2`, `~3`, and so on. Keys are counted over every section, including sections without entries, so a key depends only on headings. +- Each side's hash covers the section's top-level blocks after paired-document link localization, except fenced code blocks and generated regions. Those two kinds of content are exactly what the pairing gate already requires to be identical on both sides; any other content is hashed even when it happens to be identical. The entry holds a 16-hex SHA-256 prefix of each side's hashed blocks. A section with no hashed blocks has no entry. +- Each entry spans three lines: an unchanged key line followed by the `en:` and `zh:` hash lines. The key line separates neighboring entries, so Git's text merge treats changes to adjacent entries as separate hunks. + +A record conflict therefore requires both branches to change hashed content in the same section. + +Generators put their generated data in generated regions and write each region into both pages, so regeneration changes neither the record nor the Chinese prose. `gen-config-catalog` writes both languages and the record, with one region per package and one per package table; labels inside a region are the code identifiers `inject`, `refs`, `source`, and `class`, which the translated introduction explains. `gen-module-graph` keeps its table in a region with identifier column headers. `gen-doc-graphs` splices the event matrix tables into the authored Chinese page, and `gen-cordis-catalog` already did the same for subsystem regions. + +`gen-translation-brief` recovers the last-confirmed text from the newest commit of the pair whose contents produce the committed record. Records no longer point to Git blobs, and `--write` no longer stores snapshot objects or refs. + +Archived Agent Notes keep their sealed whole-file records; `verify-archived-agent-notes` owns that format. + +## Alternatives considered + +**Keep whole-file hashes and the merge driver.** The driver resolved the conflict only in local worktrees where it was installed. GitHub still reported the PR as conflicted, raw merges without the installed runtime stopped, and the driver, resolver, installer integration, and their tests were about 1,400 lines of code to maintain. + +**One entry per top-level block instead of per heading section.** Fewer false conflicts inside long sections, but the record would grow to roughly the block count of the document. Positional block keys would also renumber on every insertion and create conflicts of their own. + +**Positional section keys (`h2[3]`).** Inserting a section renumbers every later key and changes every later record line, which recreates the conflicts this format removes. Heading-slug keys change only when that heading's English text changes. + +**Resolve on GitHub through Actions or an app.** Hosted automation would need credentials, concurrency control, and permission to rewrite PR branches. A record that Git's default text merge composes needs none of these. + +**Hash whole sections, including code blocks and regions.** Every regenerated row or code block would still change a record line, so generated references would keep conflicting on their largest sections. + +**Leave out any block that is byte-identical on both sides.** It also keeps generated rows out of the record, but it decides implicitly what needs no translation: an English paragraph copied untranslated into the Chinese file would be left out too, and a later edit to it would no longer change the record. Code blocks and generated regions are declared shared content that existing gates check. + +## Consequences + +Edits to different sections, and regenerated regions and code blocks, merge without a local tool, including on GitHub. Replaying the merge commits reachable from `master` between 2026-08-20 and 2026-09-23 shows the effect on real history: see [Measured effect](#measured-effect). + +A same-section conflict is resolved by resolving the Markdown and re-running `verify-translation-pairing --write `; no command automates it. Chinese readers of generated regions see code identifiers and English table headers instead of translated labels. Recovering last-confirmed text for the brief requires the confirmed pair to be committed. + +## Measured effect + +The replay covered 2016 two-parent merge commits reachable from `master` between 2026-08-20 and 2026-09-23, most of them PR branches merging the base forward. For every active pair whose record both parents changed, it ran Git's default text merge on the old record, on the section-keyed record computed from the same commit contents, and on the two Markdown files. It counts a record whose headings did not align at some commit as a conflict. The old format conflicted in 2950 pair merges across 850 merge commits; the section-keyed format conflicts in 1586 pair merges across 595 merge commits, a 46% reduction per pair. The Markdown files themselves conflicted in 926 pair merges across 338 merge commits, which no record format can avoid. Merge commits whose only conflicts were records fell from 512 to 257 (50%). + +The replay uses each commit's content as it was, before the generators wrapped their data in regions, so `docs/module-graph.md` (277 conflicts), `docs/event-producer-consumer.md` (220), and `docs/config-catalog.md` (110) still conflict on generated data in it. With that data in regions, their records change only when their prose changes; excluding their generated rows from the same replay left 0 and 14 conflicts for the first two. Substituting that for the three pages projects about 990 pair conflicts, about 66% below the old format; this projection is an estimate, not a replayed measurement. + +## Related + +The [bilingual pairing gate Agent Note](2026-07-02-bilingual-docs-and-pairing-gate.md) owns the three-file pair and its equal-authority rule; this note replaces its whole-file hash record. The [archived automatic pairing merges Agent Note](../../archived/process/2026-08-08-automatic-translation-pairing-merges.md) records the retired merge driver. diff --git a/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.zh.md b/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.zh.md new file mode 100644 index 0000000000..e4746a5092 --- /dev/null +++ b/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.zh.md @@ -0,0 +1,56 @@ +# Agent Note: 按分节记录翻译配对 + +Status: implemented + +[English](2026-09-23-section-keyed-translation-pairing-records.md) | 中文 + +## Problem + +一致性记录过去保存每个语言文件完整的 blob hash。对配对的任何修改都会改动这两行,因此两个分支即使修改同一配对的不同部分、Git 也能干净合并两个 Markdown 文件,记录仍然必然冲突。受影响最大的是 `docs/config-catalog.md`、`docs/module-graph.md` 和 `docs/event-producer-consumer.md` 等生成参考文档:大多数涉及包、配置或事件的 PR 都会重新生成其中之一,而每次重新生成还要求手工复制中文更新并写入新记录。worktree 本地的合并驱动可以组合这类记录,但 GitHub 的可合并性检查从不运行它,因此在有人于本地合并基线分支并推送之前,PR 仍显示冲突。 + +## Decision + +`foo.i18n.yaml` 为每个含有计入 hash 内容的标题分节保存一个条目。`verify-translation-pairing` 计算这些条目;`scripts/translation-pairing-record.ts` 负责该格式。 + +- 两侧都在每个标题处切分。英文文件的第 `i` 个分节对应中文文件的第 `i` 个分节;标题数量不同属于结构错误,无法记录。 +- 键是英文标题 slug 组成的路径,例如 `/plugin-config-catalog/loadable-plugins-with-no-config`。第一个标题之前的文本为 `/`,重复路径依次加 `~2`、`~3` 等后缀。键的计数覆盖每个分节(包括没有条目的分节),因此键只取决于标题。 +- 每侧的 hash 覆盖该分节在配对文档链接本地化后的顶层块,只排除围栏代码块和生成区域。这两类内容正是配对门禁已要求两侧一致的内容;其他内容即使碰巧相同也计入 hash。条目保存每侧计入 hash 的块的 SHA-256 前 16 位十六进制值。没有计入 hash 的块的分节没有条目。 +- 每个条目占三行:一行不变的键,后跟 `en:` 与 `zh:` 两行 hash。键行把相邻条目隔开,因此 Git 文本合并把对相邻条目的修改视为不同的 hunk。 + +因此,只有两个分支都修改了同一分节中计入 hash 的内容时,记录才会冲突。 + +生成器把生成数据放在生成区域中,并把每个区域写入两种语言的页面,因此重新生成既不改变记录,也不改变中文说明文字。`gen-config-catalog` 写出两种语言和记录,每个包一个区域,每个包表格一个区域;区域内的标签是代码标识符 `inject`、`refs`、`source` 和 `class`,由已翻译的介绍段落解释。`gen-module-graph` 把表格放在区域中,列头使用标识符。`gen-doc-graphs` 把事件矩阵的表格写入人工撰写的中文页面,`gen-cordis-catalog` 已经以同样方式处理子系统区域。 + +`gen-translation-brief` 从配对的提交中找到内容能生成已提交记录的最新提交,并从中还原上次确认的文本。记录不再指向 Git blob,`--write` 也不再存储快照对象或 ref。 + +已归档的 Agent Note 保留其已封存的整文件记录;该格式由 `verify-archived-agent-notes` 负责。 + +## Alternatives considered + +**保留整文件 hash 和合并驱动。** 驱动只在已安装它的本地 worktree 中解决冲突。GitHub 仍把 PR 报告为冲突,未安装运行时的原始合并会停止,而驱动、解决命令、安装脚本集成及其测试共约 1,400 行需要维护的代码。 + +**按顶层块而非按标题分节记录条目。** 长分节内的误报冲突更少,但记录会增长到约等于文档的块数。按位置编号的块键还会在每次插入时重新编号,自身又制造冲突。 + +**按位置编号的分节键(`h2[3]`)。** 插入一个分节会让之后的每个键重新编号,并改动之后的每一行记录,重新造成这种格式要消除的冲突。标题 slug 键只在该标题的英文文本改变时才改变。 + +**通过 Actions 或 GitHub App 在 GitHub 上解决。** 托管自动化需要凭证、并发控制以及改写 PR 分支的权限。Git 默认文本合并即可组合的记录不需要这些。 + +**对整个分节(包括代码块和区域)取 hash。** 每次重新生成的行或代码块仍会改动一行记录,因此生成参考文档最大的分节仍会冲突。 + +**排除两侧逐字节相同的任何块。** 这同样能让生成的行不进入记录,但它隐式地判定哪些内容不需要翻译:原样复制到中文文件而未翻译的英文段落也会被排除,之后对它的修改也不再改变记录。代码块和生成区域是现有门禁已检查的、明确声明的共享内容。 + +## Consequences + +对不同分节的修改,以及重新生成的区域和代码块,无需本地工具即可合并,在 GitHub 上也是如此。重放 2026-08-20 至 2026-09-23 期间可从 `master` 到达的合并提交可以看到它在真实历史上的效果:见[实测效果](#measured-effect)。 + +同一分节的冲突需要先解决 Markdown 冲突,再重新运行 `verify-translation-pairing --write `;没有命令会自动完成。生成区域的中文读者看到的是代码标识符和英文表头,而不是译文标签。为 brief 还原上次确认的文本,要求已确认的配对已经提交。 + +## Measured effect + +重放覆盖了 2026-08-20 至 2026-09-23 期间可从 `master` 到达的 2016 个双父合并提交,其中大多数是 PR 分支向前合并基线分支。对两个父提交都修改了其记录的每个活跃配对,它分别对旧记录、根据同一提交内容计算出的按分节记录,以及两个 Markdown 文件运行 Git 默认文本合并。某个提交中标题未对齐而无法计算的记录计为冲突。旧格式在 850 个合并提交中的 2950 次配对合并里冲突;按分节格式在 595 个合并提交中的 1586 次配对合并里冲突,按配对计减少 46%。Markdown 文件本身在 338 个合并提交中的 926 次配对合并里冲突,这部分任何记录格式都无法避免。只有记录冲突的合并提交从 512 个降到 257 个(减少 50%)。 + +重放使用各提交当时的内容,那时生成器还未把数据放进区域,因此 `docs/module-graph.md`(277 次)、`docs/event-producer-consumer.md`(220 次)和 `docs/config-catalog.md`(110 次)仍因其中的生成数据冲突。数据放进区域后,它们的记录只在说明文字改变时才变;在同一重放中排除其生成行后,前两者分别剩 0 次和 14 次冲突。用这一结果替换这三个页面后,预计约 990 次配对冲突,比旧格式少约 66%;这是估算,不是重放实测。 + +## Related + +[双语配对门禁 Agent Note](2026-07-02-bilingual-docs-and-pairing-gate.zh.md) 负责三文件配对及其两种语言同权的规则;本文取代其中的整文件 hash 记录。[已归档的自动配对合并 Agent Note](../../archived/process/2026-08-08-automatic-translation-pairing-merges.md) 记录已退役的合并驱动。 diff --git a/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml b/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml index a7506a8eeb..be5d21a505 100644 --- a/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-20-collapse-trace-only-session-events.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.md -2026-06-20-collapse-trace-only-session-events.md: f83d93a899d59eb3ebb3f22f36e32aa7865bf902 -2026-06-20-collapse-trace-only-session-events.zh.md: e53544aed0d3b88c7eb85cd1e9a4f12af7686256 +/agent-note-fold-trace-only-session-facts-into-load-bearing-events: + en: e7ada88fff270fa2 + zh: 501f2d2ab2122718 +/agent-note-fold-trace-only-session-facts-into-load-bearing-events/problem: + en: 909f9925807d0e0a + zh: eba8fb3aba92caa8 +/agent-note-fold-trace-only-session-facts-into-load-bearing-events/decision: + en: d07841a539028e7a + zh: 5ebaef62105a0da8 +/agent-note-fold-trace-only-session-facts-into-load-bearing-events/alternatives-considered: + en: f99cc05ab13c85c3 + zh: 93c92b3894cee7b1 +/agent-note-fold-trace-only-session-facts-into-load-bearing-events/verification: + en: 67e74bfc51b0a1ed + zh: dfdc9364ec831b9f +/agent-note-fold-trace-only-session-facts-into-load-bearing-events/consequences: + en: 1c0e59938ce8408f + zh: 8c891d273da28f27 +/agent-note-fold-trace-only-session-facts-into-load-bearing-events/implementation-note: + en: 40e0c79252a438bc + zh: 27332c259b4bdf95 diff --git a/.agents/notes/implemented/simplification/2026-06-20-unify-agent-and-session-id.i18n.yaml b/.agents/notes/implemented/simplification/2026-06-20-unify-agent-and-session-id.i18n.yaml index 6b7315b167..3e2757185e 100644 --- a/.agents/notes/implemented/simplification/2026-06-20-unify-agent-and-session-id.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-06-20-unify-agent-and-session-id.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-20-unify-agent-and-session-id.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-06-20-unify-agent-and-session-id.md -2026-06-20-unify-agent-and-session-id.md: 4084912f95aa2354e815a1b4c05cd7f90bd3c315 -2026-06-20-unify-agent-and-session-id.zh.md: 3adba379f12a46e6f151e6777e0a63f4b16e9cd6 +/agent-note-unify-the-agent-id-and-the-session-id: + en: a3b5f1ad744e332a + zh: f56748eb6f1c1e8f +/agent-note-unify-the-agent-id-and-the-session-id/problem: + en: 13081f69bc061561 + zh: 6062223de9302202 +/agent-note-unify-the-agent-id-and-the-session-id/decision: + en: 58fe3d6c1fbe5aff + zh: 564332602546955e +/agent-note-unify-the-agent-id-and-the-session-id/alternatives-considered: + en: 5dba32bffc8ba6f4 + zh: 4e0d6f084e94eaa3 +/agent-note-unify-the-agent-id-and-the-session-id/verification: + en: bb4f738c649a2d9f + zh: dd46752393643444 +/agent-note-unify-the-agent-id-and-the-session-id/consequences: + en: 38daf65318d286fb + zh: 620933bffd049c42 diff --git a/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml b/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml index f45df2a68a..413cf22c2d 100644 --- a/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-26-fsspec-style-fs-seam.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.md -2026-06-26-fsspec-style-fs-seam.md: 138d6d4d74d162ab2149350a76fc72dc31c1818e -2026-06-26-fsspec-style-fs-seam.zh.md: bc7a3756dbf08673cfa63693a68aba1eb73da323 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin: + en: 181df186598c42fc + zh: 07b7687434105955 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/problem: + en: 4069760b095aa1b6 + zh: ea8baf0050362519 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/decision: + en: 6f6dc20965bb9948 + zh: 5a858a0359f96a98 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/provider-contract: + en: a04b6ceab91aa265 + zh: 5fae55161f754f4d +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/policy-contract: + en: bd54f18f4665b1ec + zh: eee54b7890c9d8be +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/tool-contract: + en: b517106d3e0ac7ef + zh: 2b128d7af26ebed2 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/concurrency-boundary: + en: 6a459d121a49988c + zh: 048de517a0f952b6 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/supersedes: + en: 780789585ce58330 + zh: 7b4b8d171dfdefae +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/verification: + en: ee6e0f4922f991af + zh: 3ce55e7b7d0fd431 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/later-extension: + en: b56210bf2c8f8dec + zh: 27decb39624c0ef7 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/alternatives-considered: + en: 3d169e07a912cbab + zh: d8a550835cfe7801 +/agent-note-split-the-filesystem-seam-provider-text-mutations-plus-the-dsh-fs-observation-policy-plugin/consequences: + en: 70264e0d9422b871 + zh: ae93add503e8a9bc diff --git a/.agents/notes/implemented/simplification/2026-07-17-one-send-one-turn.i18n.yaml b/.agents/notes/implemented/simplification/2026-07-17-one-send-one-turn.i18n.yaml index d4d6d30f86..cea714ade6 100644 --- a/.agents/notes/implemented/simplification/2026-07-17-one-send-one-turn.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-07-17-one-send-one-turn.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-17-one-send-one-turn.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-07-17-one-send-one-turn.md -2026-07-17-one-send-one-turn.md: 71ea5d23c303a2e5de472ceabf9868364d916ab9 -2026-07-17-one-send-one-turn.zh.md: 8478f3fb35698087873b39773f8997ec33832f2a +/agent-note-remove-implicit-batching-from-ordinary-sends: + en: 5376ddae6e8cf5b9 + zh: 1dae892f25da755e +/agent-note-remove-implicit-batching-from-ordinary-sends/problem: + en: ed05e7ef01abfafc + zh: 40293ad57c00f902 +/agent-note-remove-implicit-batching-from-ordinary-sends/decision: + en: 354fbb4e6a776538 + zh: c78879212400bf0f +/agent-note-remove-implicit-batching-from-ordinary-sends/alternatives-considered: + en: f944e18c49b30b4c + zh: cfcc0b18ce94f37c +/agent-note-remove-implicit-batching-from-ordinary-sends/verification: + en: 9f75f226ac06ba1f + zh: 2ae17eda85a56324 +/agent-note-remove-implicit-batching-from-ordinary-sends/consequences: + en: afb9764a5345a188 + zh: 10ee27c54cbdbbdb diff --git a/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml b/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml index dbf98656ed..bcce3bc92b 100644 --- a/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-20-unwrap-injected-content-envelopes.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.md -2026-07-20-unwrap-injected-content-envelopes.md: 7d14ada7cc1b88071ec4f07870afcfff6211a883 -2026-07-20-unwrap-injected-content-envelopes.zh.md: 813adfb818cac35da6e8c3b279b2e795fa99ad1a +/agent-note-project-injected-content-verbatim-dropping-the-xml-envelopes: + en: 488b566c13d0cd05 + zh: e9b9a14dc644a313 +/agent-note-project-injected-content-verbatim-dropping-the-xml-envelopes/problem: + en: 0005839a50aa093b + zh: bfb21448bbec1ac9 +/agent-note-project-injected-content-verbatim-dropping-the-xml-envelopes/decision: + en: ed1a833070d10b97 + zh: b7ce57a2b927f064 +/agent-note-project-injected-content-verbatim-dropping-the-xml-envelopes/alternatives-considered: + en: 93dca58966e5d55e + zh: 9fe7fd528d0114a2 +/agent-note-project-injected-content-verbatim-dropping-the-xml-envelopes/consequences: + en: 2b369a5b2ee9435b + zh: f72957abff1d2327 +/agent-note-project-injected-content-verbatim-dropping-the-xml-envelopes/deferred: + en: a772793aea7ee7ee + zh: a57b31af4422406d diff --git a/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml b/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml index f11b9827e8..ad1c43c6dd 100644 --- a/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-22-plan-specific-collaboration-state.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.md -2026-07-22-plan-specific-collaboration-state.md: 20648b8d6cee3e3c049aeee3022bd322d657ba1c -2026-07-22-plan-specific-collaboration-state.zh.md: 2142839d5a834abba7aac042c8b1fee7a56c56b1 +/agent-note-plan-specific-collaboration-state: + en: b1e94e354a36ef2b + zh: bbc98d4b9a837a5a +/agent-note-plan-specific-collaboration-state/problem: + en: e79a03a0ec1ebc34 + zh: 94adee6ef4f1bcc2 +/agent-note-plan-specific-collaboration-state/decision: + en: 1255fd4c4852ea9c + zh: 27e431da895a9a69 +/agent-note-plan-specific-collaboration-state/decision/boundary-and-model-contract: + en: f9d67f4f91e14f9d + zh: 3284e2432e8a8466 +/agent-note-plan-specific-collaboration-state/decision/reviewed-exit: + en: 283fec44700c41e5 + zh: 99b8634a1dff791c +/agent-note-plan-specific-collaboration-state/deleted-api: + en: 7da48b6397bad4d0 + zh: cc0af0e26a81c7e0 +/agent-note-plan-specific-collaboration-state/alternatives-considered: + en: 4098e049cd6d28d8 + zh: 4ab332ad6af53ccf +/agent-note-plan-specific-collaboration-state/verification: + en: 41179b6ab02b3f90 + zh: 47f5a602496281cd +/agent-note-plan-specific-collaboration-state/consequences: + en: a71537da7d3921e2 + zh: a2ab69676bfe985d diff --git a/.agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.i18n.yaml b/.agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.i18n.yaml index 9640e9d10e..0be5f93a6e 100644 --- a/.agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-23-acp-automation-only-protocol.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-07-23-acp-automation-only-protocol.md -2026-07-23-acp-automation-only-protocol.md: d3d6a7abb6f347b04fdbfcea2940e8df0432b806 -2026-07-23-acp-automation-only-protocol.zh.md: d332e3f7c4798f391fe34b1e50bd63276f0121b8 +/agent-note-acp-as-an-automation-only-protocol: + en: e8a5a82b0137b656 + zh: 8b371b4add7c17b4 +/agent-note-acp-as-an-automation-only-protocol/problem: + en: 5123f99030ae618e + zh: fa62dc7b9a4b9fef +/agent-note-acp-as-an-automation-only-protocol/decision: + en: d9a2404790fe7cf0 + zh: 5fbd7f65d5ed1c4f +/agent-note-acp-as-an-automation-only-protocol/snapshot-boundary: + en: 4f015bfadd7027e2 + zh: 7d68f4c3b9a875d5 +/agent-note-acp-as-an-automation-only-protocol/alternatives-considered: + en: 13192a25709b5d95 + zh: 6cadde33a58510b5 +/agent-note-acp-as-an-automation-only-protocol/consequences: + en: bce44fd4a6d9f755 + zh: 351e80b7c02f6ce7 diff --git a/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml b/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml index d768a5513b..0e8ec12298 100644 --- a/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-24-agent-loop-observable-state-machine.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.md -2026-07-24-agent-loop-observable-state-machine.md: f250d645ca0a69c0fcad0078292de1d6531db19d -2026-07-24-agent-loop-observable-state-machine.zh.md: c77e5ad8f664851917bc578f1fb39760a80d2593 +/agent-note-collapse-agent-loop-events-around-the-observable-state-machine: + en: b7998bdbf46a06b1 + zh: ea7b4e8ef8e3cef5 +/agent-note-collapse-agent-loop-events-around-the-observable-state-machine/problem: + en: c55232633eaacf5a + zh: a71c538c61234c42 +/agent-note-collapse-agent-loop-events-around-the-observable-state-machine/decision: + en: 75a1c677da39192e + zh: 81a07f55fce3cbc0 +/agent-note-collapse-agent-loop-events-around-the-observable-state-machine/alternatives-considered: + en: 0d61d49e9f5964c2 + zh: f5e8802c7fe67839 +/agent-note-collapse-agent-loop-events-around-the-observable-state-machine/consequences: + en: 675d4ae63174031d + zh: 2649109d067352e2 +/agent-note-collapse-agent-loop-events-around-the-observable-state-machine/related: + en: f1610942ca31fdb8 + zh: 04eb3d4ce8e641af diff --git a/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.i18n.yaml b/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.i18n.yaml index bccb2cfc58..204f3b5cba 100644 --- a/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-27-request-error-retry-action.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.md -2026-07-27-request-error-retry-action.md: 9853d7d0439093afd3e7a611e360a6b32517ca4c -2026-07-27-request-error-retry-action.zh.md: e0c4749b7ed6bddcbc44f3ab512df542f33831bd +/agent-note-request-error-retry-action: + en: 672e3acc184e72f7 + zh: 10334d48de7dcc0e +/agent-note-request-error-retry-action/problem: + en: 8b9476349def23b6 + zh: e3b034bae896e24b +/agent-note-request-error-retry-action/decision: + en: 3937a99236b23d80 + zh: ec5e9cb21744e3ae +/agent-note-request-error-retry-action/alternatives-considered: + en: 8f50ac6497dfd03e + zh: 4f1d07901132a184 +/agent-note-request-error-retry-action/consequences: + en: 3e60793a09964f5a + zh: b28626761a229d85 diff --git a/.agents/notes/implemented/simplification/2026-07-28-remove-synthetic-log-only-turns.i18n.yaml b/.agents/notes/implemented/simplification/2026-07-28-remove-synthetic-log-only-turns.i18n.yaml index a8f49b1780..036542d074 100644 --- a/.agents/notes/implemented/simplification/2026-07-28-remove-synthetic-log-only-turns.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-07-28-remove-synthetic-log-only-turns.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-28-remove-synthetic-log-only-turns.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-07-28-remove-synthetic-log-only-turns.md -2026-07-28-remove-synthetic-log-only-turns.md: 073ac0888054c907087dd0c5f2d01b03a5e87455 -2026-07-28-remove-synthetic-log-only-turns.zh.md: 67b24c7423ee37c40361cb937fdad42243362dfd +/agent-note-remove-synthetic-turns-for-log-only-events: + en: 558a3b8b47acfec2 + zh: 9e6cc6443e468745 +/agent-note-remove-synthetic-turns-for-log-only-events/problem: + en: 33413b092d535f4f + zh: 02f79f372227c104 +/agent-note-remove-synthetic-turns-for-log-only-events/decision: + en: a49da9273f224a87 + zh: 870ffea9aacca6c7 +/agent-note-remove-synthetic-turns-for-log-only-events/alternatives-considered: + en: fbee860bf43530a7 + zh: 276647ba5402d6a8 +/agent-note-remove-synthetic-turns-for-log-only-events/verification: + en: bb7b19f80c4fbed6 + zh: ef06defe5b745e38 +/agent-note-remove-synthetic-turns-for-log-only-events/consequences: + en: 0c636b744dfa4ca9 + zh: 05f409a4fd962015 diff --git a/.agents/notes/implemented/simplification/2026-08-09-explicit-schedule-time-zone.i18n.yaml b/.agents/notes/implemented/simplification/2026-08-09-explicit-schedule-time-zone.i18n.yaml index 11c416587f..acb0275dcc 100644 --- a/.agents/notes/implemented/simplification/2026-08-09-explicit-schedule-time-zone.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-08-09-explicit-schedule-time-zone.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-09-explicit-schedule-time-zone.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-08-09-explicit-schedule-time-zone.md -2026-08-09-explicit-schedule-time-zone.md: 2f23394e65d37f9eb714c2e55b0556cdf0bc967e -2026-08-09-explicit-schedule-time-zone.zh.md: aafa5d56853339e51b9a4265a32fca1a24e7b1dd +/agent-note-explicit-schedule-time-zone-boundary: + en: 475b5512c7155605 + zh: e564e8c4f718f0c0 +/agent-note-explicit-schedule-time-zone-boundary/problem: + en: 4a7e52f6a16dec96 + zh: d558db30801355d9 +/agent-note-explicit-schedule-time-zone-boundary/decision: + en: 6f233286c95b5294 + zh: 5a1f4ba6f5ccbd36 +/agent-note-explicit-schedule-time-zone-boundary/alternatives-considered: + en: 982fe0b8d24a66ce + zh: e6dceee1ce776d21 +/agent-note-explicit-schedule-time-zone-boundary/verification: + en: 56dcb44f09be3713 + zh: 59a6814a662458ad +/agent-note-explicit-schedule-time-zone-boundary/consequences: + en: d9358667c58662e4 + zh: d536bb0fccd9f0a9 diff --git a/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml b/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml index 57d6fb3b1f..8ccac77c7e 100644 --- a/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-28-omit-unneeded-invariant-companions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.md -2026-08-28-omit-unneeded-invariant-companions.md: 82d421677cb2f2a425c92e203766527aac7ce860 -2026-08-28-omit-unneeded-invariant-companions.zh.md: d0fda9154675d038c1f304609313654fc4e51f23 +/agent-note-omit-invariant-companions-without-independent-observations: + en: 1aaf29f8d757fcc8 + zh: 76d99dd71bfabbaa +/agent-note-omit-invariant-companions-without-independent-observations/problem: + en: 53d9687bdef70d91 + zh: 61d225b1cd374c28 +/agent-note-omit-invariant-companions-without-independent-observations/decision: + en: a15c7c13f167e5ac + zh: 63bcc2ef60c2f344 +/agent-note-omit-invariant-companions-without-independent-observations/decision/independent-observations-justify-publication: + en: ee3e2ff2f0565d94 + zh: 232ddf075bf3b353 +/agent-note-omit-invariant-companions-without-independent-observations/decision/omission-is-explicit-in-the-package-readme: + en: 465c523c29fd7836 + zh: 9967d7e5b17f1adf +/agent-note-omit-invariant-companions-without-independent-observations/decision/audit-result: + en: b19c08cd1f7df630 + zh: 30e872df9ee3ff0a +/agent-note-omit-invariant-companions-without-independent-observations/alternatives-considered: + en: 5908a05a2aeb3f82 + zh: 9a01748e8d8b86f4 +/agent-note-omit-invariant-companions-without-independent-observations/consequences: + en: c648b67008e676f1 + zh: c89400eae3fef89c diff --git a/.agents/notes/implemented/simplification/2026-08-30-jsonl-only-session-persistence.i18n.yaml b/.agents/notes/implemented/simplification/2026-08-30-jsonl-only-session-persistence.i18n.yaml index 5b414b1e68..31ce312f8a 100644 --- a/.agents/notes/implemented/simplification/2026-08-30-jsonl-only-session-persistence.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-08-30-jsonl-only-session-persistence.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-30-jsonl-only-session-persistence.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-08-30-jsonl-only-session-persistence.md -2026-08-30-jsonl-only-session-persistence.md: eeb89d8ecc06b082c5346d61e85b40d317e31c89 -2026-08-30-jsonl-only-session-persistence.zh.md: 210e66fa75db5959f198235c31022792f5f35ea8 +/agent-note-jsonl-only-first-party-session-persistence: + en: 4060d3d6df88fea3 + zh: f6ed66cd7e39c465 +/agent-note-jsonl-only-first-party-session-persistence/problem: + en: fd4ad3e29b080f22 + zh: 6b3e1e88cea3e3ce +/agent-note-jsonl-only-first-party-session-persistence/decision: + en: 8c80ac91f1c31247 + zh: 560796b1b338f60f +/agent-note-jsonl-only-first-party-session-persistence/alternatives-considered: + en: d09a6b404ee37a4c + zh: a846a6ee2d3851c3 +/agent-note-jsonl-only-first-party-session-persistence/consequences: + en: 952ee4c54a2f9851 + zh: 1e7f908464b86a4a diff --git a/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml index cd6b1146aa..2f39ebf65f 100644 --- a/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-03-minimal-profiles-persistent-shell-only.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md -2026-09-03-minimal-profiles-persistent-shell-only.md: 2bc4ef7ada0767d96c0ac448e19e13e8e06a945c -2026-09-03-minimal-profiles-persistent-shell-only.zh.md: d54e5734ac04825e2d28f59d9104a01b5caf9fb7 +/agent-note-minimal-profiles-expose-only-a-persistent-shell: + en: d48e78dc2040921c + zh: 70122e09d8c78e77 +/agent-note-minimal-profiles-expose-only-a-persistent-shell/problem: + en: a5d116f8ba3ed48b + zh: d60d307237a69573 +/agent-note-minimal-profiles-expose-only-a-persistent-shell/decision: + en: 95a1c2d9322ed9da + zh: 04bc770915863950 +/agent-note-minimal-profiles-expose-only-a-persistent-shell/alternatives-considered: + en: 55fc282c31b7d4e8 + zh: 6daa72fb5527fcca +/agent-note-minimal-profiles-expose-only-a-persistent-shell/consequences: + en: 4f0e22319608c3be + zh: a6393182b9452c4a diff --git a/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.i18n.yaml index 3b4fcb4fa3..e70adc677c 100644 --- a/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-05-base-default-file-editor.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.md -2026-09-05-base-default-file-editor.md: e1e15718962322ba8c79107fda31446448b87056 -2026-09-05-base-default-file-editor.zh.md: d43df3313ecaeff8b2123208620779df2048b818 +/agent-note-shared-base-default-file-editor-selection: + en: 2adaf509a18a68eb + zh: 3103eec286980735 +/agent-note-shared-base-default-file-editor-selection/problem: + en: b9cf9c91689aeca7 + zh: 4fce9354bb6c2af0 +/agent-note-shared-base-default-file-editor-selection/decision: + en: 8aa4e6ecc02abdb8 + zh: 9925a29181c53e81 +/agent-note-shared-base-default-file-editor-selection/alternatives-considered: + en: 172ed2cdc1d47e20 + zh: e12bbb0576244f43 +/agent-note-shared-base-default-file-editor-selection/consequences: + en: 886dab29e1e6580f + zh: 49a7b2ceafac0c48 +/agent-note-shared-base-default-file-editor-selection/verification: + en: 7e8cd8a29f33aff3 + zh: ee6c24c9adf54998 diff --git a/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml index cb5eb44cc5..6c68b294d5 100644 --- a/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-agent-request-freeze-evidence.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.md -2026-09-06-agent-request-freeze-evidence.md: 6603a728c3dd2acc87902169bb07a67bde0be2a4 -2026-09-06-agent-request-freeze-evidence.zh.md: a5ba15ac139d647755f9c039847acbb642d214d3 +/agent-note-reuse-only-loop-proven-message-freezes: + en: 7ec7e2c8c1eb46bb + zh: 93a619878774a795 +/agent-note-reuse-only-loop-proven-message-freezes/problem: + en: af6aa6181efb2163 + zh: 3f1630947294db0a +/agent-note-reuse-only-loop-proven-message-freezes/decision: + en: 64e5058366d82142 + zh: 073f4e1856c58294 +/agent-note-reuse-only-loop-proven-message-freezes/measurement-evidence: + en: 731e00bb5059b1f3 + zh: 118464dc6e640431 +/agent-note-reuse-only-loop-proven-message-freezes/measurement-evidence/standard-hosted-ci-calibration: + en: 22ad93c82afc0572 + zh: 86e43487e7791148 +/agent-note-reuse-only-loop-proven-message-freezes/alternatives-considered: + en: 8a00552d7797826c + zh: 765a6b84eb663bab +/agent-note-reuse-only-loop-proven-message-freezes/consequences: + en: 5947b38f7722d4db + zh: 147b5ea3d681ebd7 diff --git a/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.i18n.yaml index e5ab7e62d9..7943e40a05 100644 --- a/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-file-content-scan.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-07-file-content-scan.md -2026-09-07-file-content-scan.md: 1ec46e7d685394f5165624f1e7b68622ba9f89d3 -2026-09-07-file-content-scan.zh.md: b4ebd835ca8adaf3a7b7fa09150cd5a2bec9f401 +/agent-note-scan-file-content-without-per-array-callbacks: + en: a814034fce2407dc + zh: 7de9ec55cbbb30ab +/agent-note-scan-file-content-without-per-array-callbacks/problem: + en: cb13a0053453cf45 + zh: ce40afb7fa03f9ed +/agent-note-scan-file-content-without-per-array-callbacks/decision: + en: e3d83658869a24f7 + zh: 44dd61458a47df6c +/agent-note-scan-file-content-without-per-array-callbacks/measurement-evidence: + en: ad23fa4ee386f3cf + zh: 41e54e28d26b3d02 +/agent-note-scan-file-content-without-per-array-callbacks/alternatives-considered: + en: 0128940c217dd77c + zh: 9394e713dac9675d +/agent-note-scan-file-content-without-per-array-callbacks/consequences: + en: dace71e8857e57b1 + zh: 0ee88fdaa4e067ee diff --git a/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml index d589324465..ebd9b4005d 100644 --- a/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-web-subagent-catalog-projections.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.md -2026-09-08-web-subagent-catalog-projections.md: 766d33e581bcac53844b0836f23cda615858fc27 -2026-09-08-web-subagent-catalog-projections.zh.md: ef14db2530ed10a7aa34408c5a6fada6f0a28858 +/agent-note-web-subagent-catalogs-consume-shared-projections: + en: 90a80df3b19785a2 + zh: 8e29073af6c61213 +/agent-note-web-subagent-catalogs-consume-shared-projections/problem: + en: 21600a979400fc8a + zh: 59ba11ed5210986e +/agent-note-web-subagent-catalogs-consume-shared-projections/decision: + en: de9d755497c49716 + zh: 872a15b960e01618 +/agent-note-web-subagent-catalogs-consume-shared-projections/alternatives-considered: + en: 2a1d32d867c38abd + zh: 1f473782ade94fa5 +/agent-note-web-subagent-catalogs-consume-shared-projections/consequences: + en: 44d73213900d4e43 + zh: 2beec2c2634320e2 diff --git a/.agents/notes/implemented/simplification/2026-09-09-nontransactional-loader.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-09-nontransactional-loader.i18n.yaml index 258af20542..5a3be08ed1 100644 --- a/.agents/notes/implemented/simplification/2026-09-09-nontransactional-loader.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-09-nontransactional-loader.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-nontransactional-loader.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-09-nontransactional-loader.md -2026-09-09-nontransactional-loader.md: 98b0b1ce0c1250e651c5280c9b918948b17cd963 -2026-09-09-nontransactional-loader.zh.md: 77ae1ce91aa0d20940f0c63f2a2d42a0f3c07edb +/agent-note-keep-loader-mutations-non-transactional: + en: 199b544883ab8736 + zh: 4b2ad7d22985d52f +/agent-note-keep-loader-mutations-non-transactional/problem: + en: d4ab65a39cf4fd7c + zh: 62144be9b4fd7956 +/agent-note-keep-loader-mutations-non-transactional/decision: + en: 9b661159de63d421 + zh: 15697f468a90edb9 +/agent-note-keep-loader-mutations-non-transactional/alternatives-considered: + en: 72b871064c7ae315 + zh: a09e5168f8124c4c +/agent-note-keep-loader-mutations-non-transactional/consequences: + en: 2b1eece19252ad80 + zh: 8c9f5faf201521e0 diff --git a/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.i18n.yaml index 6895faecfb..282d674791 100644 --- a/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-derived-workspace-recency.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.md -2026-09-10-derived-workspace-recency.md: b967e332f234d6d120bb82c444e4b05818b85103 -2026-09-10-derived-workspace-recency.zh.md: 87c2bb9f2648baa613ded32cda5b8673a77c5f56 +/agent-note-derive-workspace-recency-independently-of-manual-order: + en: 96d0de6bdc9dcac1 + zh: a50ab8a60f58a24d +/agent-note-derive-workspace-recency-independently-of-manual-order/problem: + en: 796dc4d186169b89 + zh: 058b6a8438e46238 +/agent-note-derive-workspace-recency-independently-of-manual-order/decision: + en: c598d4991271fbf4 + zh: 6454e56191922501 +/agent-note-derive-workspace-recency-independently-of-manual-order/alternatives-considered: + en: 0e74f1c4f176107a + zh: 66a66eaa811c8b11 +/agent-note-derive-workspace-recency-independently-of-manual-order/consequences: + en: f4658d8f0f3ff8d3 + zh: 68c3c8c87b9c4e31 +/agent-note-derive-workspace-recency-independently-of-manual-order/testing: + en: 82b15f31cd5b5315 + zh: 5f14bfe0d0e8ef0c diff --git a/.agents/notes/implemented/simplification/2026-09-11-remove-e2b-providers.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-11-remove-e2b-providers.i18n.yaml index 5d922e128e..fd8eb2f048 100644 --- a/.agents/notes/implemented/simplification/2026-09-11-remove-e2b-providers.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-11-remove-e2b-providers.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-11-remove-e2b-providers.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-11-remove-e2b-providers.md -2026-09-11-remove-e2b-providers.md: 6ff8f51e94875b9496da2c77b1e160357a15add9 -2026-09-11-remove-e2b-providers.zh.md: ebc592fb564d1ed1a0e981dc9b1bd3806de54414 +/agent-note-remove-the-e2b-execution-providers: + en: 0f876c637fad20a9 + zh: a7616ada505f0bc1 +/agent-note-remove-the-e2b-execution-providers/problem: + en: 92edfc6f0da7a874 + zh: 21487929a5631087 +/agent-note-remove-the-e2b-execution-providers/decision: + en: 924d9953c601a131 + zh: 6bb14feef8f4238a +/agent-note-remove-the-e2b-execution-providers/alternatives-considered: + en: dc8a267887d4a65c + zh: 806f4a6c844b6284 +/agent-note-remove-the-e2b-execution-providers/consequences: + en: ec119616577fb094 + zh: 4dafe3fd08e11b79 +/agent-note-remove-the-e2b-execution-providers/reintroduction-conditions: + en: ddc5f44430a6b6d5 + zh: 372f28000c98cbd6 +/agent-note-remove-the-e2b-execution-providers/verification: + en: d4f3b559dd32d80a + zh: c4ba5b64178faf81 diff --git a/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml index 9d38b3b53b..2f8e4c8416 100644 --- a/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-ralph-off-in-shipped-defaults.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.md -2026-09-12-ralph-off-in-shipped-defaults.md: fbd7ea72e02302f45029d2b7677d9a4d15ee2e63 -2026-09-12-ralph-off-in-shipped-defaults.zh.md: 377f8656236b55dc8de79a78abe742b595e3617c +/agent-note-ship-ralph-off-in-the-default-compositions: + en: 59fe1293d618be67 + zh: 0da7f1b4447f10f1 +/agent-note-ship-ralph-off-in-the-default-compositions/problem: + en: c8c152617cca4d5d + zh: 1846b119989b9e5b +/agent-note-ship-ralph-off-in-the-default-compositions/decision: + en: 7d95a71842e74d38 + zh: fc0d360ff3acc8b5 +/agent-note-ship-ralph-off-in-the-default-compositions/alternatives-considered: + en: 4e6ed0566a2de3a8 + zh: c1e7ba6dd4047fa0 +/agent-note-ship-ralph-off-in-the-default-compositions/consequences: + en: 427242f0a8df0c66 + zh: ca3dd1bd4cd54605 +/agent-note-ship-ralph-off-in-the-default-compositions/verification: + en: 2511c9dd0da7ab60 + zh: 6d4e801f33f3d81b diff --git a/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml index 75a1eea7ed..5029c4401d 100644 --- a/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-host-only-remote-input-validation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.md -2026-09-15-host-only-remote-input-validation.md: 5c256fb5f5b78b646c645a44b77718fa40a62399 -2026-09-15-host-only-remote-input-validation.zh.md: 92a3f2415c6206a0513d8338bbb8d0844bf5d43d +/agent-note-validate-remote-inputs-only-on-the-host: + en: 4434bfb455727454 + zh: 776fc3b42ce339e6 +/agent-note-validate-remote-inputs-only-on-the-host/problem: + en: 6cddd9c31c5bf1e5 + zh: f2730b6448f7fc26 +/agent-note-validate-remote-inputs-only-on-the-host/decision: + en: 6e3ef9540b02336b + zh: e8abe4ea84d95b95 +/agent-note-validate-remote-inputs-only-on-the-host/alternatives-considered: + en: 1c9ed80b25403e03 + zh: edbc8301e50cf3a1 +/agent-note-validate-remote-inputs-only-on-the-host/consequences: + en: caf3ffc95133ac40 + zh: f29864e4b636d6f7 diff --git a/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml index 165022b7dc..a259fd41c0 100644 --- a/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-15-model-agent-availability-and-team-targets.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.md -2026-09-15-model-agent-availability-and-team-targets.md: e1f7f95cfa333be6d05677b4b19775c744f2817c -2026-09-15-model-agent-availability-and-team-targets.zh.md: 0447d7d4059eb75d1fb9169389cd83a54292aadf +/agent-note-model-agent-availability-and-team-targets: + en: 7c8722f7b156cd8c + zh: aad147cf37021d82 +/agent-note-model-agent-availability-and-team-targets/problem: + en: 66cc6cea878418a6 + zh: 5df1e5508e10fc02 +/agent-note-model-agent-availability-and-team-targets/decision: + en: 044f44c456540021 + zh: 975794704c37186f +/agent-note-model-agent-availability-and-team-targets/alternatives-considered: + en: a19b8766bcff7e49 + zh: 0851603e9c8315c6 +/agent-note-model-agent-availability-and-team-targets/consequences: + en: 9b622b43322a407e + zh: ffe2e0199ba85b5e diff --git a/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml index a6c46b0bbd..3d56b5605f 100644 --- a/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-16-subagent-catalog-membership-only.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.md -2026-09-16-subagent-catalog-membership-only.md: d1d0956380ef2b2ffd610e5a3d07c7988991e42e -2026-09-16-subagent-catalog-membership-only.zh.md: 4225a331a0b3c483349760cd805416a94c4b915a +/agent-note-keep-model-configuration-outside-subagent-catalogs: + en: 58a38a2045e8bd43 + zh: 1a1b02b0a93ebc9e +/agent-note-keep-model-configuration-outside-subagent-catalogs/problem: + en: d817b413b7e38939 + zh: a4a3a12df1407a34 +/agent-note-keep-model-configuration-outside-subagent-catalogs/decision: + en: e46b59047e7cbe7d + zh: 2249547faa8e6a72 +/agent-note-keep-model-configuration-outside-subagent-catalogs/alternatives-considered: + en: 415a276e8011a2ab + zh: d86739d9fbe72fb9 +/agent-note-keep-model-configuration-outside-subagent-catalogs/consequences: + en: 6849156944864ab6 + zh: b74ba42a7d5711d9 diff --git a/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.i18n.yaml index 07287b00f8..b97e9bb8dd 100644 --- a/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-deepseek-messages-only.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.md -2026-09-19-deepseek-messages-only.md: c10ecae950bb12f4556021de21c9716ad2906227 -2026-09-19-deepseek-messages-only.zh.md: 3cfadac6ebc0b4bb1587a8b72e9b169d2ade2ee9 +/agent-note-one-messages-transport-for-the-official-deepseek-route: + en: 7f7651d2e098b62d + zh: 0b12845f48f7ae93 +/agent-note-one-messages-transport-for-the-official-deepseek-route/problem: + en: 050718df19ce3089 + zh: 676838e85ba91e25 +/agent-note-one-messages-transport-for-the-official-deepseek-route/decision: + en: 33738d00a2d9564b + zh: 00101971b1a18d64 +/agent-note-one-messages-transport-for-the-official-deepseek-route/alternatives-considered: + en: f92695788ada65aa + zh: b885b30ba9f846f8 +/agent-note-one-messages-transport-for-the-official-deepseek-route/consequences: + en: 23f7d09fb7cf709c + zh: 1db0bf29cdc38871 diff --git a/.agents/notes/implemented/simplification/2026-09-19-remove-desktop-profile-core-cleanup.i18n.yaml b/.agents/notes/implemented/simplification/2026-09-19-remove-desktop-profile-core-cleanup.i18n.yaml index 7dd1a29921..12e19d3efa 100644 --- a/.agents/notes/implemented/simplification/2026-09-19-remove-desktop-profile-core-cleanup.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-09-19-remove-desktop-profile-core-cleanup.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-remove-desktop-profile-core-cleanup.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-09-19-remove-desktop-profile-core-cleanup.md -2026-09-19-remove-desktop-profile-core-cleanup.md: a42100e8dc247611e29ddd2b8075b3b98e388177 -2026-09-19-remove-desktop-profile-core-cleanup.zh.md: 9a6be335a427e3f3083362ffd9e3aaa2f236635d +/agent-note-remove-the-desktop-production-profile-core-package-cleanup: + en: c0f7b1fb34a21423 + zh: 2ed4b90f28d21faa +/agent-note-remove-the-desktop-production-profile-core-package-cleanup/problem: + en: 7176d7d629dd9e9f + zh: f0e02f220e3ae72b +/agent-note-remove-the-desktop-production-profile-core-package-cleanup/decision: + en: 411b72fcdcb37d61 + zh: 7fac6dfd6d0ab0e4 +/agent-note-remove-the-desktop-production-profile-core-package-cleanup/alternatives-considered: + en: 92f74de20afec309 + zh: 6ace8389378cc343 +/agent-note-remove-the-desktop-production-profile-core-package-cleanup/verification: + en: dfb7a6977452f472 + zh: 424f2003f8372fe3 +/agent-note-remove-the-desktop-production-profile-core-package-cleanup/consequences: + en: 1012a408f055e2f3 + zh: 48329f673f2e440f diff --git a/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.i18n.yaml b/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.i18n.yaml index 42cefa39a0..f2eedbf389 100644 --- a/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-19-acp-snapshot-tests.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.md -2026-06-19-acp-snapshot-tests.md: 3a21d09609d45b574d7f19c3704a44dde5a3d17c -2026-06-19-acp-snapshot-tests.zh.md: e9f3682289a05e4e54db2de3adcd3bee7042ef1b +/agent-note-acp-snapshot-tests-record-once-replay-deterministic: + en: 2f19b76966d5cf54 + zh: cbaed521d650e079 +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/problem: + en: d1738d268738633e + zh: ce62a5b0ff65ce8c +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision: + en: a9e85418ad5d2bbd + zh: 8e86b30a2a5bd049 +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/the-fixture-projects-the-persisted-session-jsonl: + en: bdd1333366edfc30 + zh: ed8a0fbab516a62b +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/replay-derives-the-model-script-from-the-log: + en: cb71313f2b14f855 + zh: f85809cfd19ce6af +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/the-in-memory-replay-entry-honors-the-full-llm-contract: + en: 5d750b82fd88597c + zh: 22dc6dec0d638449 +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/positional-replay-one-in-flight-stream: + en: 9ecd0c3efce1b2a1 + zh: 51612956e0c4fc85 +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/recording-harvests-the-log-keyless-replay-needs-a-providerless-config: + en: 17239981275e59c8 + zh: 8f7fc2d9e6abd3ee +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/two-outputs-normalize-then-compare: + en: ee891a839a0c05e9 + zh: 677259307e4357fa +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/isolation-normalization-now-sandbox-later: + en: ce58ef2e3180d0d3 + zh: 1e9354614e4d7219 +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/the-replay-plugin-is-its-own-package: + en: 6c3f938c57f4458b + zh: f64bb14ffb80ab90 +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/decision/two-subcommands-replay-in-the-default-gate: + en: a50cb4cd2be177f7 + zh: a29f45aafb83fa6c +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/alternatives-considered: + en: c4e83a568e8f483e + zh: eff19f1872565ff6 +/agent-note-acp-snapshot-tests-record-once-replay-deterministic/consequences: + en: ea210a6a43707447 + zh: 8c1e2a474d595b96 diff --git a/.agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.i18n.yaml b/.agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.i18n.yaml index b55464949e..5958148df6 100644 --- a/.agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-19-real-api-e2e-ci.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.md -2026-06-19-real-api-e2e-ci.md: bdb20b3d5413077a4ddf1c1d9293b3b808cd6c8c -2026-06-19-real-api-e2e-ci.zh.md: b95f7df62e0a57d4c58fc5c12a83905dd848c55e +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api: + en: 705c6fd43858bdac + zh: 2bbc6491368fb4c0 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/problem: + en: 80cf8dc578552364 + zh: a54441ea02664483 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision: + en: 3fbdb8769322e05f + zh: f46f68f8eba74d67 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision/a-separate-workflow-not-a-job-in-ci-yml: + en: e4745c43611b96bb + zh: 8fb980401b0c5e9b +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision/cost-is-not-the-constraint-reliability-is: + en: 88b945361b1d4804 + zh: 0887a653945f4dda +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision/triggers-trusted-events-only: + en: 42a2fb15f00aec3a + zh: c4775447c863d209 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision/the-untrusted-pr-gate: + en: e94c28db20896508 + zh: c8e77c54dceed035 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision/preflight-fail-loud-never-false-green: + en: 07904c7ad53be5ad + zh: 67d84d4dc6f082a9 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision/secret-mapping-and-hygiene: + en: fbbcc9a926dfc943 + zh: 506acdb4e034574b +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/decision/scope-runtime-shape: + en: c59c441547da2a4d + zh: b08d50e7cfd40cd5 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/security: + en: 1fd3925ab26c11d4 + zh: 0d7103fd0b1afa89 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/security/who-can-reach-the-secret-in-a-private-repository: + en: a748b4e79bab26e1 + zh: 1c607bc65274cdef +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/security/the-residual-exposure-the-pull-request-trigger-adds: + en: 04463ffd6f67a2bd + zh: 4126fb30873782ed +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/security/what-changes-when-the-repo-goes-public: + en: 02aa2f4100f6aac5 + zh: f9868c6a12e19ecd +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/alternatives-considered: + en: 7e7aa3a387a174bc + zh: 2431a0df2fb478a8 +/agent-note-real-api-e2e-in-ci-against-the-external-deepseek-api/consequences: + en: a999af1cbd7776da + zh: 5f1fab52fd4eb304 diff --git a/.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml b/.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml index ac15111eb8..432ef80b37 100644 --- a/.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-24-web-gui-browser-e2e-lane.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.md -2026-07-24-web-gui-browser-e2e-lane.md: eb79591e7b94fccb8eb92aec4024738825d214fc -2026-07-24-web-gui-browser-e2e-lane.zh.md: f715f4ca93b202f72e632e5ddae0d13559a927a7 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui: + en: acbf72f6a3c5bea9 + zh: 4d655027ac2b78db +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/problem: + en: 547a3f60ac28095e + zh: 85a9d996257f0273 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/decision: + en: c2f86db5f0b6b5a4 + zh: dd07b529cc65e7d2 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/decision/scaffold-apps-web-tests-scaffold-ts: + en: 3d09cd693966a674 + zh: 4cda02850961f8d0 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/decision/determinism-rules: + en: 41790d8d79b7ada3 + zh: 1fc7e85a1accd806 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/decision/expected-outputs: + en: ca1ae9ccbeab8c01 + zh: 662cd5d98ee20ccc +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/decision/modes-and-fixtures: + en: 54f10befeaaade72 + zh: 3a7726c1f4be51cc +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/decision/coverage-contract: + en: c529437d4fbaeeb3 + zh: fe13551e56cba7df +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/decision/ci-stance: + en: 23b625d86ba7f5e2 + zh: 88f33b233fca0a82 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/prior-art: + en: 7472e212043721dd + zh: 61dd9f5a8e12730b +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/alternatives-considered: + en: 5bd57b3dbacd8380 + zh: a154f27d93930f77 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/testing: + en: f4459a24f56c9cfe + zh: a15bdc45785ed7e8 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/deferred: + en: aef84d3933bb72a1 + zh: 1cc5e2f1c9bcccf9 +/agent-note-keyless-browser-e2e-lane-for-the-web-gui/consequences: + en: 30928e1b547ddc34 + zh: 068bd12b2ac119dc diff --git a/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml b/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml index aeb64a1a11..8a40db5638 100644 --- a/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-30-web-browser-snapshot-ci-gate.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.md -2026-07-30-web-browser-snapshot-ci-gate.md: 352072bca6e1a9e1d5b72973d2c3c9e96bc58ad9 -2026-07-30-web-browser-snapshot-ci-gate.zh.md: cd04f33a5db6ddb3c88a235fb34ea31da0e5a869 +/agent-note-required-ci-gate-for-web-browser-expected-outputs: + en: 246ce605a87c0592 + zh: 37b3fb230abcb280 +/agent-note-required-ci-gate-for-web-browser-expected-outputs/problem: + en: e04a5ecbd6d6a39e + zh: 049ce77a1a679daa +/agent-note-required-ci-gate-for-web-browser-expected-outputs/decision: + en: 915efba11d7ece34 + zh: 540495b04ef9a305 +/agent-note-required-ci-gate-for-web-browser-expected-outputs/alternatives-considered: + en: 145e763735dd33b1 + zh: 4ea34838629cd3bf +/agent-note-required-ci-gate-for-web-browser-expected-outputs/consequences: + en: d4c6e69ad04c5748 + zh: 5f3034df8f13b106 diff --git a/.agents/notes/implemented/testing/2026-08-03-opt-in-reasoning-chunk-browser-stress.i18n.yaml b/.agents/notes/implemented/testing/2026-08-03-opt-in-reasoning-chunk-browser-stress.i18n.yaml index e8edd6c33e..42da714161 100644 --- a/.agents/notes/implemented/testing/2026-08-03-opt-in-reasoning-chunk-browser-stress.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-08-03-opt-in-reasoning-chunk-browser-stress.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-03-opt-in-reasoning-chunk-browser-stress.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-08-03-opt-in-reasoning-chunk-browser-stress.md -2026-08-03-opt-in-reasoning-chunk-browser-stress.md: 5b679ce2682743531bd3ff48621cbde462a335aa -2026-08-03-opt-in-reasoning-chunk-browser-stress.zh.md: 3d730a4505351be968c71092c65a9b9c6b69818c +/agent-note-frame-coalesced-reasoning-chunk-publication-and-browser-stress-validation: + en: c63de146daf09530 + zh: 5e117bc92e2ac783 +/agent-note-frame-coalesced-reasoning-chunk-publication-and-browser-stress-validation/problem: + en: 73673725b44538c9 + zh: 32027f7a457ee3ae +/agent-note-frame-coalesced-reasoning-chunk-publication-and-browser-stress-validation/decision: + en: 76879cc8efbe7c80 + zh: 539556341dcb04e5 +/agent-note-frame-coalesced-reasoning-chunk-publication-and-browser-stress-validation/alternatives-considered: + en: 8d0a7be0a8660a9c + zh: c1e94daae31893c5 +/agent-note-frame-coalesced-reasoning-chunk-publication-and-browser-stress-validation/consequences: + en: 7b67ec0da7f08635 + zh: 2b808c760e8df494 diff --git a/.agents/notes/implemented/testing/2026-08-23-installed-python-wheel-black-box-ci.i18n.yaml b/.agents/notes/implemented/testing/2026-08-23-installed-python-wheel-black-box-ci.i18n.yaml index ad99495034..be0529a4d9 100644 --- a/.agents/notes/implemented/testing/2026-08-23-installed-python-wheel-black-box-ci.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-08-23-installed-python-wheel-black-box-ci.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-23-installed-python-wheel-black-box-ci.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-08-23-installed-python-wheel-black-box-ci.md -2026-08-23-installed-python-wheel-black-box-ci.md: a23f7ea1b0157ba4ec050069b9fa9a4ea705bfa7 -2026-08-23-installed-python-wheel-black-box-ci.zh.md: 1751430445c6f42cf37fdf9b6164c19b04f01536 +/agent-note-installed-wheel-python-runtime-pull-request-validation: + en: e7a926cb3fc87ca2 + zh: 9d4df26986ee2c25 +/agent-note-installed-wheel-python-runtime-pull-request-validation/problem: + en: a8679e0c46ab5294 + zh: 1c3b4edd7263d8a9 +/agent-note-installed-wheel-python-runtime-pull-request-validation/decision: + en: a15c7c13f167e5ac + zh: a15c7c13f167e5ac +/agent-note-installed-wheel-python-runtime-pull-request-validation/decision/installed-artifact-boundary: + en: 57b22736a43ce8ef + zh: b80a12ade299258a +/agent-note-installed-wheel-python-runtime-pull-request-validation/decision/keyless-behavior: + en: c1b78f6c3cedd4d2 + zh: 03e267c73af6036b +/agent-note-installed-wheel-python-runtime-pull-request-validation/decision/real-deepseek-api: + en: 0f98f5b5f78b5603 + zh: 95ee8bafa66d6b1b +/agent-note-installed-wheel-python-runtime-pull-request-validation/decision/required-targets: + en: 4eafb728b9b3d596 + zh: e127fdfe44659767 +/agent-note-installed-wheel-python-runtime-pull-request-validation/existing-decisions-and-supersession: + en: 04aa439d4e607324 + zh: f4c1d24b6a418cc4 +/agent-note-installed-wheel-python-runtime-pull-request-validation/alternatives-considered: + en: 360a7e4cd0f6e1ec + zh: 53beb38864ff052d +/agent-note-installed-wheel-python-runtime-pull-request-validation/consequences: + en: 6161aae704abdd20 + zh: 4c81c9f6d1bef7d4 diff --git a/.agents/notes/implemented/testing/2026-08-24-session-log-snapshot-corpus.i18n.yaml b/.agents/notes/implemented/testing/2026-08-24-session-log-snapshot-corpus.i18n.yaml index 9cb458cb68..a82fdb832c 100644 --- a/.agents/notes/implemented/testing/2026-08-24-session-log-snapshot-corpus.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-08-24-session-log-snapshot-corpus.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-24-session-log-snapshot-corpus.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-08-24-session-log-snapshot-corpus.md -2026-08-24-session-log-snapshot-corpus.md: a9001c2eabd610e08cfb1177f2b1339f306320af -2026-08-24-session-log-snapshot-corpus.zh.md: d02c798af23a205993e92ed72a0f3a162f8bdded +/agent-note-session-log-snapshot-corpus: + en: 9cb40b5081c110bc + zh: 17c221d99b579119 +/agent-note-session-log-snapshot-corpus/problem: + en: ec6f331737be909e + zh: 5faee4c81cf2314f +/agent-note-session-log-snapshot-corpus/decision: + en: 1611b352461c63c5 + zh: f32a5229bac3264a +/agent-note-session-log-snapshot-corpus/alternatives-considered: + en: 76db318c1c2dad2d + zh: b868b7c9b29c1e00 +/agent-note-session-log-snapshot-corpus/invariants: + en: 04098d11861c90ae + zh: 6af6c376fe1ba8bb +/agent-note-session-log-snapshot-corpus/consequences: + en: 3d5810a9518fcb8d + zh: 075ad9a226b8b312 +/agent-note-session-log-snapshot-corpus/risks: + en: 333b33afa03cf4e1 + zh: 3b8f3bcdf57cfe8e diff --git a/.agents/notes/implemented/testing/2026-09-04-session-open-performance-gate.i18n.yaml b/.agents/notes/implemented/testing/2026-09-04-session-open-performance-gate.i18n.yaml index 2eb9f0f8ea..fa8f7c9390 100644 --- a/.agents/notes/implemented/testing/2026-09-04-session-open-performance-gate.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-04-session-open-performance-gate.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-04-session-open-performance-gate.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-04-session-open-performance-gate.md -2026-09-04-session-open-performance-gate.md: 1b2b0aabb79aceb0ac515a1d90ba3e2ba042535c -2026-09-04-session-open-performance-gate.zh.md: 9ad56796aac6310977aedfff0f9188e46cbbf3d7 +/agent-note-required-ci-performance-gate-for-opening-large-sessions: + en: 3e87960dd29e5814 + zh: 7abaea0b9397e16d +/agent-note-required-ci-performance-gate-for-opening-large-sessions/problem: + en: 00ba1f66195351e2 + zh: a738b81adceda351 +/agent-note-required-ci-performance-gate-for-opening-large-sessions/decision: + en: 75679c69eeeb1e02 + zh: 49ea45fa46ae3fcb +/agent-note-required-ci-performance-gate-for-opening-large-sessions/calibration-evidence: + en: f1001a139470f6b7 + zh: b7b46f96b84b1271 +/agent-note-required-ci-performance-gate-for-opening-large-sessions/calibration-evidence/indexed-traversal-of-stored-json-arrays: + en: 4ff4df8437e978a8 + zh: 642ac8ab685c7a11 +/agent-note-required-ci-performance-gate-for-opening-large-sessions/alternatives-considered: + en: 5debbc2a0382ed13 + zh: 415d11776f73f871 +/agent-note-required-ci-performance-gate-for-opening-large-sessions/consequences: + en: 845730942e93aa38 + zh: f8d6cd2a8e5e6859 diff --git a/.agents/notes/implemented/testing/2026-09-06-backend-continuation-performance.i18n.yaml b/.agents/notes/implemented/testing/2026-09-06-backend-continuation-performance.i18n.yaml index aeaed20365..60da3ac257 100644 --- a/.agents/notes/implemented/testing/2026-09-06-backend-continuation-performance.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-06-backend-continuation-performance.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-backend-continuation-performance.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-06-backend-continuation-performance.md -2026-09-06-backend-continuation-performance.md: a2423a404e23f6a4ccb6a4fb177ec6842b7bf584 -2026-09-06-backend-continuation-performance.zh.md: 942cfd37528d121bf482c48c5d75dd1f2de30887 +/agent-note-performance-baselines-for-tool-heavy-backend-continuation: + en: 542fea07db8861a3 + zh: 3a9d381c2366f5ec +/agent-note-performance-baselines-for-tool-heavy-backend-continuation/problem: + en: c6a89dac7dea293a + zh: b10610932d55996c +/agent-note-performance-baselines-for-tool-heavy-backend-continuation/decision: + en: 3429525a40e02b95 + zh: 92f12beb81003101 +/agent-note-performance-baselines-for-tool-heavy-backend-continuation/calibration-evidence: + en: 4f47ca6859cc2d70 + zh: 5bfe8314fd30d82b +/agent-note-performance-baselines-for-tool-heavy-backend-continuation/alternatives-considered: + en: 3a61dff7c926eb22 + zh: 8f2633b16be78233 +/agent-note-performance-baselines-for-tool-heavy-backend-continuation/consequences: + en: 0ffe42f70b26de41 + zh: 367038e53dc04ff4 diff --git a/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.i18n.yaml b/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.i18n.yaml index 1e0850bf40..f4079749aa 100644 --- a/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-client-assembly-test-line.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.md -2026-09-06-client-assembly-test-line.md: d2515c0689b9ea39bf14e4ce653a26d9a81ebfb8 -2026-09-06-client-assembly-test-line.zh.md: 90b5768db4307c551b895d7101324f329f42c955 +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock: + en: f11c0f43c9f9be09 + zh: 991625645ac91f06 +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock/problem: + en: 33c0c3670dae25c3 + zh: 4d91a11eea9bbb8f +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock/decision: + en: af415345cccb067e + zh: 8e82f7136f61a80e +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock/product-exports-added-for-the-tier: + en: b45dd80dbe278c5f + zh: cdfb145cd8fab276 +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock/alternatives-considered: + en: 2898d540f4bb1ee2 + zh: a3e2f1ea4cc8154f +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock/consequences: + en: b6a9721dec64d304 + zh: 160edfa839b7d024 +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock/deferred: + en: 1f18c8a38967698a + zh: f6809d290748d9cf +/agent-note-whole-client-test-tier-over-an-endpoint-named-remote-mock/testing: + en: 84fd4b8cc4a4abc8 + zh: f5d8fcb31a6d103b diff --git a/.agents/notes/implemented/testing/2026-09-06-frontend-performance-budgets.i18n.yaml b/.agents/notes/implemented/testing/2026-09-06-frontend-performance-budgets.i18n.yaml index bc0def0cce..1d0b70851d 100644 --- a/.agents/notes/implemented/testing/2026-09-06-frontend-performance-budgets.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-06-frontend-performance-budgets.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-frontend-performance-budgets.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-06-frontend-performance-budgets.md -2026-09-06-frontend-performance-budgets.md: ea91edf8d39d838ab58204f8516d9d1e9d50109f -2026-09-06-frontend-performance-budgets.zh.md: 84c115ef09f55babf96eb1ef8d2f472a139dd55d +/agent-note-frontend-large-session-performance-budgets: + en: 443578f129feecd8 + zh: fcc3b1bf7dcdb1fb +/agent-note-frontend-large-session-performance-budgets/problem: + en: 9bf1200b5f980008 + zh: d2dc07922817c581 +/agent-note-frontend-large-session-performance-budgets/decision: + en: 0ff66ffe55696498 + zh: c05736fde021bcc4 +/agent-note-frontend-large-session-performance-budgets/calibration: + en: f3be2a0d346e80cc + zh: c49cc56e7714f68c +/agent-note-frontend-large-session-performance-budgets/calibration/actual-ci-runs: + en: d4d6aebafcdb8c12 + zh: 112d3ca1a4ea8ae1 +/agent-note-frontend-large-session-performance-budgets/calibration/standard-hosted-expectations-and-input-scheduling: + en: 8cb6299dbb42a9fe + zh: 51ef49d4fcaeb92f +/agent-note-frontend-large-session-performance-budgets/alternatives-considered: + en: 1472bd425ef0daec + zh: a89811758d70331e +/agent-note-frontend-large-session-performance-budgets/consequences: + en: 3f4f510612875d54 + zh: 3a4af464f159bfe8 diff --git a/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml b/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml index dccefc4520..aa5bb20d1f 100644 --- a/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-pr-ci-runner-temporary-storage.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.md -2026-09-06-pr-ci-runner-temporary-storage.md: 59d609c08e1b228ae9a9705140f2832305dfead5 -2026-09-06-pr-ci-runner-temporary-storage.zh.md: f6765212af2424f2080063946f9104125993b9d5 +/agent-note-runner-owned-temporary-storage-for-pr-ci: + en: 2f9ebea4c52687b3 + zh: 5924c9657eea7ff7 +/agent-note-runner-owned-temporary-storage-for-pr-ci/problem: + en: 5787327a360024d9 + zh: ee9b8cb63d79e551 +/agent-note-runner-owned-temporary-storage-for-pr-ci/decision: + en: 44990c35e1cb69cb + zh: 38a6bed07b5596e3 +/agent-note-runner-owned-temporary-storage-for-pr-ci/recorded-acp-completion-order: + en: 51f2f962db14ba9c + zh: 5fc8a908431c3865 +/agent-note-runner-owned-temporary-storage-for-pr-ci/workspace-grant-fixture-placement: + en: 1008b2fc61d01b10 + zh: f5314d10980611ef +/agent-note-runner-owned-temporary-storage-for-pr-ci/live-verification-and-browser-fixture-inputs: + en: 0f8e8478a3fb6486 + zh: 5d74c6902ea9831c +/agent-note-runner-owned-temporary-storage-for-pr-ci/alternatives-considered: + en: 8b0f2798f91ff190 + zh: f6e871a723e4d079 +/agent-note-runner-owned-temporary-storage-for-pr-ci/consequences: + en: ff73f9c3daeb33be + zh: 28f4245c275c4109 diff --git a/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.i18n.yaml b/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.i18n.yaml index 834bf27d4b..4a7ab9e93d 100644 --- a/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-python-runtime-install-retry.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.md -2026-09-06-python-runtime-install-retry.md: 639fe2814ae1b3beadcd47d3b9eac15408c585cc -2026-09-06-python-runtime-install-retry.zh.md: 7a7943f43fcec536542c5aef0e608e177f64907f +/agent-note-bounded-retry-for-python-runtime-dependency-install: + en: 610eeadbda25f100 + zh: e063790ef0b766c9 +/agent-note-bounded-retry-for-python-runtime-dependency-install/problem: + en: ea99de707130a978 + zh: 0d8d853cf38e903a +/agent-note-bounded-retry-for-python-runtime-dependency-install/decision: + en: 8a91f9e5ade1fbbe + zh: 82851f2d37f6a216 +/agent-note-bounded-retry-for-python-runtime-dependency-install/alternatives-considered: + en: c9bee05dfbb068aa + zh: 7f0712a941209116 +/agent-note-bounded-retry-for-python-runtime-dependency-install/consequences: + en: 4d036332d39c88a6 + zh: aac5dd7e7f09df2a diff --git a/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml b/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml index feddeffb9f..50c9f04da5 100644 --- a/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-standard-hosted-benchmark-runner.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.md -2026-09-06-standard-hosted-benchmark-runner.md: af95af6ee8cef1128a5475863ea7a1aaf66f30b9 -2026-09-06-standard-hosted-benchmark-runner.zh.md: 47095a5b2e91318c2f3ec5ac3cc9f6df3bce04d6 +/agent-note-standard-hosted-runner-for-required-benchmarks: + en: 07d81b0ddc7349cd + zh: 0494136a627f09a4 +/agent-note-standard-hosted-runner-for-required-benchmarks/problem: + en: e930cd992a15b811 + zh: fe791e9581ff6a35 +/agent-note-standard-hosted-runner-for-required-benchmarks/decision: + en: 07bc990d5c68d617 + zh: 5bf08df36181b2a6 +/agent-note-standard-hosted-runner-for-required-benchmarks/alternatives-considered: + en: 82f0eab2a8e66383 + zh: 6677a34a53b8915f +/agent-note-standard-hosted-runner-for-required-benchmarks/consequences: + en: 173caff985f5ff21 + zh: 83f3ef068ec62439 diff --git a/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml b/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml index 75ddc0220c..336d27a518 100644 --- a/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-publint-test-subprocess-lifetime.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.md -2026-09-07-publint-test-subprocess-lifetime.md: f8b0e0455f44e6cfc7dd1ce120b0edc07e88180a -2026-09-07-publint-test-subprocess-lifetime.zh.md: dd0533752b13f337e5f2453f01ca87f17d6ec3b2 +/agent-note-publint-test-subprocesses-inherit-the-execution-lane-deadline: + en: 762197e4e97b62a1 + zh: a2ac103348f6e692 +/agent-note-publint-test-subprocesses-inherit-the-execution-lane-deadline/problem: + en: a5fb106b97023934 + zh: 537bd40564850192 +/agent-note-publint-test-subprocesses-inherit-the-execution-lane-deadline/decision: + en: 62cc75fa54d44d80 + zh: 72d296ea1d5448bc +/agent-note-publint-test-subprocesses-inherit-the-execution-lane-deadline/alternatives-considered: + en: 5cc52a67c84dd039 + zh: 9fdc5ac07da9a056 +/agent-note-publint-test-subprocesses-inherit-the-execution-lane-deadline/consequences: + en: a2d7dabc61d37634 + zh: 753addcc45383715 diff --git a/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml b/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml index e52920e249..d9e1bb9952 100644 --- a/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-pwsh-ci-observable-completion.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.md -2026-09-07-pwsh-ci-observable-completion.md: 2cd42296c14602f1f4aad68b8988f84dabbd5479 -2026-09-07-pwsh-ci-observable-completion.zh.md: 9ea83963be7faa274e53b1b9260222f71553e0f4 +/agent-note-powershell-ci-completion-and-profile-expectations: + en: 30366de41f8f71f6 + zh: d343887adae38ef4 +/agent-note-powershell-ci-completion-and-profile-expectations/problem: + en: 5806986dfd58191c + zh: ac082211e112c2d4 +/agent-note-powershell-ci-completion-and-profile-expectations/decision: + en: f23d0691bc168ad7 + zh: 2873eb08c925f2f6 +/agent-note-powershell-ci-completion-and-profile-expectations/alternatives-considered: + en: 6fde4f1b34fdd5e7 + zh: 6bc1ef73ce0e2645 +/agent-note-powershell-ci-completion-and-profile-expectations/consequences: + en: d486f9db082655db + zh: 01c46ff6b700cb15 diff --git a/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml b/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml index 9a305f4c7f..10306946dc 100644 --- a/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-07-subagent-teardown-test-budgets.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.md -2026-09-07-subagent-teardown-test-budgets.md: 372c8b311054b11d86b3057415dd98584d94be9f -2026-09-07-subagent-teardown-test-budgets.zh.md: 8539664280c5fe720f27459fdb2d14c47ad3e780 +/agent-note-subagent-teardown-tests-inherit-their-execution-lane-budgets: + en: b704be92bc9b9b3c + zh: 4154bd2d89177e5d +/agent-note-subagent-teardown-tests-inherit-their-execution-lane-budgets/problem: + en: 5853599207f6b3bb + zh: d58b5e8e19d93a4f +/agent-note-subagent-teardown-tests-inherit-their-execution-lane-budgets/decision: + en: 721ea003ebaef8c7 + zh: e17be423bc4c7568 +/agent-note-subagent-teardown-tests-inherit-their-execution-lane-budgets/alternatives-considered: + en: 3ad30b2574818a61 + zh: d323adddd5065ae4 +/agent-note-subagent-teardown-tests-inherit-their-execution-lane-budgets/consequences: + en: 20d060fe30ada016 + zh: c73937bffbb251c0 diff --git a/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.i18n.yaml b/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.i18n.yaml index 297fed6b49..dc92e99d72 100644 --- a/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-ci-completion-observations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-08-ci-completion-observations.md -2026-09-08-ci-completion-observations.md: 30145f26fccd1ca7d174d76df738f100827cc32a -2026-09-08-ci-completion-observations.zh.md: a819d6ad45d80b7fce2f67025629d8d6cf9f8344 +/agent-note-ci-fixture-completion-and-isolation: + en: f5c180b0aad40b22 + zh: 89af7791bfbed707 +/agent-note-ci-fixture-completion-and-isolation/problem: + en: b7350054dcefd411 + zh: 61fd5b508f804ca1 +/agent-note-ci-fixture-completion-and-isolation/decision: + en: 8b245a4f4974e855 + zh: 93963695545d13ed +/agent-note-ci-fixture-completion-and-isolation/decision/built-client-import-classification: + en: 443f119bc5d5b49f + zh: b1c53efd3a216d63 +/agent-note-ci-fixture-completion-and-isolation/alternatives-considered: + en: 569976702b273da6 + zh: 3a5e5faba0074398 +/agent-note-ci-fixture-completion-and-isolation/consequences: + en: 168df70afdad308d + zh: 0e77a4741fa8024b diff --git a/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.i18n.yaml b/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.i18n.yaml index 77ca3fa1c8..bef8854202 100644 --- a/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-ci-readiness-and-completion.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.md -2026-09-08-ci-readiness-and-completion.md: 1bf4f701f1b66debd982f1b786116e437e35dea4 -2026-09-08-ci-readiness-and-completion.zh.md: ae6d4e0195c66435fba22efae2376f6979ea9f6d +/agent-note-ci-assertions-wait-for-owned-completion: + en: 784e4056f020fab9 + zh: 941e7091a7621c9e +/agent-note-ci-assertions-wait-for-owned-completion/problem: + en: a7fe3958c0c18911 + zh: cce83727500187bc +/agent-note-ci-assertions-wait-for-owned-completion/decision: + en: 2b0ff4ab1d18bd1c + zh: 39556bf95aec3c56 +/agent-note-ci-assertions-wait-for-owned-completion/alternatives-considered: + en: 07ee7017cc6f6e74 + zh: b42f742932edd3f8 +/agent-note-ci-assertions-wait-for-owned-completion/consequences: + en: 70258f58a1e781bb + zh: fabc014ced9872f5 diff --git a/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml b/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml index 13264740b3..be1357732e 100644 --- a/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-09-user-patch-hmr-test-delivery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.md -2026-09-09-user-patch-hmr-test-delivery.md: 32ee3073dcb67e1f6bed70c515dd9b6990b97d03 -2026-09-09-user-patch-hmr-test-delivery.zh.md: bcd6f261c0ec4428f4f28138e7e62b80141dd981 +/agent-note-user-patch-tests-control-filesystem-event-delivery: + en: c2c70a16f6deea8b + zh: 3b11c81b87910ce7 +/agent-note-user-patch-tests-control-filesystem-event-delivery/problem: + en: 3f8862080b8c3c89 + zh: 0e83c485f02c10f1 +/agent-note-user-patch-tests-control-filesystem-event-delivery/decision: + en: a49b4a6e76725b7e + zh: 9813f60c40a19f83 +/agent-note-user-patch-tests-control-filesystem-event-delivery/alternatives-considered: + en: 5d559ee291e2e15e + zh: 828e7def587d71e8 +/agent-note-user-patch-tests-control-filesystem-event-delivery/consequences: + en: da9f64f4d269cece + zh: 6bbbcc771c5fbcde diff --git a/.agents/notes/implemented/testing/2026-09-10-desktop-local-updater-qualification.i18n.yaml b/.agents/notes/implemented/testing/2026-09-10-desktop-local-updater-qualification.i18n.yaml index 55faf9d686..f61ba057a5 100644 --- a/.agents/notes/implemented/testing/2026-09-10-desktop-local-updater-qualification.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-10-desktop-local-updater-qualification.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-desktop-local-updater-qualification.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-10-desktop-local-updater-qualification.md -2026-09-10-desktop-local-updater-qualification.md: 10c0a384106cc06aaae50d8782b58114ea86fb79 -2026-09-10-desktop-local-updater-qualification.zh.md: 9d554bc5001fc53f60ba9cd0d08b02e975f8261f +/agent-note-qualify-desktop-update-downloads-with-an-isolated-local-server: + en: 71382ca7e306c188 + zh: ee13377b994ff06a +/agent-note-qualify-desktop-update-downloads-with-an-isolated-local-server/problem: + en: a621d24f1336bf19 + zh: 56dc14cda197b301 +/agent-note-qualify-desktop-update-downloads-with-an-isolated-local-server/decision: + en: b8e5f482693b9213 + zh: 4ac670ae629d3fd1 +/agent-note-qualify-desktop-update-downloads-with-an-isolated-local-server/alternatives-considered: + en: f93809633864e337 + zh: 4bd2141c2a36e1ac +/agent-note-qualify-desktop-update-downloads-with-an-isolated-local-server/consequences: + en: 4ef44c91915206b5 + zh: f4ecf7b2d6df4932 diff --git a/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml b/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml index b745447152..72274416f8 100644 --- a/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-hosted-image-test-assumptions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.md -2026-09-10-hosted-image-test-assumptions.md: e6fe4e35848c48462e7bb9c99bc898b6ebc907c9 -2026-09-10-hosted-image-test-assumptions.zh.md: 4fe8bf2a3764b0f95268e20eb379a69c7e44ced6 +/agent-note-hosted-image-assumptions-in-the-coverage-suite: + en: b9e6c590cb18c637 + zh: 02591776cec956ea +/agent-note-hosted-image-assumptions-in-the-coverage-suite/problem: + en: c1299114bcbbbbc2 + zh: 1b38aa9c8b0a4eef +/agent-note-hosted-image-assumptions-in-the-coverage-suite/decision: + en: 00b0e2ef25435ad3 + zh: 9bf59f5ca765a94b +/agent-note-hosted-image-assumptions-in-the-coverage-suite/alternatives-considered: + en: 7cc99ab98600ed3f + zh: c302b579791a403d +/agent-note-hosted-image-assumptions-in-the-coverage-suite/consequences: + en: 96ad46667a025f85 + zh: ba04b1436b82a620 diff --git a/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml b/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml index efdce8aa1b..52fcc8494f 100644 --- a/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-12-connection-and-compaction-fixture-preconditions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md -2026-09-12-connection-and-compaction-fixture-preconditions.md: 9b97657c7742bb37a8a70b04350d5e6b43868f6c -2026-09-12-connection-and-compaction-fixture-preconditions.zh.md: bc73a0e84ab4f60b7f3091f60a5217dcc950cb20 +/agent-note-connection-and-compaction-fixture-preconditions: + en: ea762fbdd18bdce3 + zh: 5795a728fd210f69 +/agent-note-connection-and-compaction-fixture-preconditions/problem: + en: 43949801eda059d6 + zh: 83b579735b9d3e3f +/agent-note-connection-and-compaction-fixture-preconditions/decision: + en: 4e7091381ce185cf + zh: 6e36499f5b5e46f9 +/agent-note-connection-and-compaction-fixture-preconditions/alternatives-considered: + en: b8842654dbe80f4c + zh: e4b80e80d89203b0 +/agent-note-connection-and-compaction-fixture-preconditions/consequences: + en: 054ce1f776693cc9 + zh: dd542b1ccb1cc07d diff --git a/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-journal.i18n.yaml b/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-journal.i18n.yaml index 6ebebc30d8..ba9ba30f89 100644 --- a/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-journal.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-journal.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-desktop-installed-update-journal.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-14-desktop-installed-update-journal.md -2026-09-14-desktop-installed-update-journal.md: 2a0ecbde408d1207102ba206ada333de6d123711 -2026-09-14-desktop-installed-update-journal.zh.md: 129efa7c123b6945e857e55e3632b18850ceb67d +/agent-note-preserve-installed-desktop-update-evidence-across-restarts: + en: 813f856f3457732c + zh: 4f88103f6402d309 +/agent-note-preserve-installed-desktop-update-evidence-across-restarts/problem: + en: 5401829797ce63d2 + zh: 8a05a7d216aba56d +/agent-note-preserve-installed-desktop-update-evidence-across-restarts/decision: + en: 07386e0ad4b17ea2 + zh: 8424f276161376e4 +/agent-note-preserve-installed-desktop-update-evidence-across-restarts/alternatives-considered: + en: bd3c8ebb1d8e2360 + zh: db38b0725b7eae9c +/agent-note-preserve-installed-desktop-update-evidence-across-restarts/consequences: + en: 08918c2d6d6ec745 + zh: 239edd387dba4a58 diff --git a/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-materials.i18n.yaml b/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-materials.i18n.yaml index 0c1184b114..17cae8945a 100644 --- a/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-materials.i18n.yaml +++ b/.agents/notes/implemented/testing/2026-09-14-desktop-installed-update-materials.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-desktop-installed-update-materials.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/testing/2026-09-14-desktop-installed-update-materials.md -2026-09-14-desktop-installed-update-materials.md: 1813c6d9bbdf12697e32f7440e4b654a33bb2384 -2026-09-14-desktop-installed-update-materials.zh.md: b92bb70b32e6549b8f2aed48f6aa9b2b8364fe54 +/agent-note-isolate-installed-update-materials-from-releases-and-user-data: + en: 9cb68e389e43373b + zh: c355d3df1f94a1a2 +/agent-note-isolate-installed-update-materials-from-releases-and-user-data/problem: + en: 8d63b992ff6d3161 + zh: 86d333255a5400d3 +/agent-note-isolate-installed-update-materials-from-releases-and-user-data/decision: + en: 7778333c76ab9b5d + zh: fa35b0a12a31ea23 +/agent-note-isolate-installed-update-materials-from-releases-and-user-data/alternatives-considered: + en: c608f186cc94a9d3 + zh: 39750c8347e8bece +/agent-note-isolate-installed-update-materials-from-releases-and-user-data/consequences: + en: e04b056cebbbba29 + zh: 5868709735abda3e diff --git a/.agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.i18n.yaml b/.agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.i18n.yaml index 48b4108c99..88e45a77c2 100644 --- a/.agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-required-cancellation-through-tool-capability-seams.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.md -2026-07-19-required-cancellation-through-tool-capability-seams.md: 722eefc3c79d3c1c589696bc1876d10ccbce77ea -2026-07-19-required-cancellation-through-tool-capability-seams.zh.md: 80d751e22cebd16d878f09ae9a5c15996c337603 +/agent-note-required-cancellation-through-tool-reachable-capability-seams: + en: 7999f4da8ee4fe80 + zh: ea49c90e2bbaacb8 +/agent-note-required-cancellation-through-tool-reachable-capability-seams/problem: + en: c244ddd6aadf87ad + zh: d30d623e9bf25c6b +/agent-note-required-cancellation-through-tool-reachable-capability-seams/proposal: + en: 20ed2d4cacc14f0c + zh: 19ee19bcf3596048 +/agent-note-required-cancellation-through-tool-reachable-capability-seams/proposal/scope-boundary: + en: c9df2c946d26f728 + zh: cc5bcd1710a864ef +/agent-note-required-cancellation-through-tool-reachable-capability-seams/alternatives-considered: + en: 0f2e31037bb1071c + zh: 6c654c553300ceb5 +/agent-note-required-cancellation-through-tool-reachable-capability-seams/acceptance-criteria: + en: a439a907dc6b2457 + zh: a693d1b8bb05b67f +/agent-note-required-cancellation-through-tool-reachable-capability-seams/risks: + en: c071970c88e73cb7 + zh: 58eaf135ac19ecc9 diff --git a/.agents/notes/proposed/architecture/2026-07-24-domain-kv-storage-and-workspace.i18n.yaml b/.agents/notes/proposed/architecture/2026-07-24-domain-kv-storage-and-workspace.i18n.yaml index 7d7f43420a..714d3ca25a 100644 --- a/.agents/notes/proposed/architecture/2026-07-24-domain-kv-storage-and-workspace.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-07-24-domain-kv-storage-and-workspace.i18n.yaml @@ -1,6 +1,49 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-24-domain-kv-storage-and-workspace.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-07-24-domain-kv-storage-and-workspace.md -2026-07-24-domain-kv-storage-and-workspace.md: dc14648c703f60b391cf4dba947c3cb0ddeb8ccb -2026-07-24-domain-kv-storage-and-workspace.zh.md: 1cf72809193b40ab540deaa171b8df1b0d39defb +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity: + en: e1792a25ca5d684d + zh: ddb20d72b56eebf8 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/problem: + en: 9a6abd0305f2e2bb + zh: 7c3f1132c0fa7b56 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal: + en: 34e5bde1535a2bb1 + zh: 559deb25b2ec50ba +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/dsh-storage-the-storage-hub: + en: 191afc01a150e4a0 + zh: da3fbc33875a4f60 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/dsh-storage-json: + en: a18ec1e534a5488b + zh: 2f5beb445e30554b +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/dsh-storage-sqlite: + en: 6a26dd7ef357db74 + zh: 951b31136e2415f9 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/dsh-domain-the-domain-data-form: + en: d51c71c793c26834 + zh: 3aab9f9695a0e225 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/future-work-session-side-deletion-design-settled-not-implemented-this-phase: + en: a3824326587b6539 + zh: 9736e3060bd57651 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/dsh-workspace: + en: 71351e042512c03a + zh: 965622f09f135d37 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/reuse-and-the-session-backend-migration-outlook: + en: e586acdb16085b91 + zh: 4fae53c5b9e4fd5b +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/test-matrix: + en: 4f8560110ec03322 + zh: 574d611d6e086e96 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/proposal/out-of-scope-list: + en: 6a8b96b362f8a742 + zh: 4ba5c96353ae46f5 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/alternatives-considered: + en: 159649c838437048 + zh: 286e2f61c796cb1c +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/acceptance-criteria: + en: ec4f2e69de32577b + zh: 64a4d049a3b75004 +/agent-note-domain-kv-storage-capability-seam-and-the-workspace-entity/risks: + en: d5d49b31afe6cfab + zh: 19606893bbde5b03 diff --git a/.agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml b/.agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml index f6a8f29476..7207445070 100644 --- a/.agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml @@ -1,6 +1,49 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-27-session-projection-and-command-log.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.md -2026-07-27-session-projection-and-command-log.md: fb329a4117fdea8f4aa0e98548982c3197d9c8f6 -2026-07-27-session-projection-and-command-log.zh.md: eb359058a74c6ed53959253ae80f2002cb67a351 +/agent-note-session-projections-and-command-lifecycle-logging: + en: c4b22a24c549feb8 + zh: 4e4921326e0cd13a +/agent-note-session-projections-and-command-lifecycle-logging/problem: + en: 017166a86aa35cad + zh: b6a2e826fbed2474 +/agent-note-session-projections-and-command-lifecycle-logging/proposal: + en: d13f906be5b62374 + zh: 1cf74760f668902a +/agent-note-session-projections-and-command-lifecycle-logging/proposal/whole-value-event-rule: + en: e6c93d89a25f0d03 + zh: 65e1f5842bc74008 +/agent-note-session-projections-and-command-lifecycle-logging/proposal/host-projection-registry-dsh-session-projection-new-package: + en: 6068eb6aba54b102 + zh: 20e91466baf6ad11 +/agent-note-session-projections-and-command-lifecycle-logging/proposal/shipped-consumer-the-subagent-identity-unit: + en: 10093535660c3cae + zh: a7f4ff9e71ee6751 +/agent-note-session-projections-and-command-lifecycle-logging/proposal/wire-projections-block-on-the-history-tail-page: + en: 1a6357e8821e7951 + zh: b4b75959af4f3910 +/agent-note-session-projections-and-command-lifecycle-logging/proposal/push-frame-and-the-client-value-store-domains-write-zero-client-code: + en: e95962f82eefed51 + zh: d2b3dfa8a23c8f0f +/agent-note-session-projections-and-command-lifecycle-logging/proposal/plan-through-the-standard-command-channel-worked-example: + en: be319089ba75cae5 + zh: 2cf0ec8d0ef79564 +/agent-note-session-projections-and-command-lifecycle-logging/proposal/react-useprojection-the-fifth-framework-hook-seat: + en: 7b536bd8a51cc5dc + zh: 1ead63f6358b3799 +/agent-note-session-projections-and-command-lifecycle-logging/proposal/command-lifecycle-in-the-log: + en: a7e04451f3ed417c + zh: fb60c8729200b825 +/agent-note-session-projections-and-command-lifecycle-logging/delivery-plan: + en: 64ad8d08a8ab44e0 + zh: fb0a0f7369d0bd23 +/agent-note-session-projections-and-command-lifecycle-logging/alternatives-considered: + en: e945e84e8360e0c4 + zh: becdeb100a4c5b6b +/agent-note-session-projections-and-command-lifecycle-logging/acceptance-criteria: + en: 9dfcca30fffda225 + zh: 0beddb81d32e0ca7 +/agent-note-session-projections-and-command-lifecycle-logging/risks: + en: f0eb219b4119ca7d + zh: de870016c1623895 diff --git a/.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.i18n.yaml b/.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.i18n.yaml index f8b3f81ba2..db04c28547 100644 --- a/.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-28-storage-root-and-derived-medium-recovery.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.md -2026-07-28-storage-root-and-derived-medium-recovery.md: 3a4124e577b79b6775c40aed0adc63ab0c130dad -2026-07-28-storage-root-and-derived-medium-recovery.zh.md: f8d91402ba682bef616274d1a4c4fe00360271fc +/agent-note-storage-root-placement-and-derived-medium-recovery: + en: 9ebb460b39f06952 + zh: 0fc0480869566600 +/agent-note-storage-root-placement-and-derived-medium-recovery/problem: + en: e94be80df86b1da9 + zh: fe9b9dad3299562e +/agent-note-storage-root-placement-and-derived-medium-recovery/proposal: + en: bd212f50ff01960a + zh: de2c69ef9be74629 +/agent-note-storage-root-placement-and-derived-medium-recovery/proposal/one-global-storage-root-shipped-amended-form-resolved-once-at-construction-still-open: + en: 0d6497184e9ce8a0 + zh: 0e339979075c9a0e +/agent-note-storage-root-placement-and-derived-medium-recovery/proposal/declared-derived-media-reset-instead-of-reject: + en: 11e9dd194e73921f + zh: 48fbb156396dc7ec +/agent-note-storage-root-placement-and-derived-medium-recovery/alternatives-considered: + en: b5fab4b550256e96 + zh: 1d13d4de6b70e2df +/agent-note-storage-root-placement-and-derived-medium-recovery/acceptance-criteria: + en: 9d15489c12c5a23a + zh: 305a74fd2cc75aa1 +/agent-note-storage-root-placement-and-derived-medium-recovery/risks: + en: be70695cbd77824b + zh: 163ffebf285d7e5b diff --git a/.agents/notes/proposed/architecture/2026-07-29-durable-last-activity-index.i18n.yaml b/.agents/notes/proposed/architecture/2026-07-29-durable-last-activity-index.i18n.yaml index 0466c8f8cc..bab183a3a2 100644 --- a/.agents/notes/proposed/architecture/2026-07-29-durable-last-activity-index.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-07-29-durable-last-activity-index.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-29-durable-last-activity-index.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-07-29-durable-last-activity-index.md -2026-07-29-durable-last-activity-index.md: f007f01bf34c830ef9c0093e58ca86f07416d68c -2026-07-29-durable-last-activity-index.zh.md: c3259f47bcf02f6214ea6081730ee1e850c27e77 +/agent-note-record-last-activity-in-the-session-index: + en: f64dc6aee10c755f + zh: a28d8450c78b0c01 +/agent-note-record-last-activity-in-the-session-index/problem: + en: 332469396acd98d4 + zh: c9e4d587628fc0e7 +/agent-note-record-last-activity-in-the-session-index/proposal: + en: 2260380e10b59eb6 + zh: dcf5a7f2d6003021 +/agent-note-record-last-activity-in-the-session-index/alternatives-considered: + en: 9034b95d80405f9c + zh: 573e1dcd10b62344 +/agent-note-record-last-activity-in-the-session-index/acceptance-criteria: + en: ec546e4feceb77a7 + zh: a29c9268e1c189c7 +/agent-note-record-last-activity-in-the-session-index/risks: + en: 9aaf88097b46e9b6 + zh: d16e5bbbe221b139 +/agent-note-record-last-activity-in-the-session-index/related: + en: 3fde35c997f273f8 + zh: 2d063c34cc9fe0bb diff --git a/.agents/notes/proposed/architecture/2026-08-08-semantic-composer-chain-phases.i18n.yaml b/.agents/notes/proposed/architecture/2026-08-08-semantic-composer-chain-phases.i18n.yaml index 2345992ba4..311038880f 100644 --- a/.agents/notes/proposed/architecture/2026-08-08-semantic-composer-chain-phases.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-08-08-semantic-composer-chain-phases.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-08-semantic-composer-chain-phases.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-08-08-semantic-composer-chain-phases.md -2026-08-08-semantic-composer-chain-phases.md: 8dab5afcdd8025467ba2eeb55406d2464376a8fa -2026-08-08-semantic-composer-chain-phases.zh.md: d00332b1552cf83eb969c764a33a56e2f61b1633 +/agent-note-semantic-phases-for-composer-chain-election: + en: b083187ad8ead004 + zh: b22a0dd83c37c557 +/agent-note-semantic-phases-for-composer-chain-election/problem: + en: 45193c3a6f3d29bf + zh: 7f508649dbe65db5 +/agent-note-semantic-phases-for-composer-chain-election/proposal: + en: 9dc3866376b4590b + zh: 93c2208fe9a43d91 +/agent-note-semantic-phases-for-composer-chain-election/alternatives-considered: + en: 966a5082d8c2fe35 + zh: 6a384edcdec8495e +/agent-note-semantic-phases-for-composer-chain-election/acceptance-criteria: + en: 7ecfc42bcf0be41a + zh: 4efae40db6e6768b +/agent-note-semantic-phases-for-composer-chain-election/risks: + en: 06969296bb3bd8d6 + zh: f90e5cc35d52c53a diff --git a/.agents/notes/proposed/architecture/2026-09-06-logical-session-storage-rebuild.i18n.yaml b/.agents/notes/proposed/architecture/2026-09-06-logical-session-storage-rebuild.i18n.yaml index 9fa4bb0ea1..831a010177 100644 --- a/.agents/notes/proposed/architecture/2026-09-06-logical-session-storage-rebuild.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-09-06-logical-session-storage-rebuild.i18n.yaml @@ -1,6 +1,55 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-06-logical-session-storage-rebuild.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-09-06-logical-session-storage-rebuild.md -2026-09-06-logical-session-storage-rebuild.md: 66a7163085e61418f18fcfd6b91c8bfcdde1d626 -2026-09-06-logical-session-storage-rebuild.zh.md: cf37e88f45ed62a9eddc533acca8806a2def3491 +/agent-note-logical-session-and-storage-rebuild: + en: 035f8aa28d4fb486 + zh: 4fa5eef40371cf2f +/agent-note-logical-session-and-storage-rebuild/problem: + en: fe3de6c728124b77 + zh: a28e89b8fee09662 +/agent-note-logical-session-and-storage-rebuild/proposal: + en: 68347f4cef24d57d + zh: e11eaec209be63c6 +/agent-note-logical-session-and-storage-rebuild/stage-1-one-public-logical-session-interface: + en: 27e8e604c508ca73 + zh: 70247d9608e139a4 +/agent-note-logical-session-and-storage-rebuild/stage-1-one-public-logical-session-interface/public-model: + en: add476512bd9ef36 + zh: a8a5225ccd22ec07 +/agent-note-logical-session-and-storage-rebuild/stage-1-one-public-logical-session-interface/stage-1-substages: + en: 9b28d667b2fd1b28 + zh: be44f9f96f698bf2 +/agent-note-logical-session-and-storage-rebuild/stage-1-one-public-logical-session-interface/stage-progress: + en: 4903b4362660063e + zh: ba06aeb34539ef8d +/agent-note-logical-session-and-storage-rebuild/stage-1-one-public-logical-session-interface/invariants: + en: 81fc51ad0abe4f65 + zh: a9dad4cb9d5905a1 +/agent-note-logical-session-and-storage-rebuild/stage-1-one-public-logical-session-interface/enforcement-and-completion: + en: ca6c3e02033b0d01 + zh: 54a89a7e47c2d282 +/agent-note-logical-session-and-storage-rebuild/destination-architecture: + en: e0b4199ec0d5a669 + zh: abc06df82b3f357e +/agent-note-logical-session-and-storage-rebuild/destination-architecture/ownership-rules: + en: cf9d6e20f25929ff + zh: 46c0f13a1f562e0f +/agent-note-logical-session-and-storage-rebuild/destination-architecture/later-stages: + en: d61edd7e232bcb44 + zh: f9065dd60d49bc13 +/agent-note-logical-session-and-storage-rebuild/compatibility-and-non-goals: + en: bf81660f7d4638fa + zh: 4d59310d2e6476fd +/agent-note-logical-session-and-storage-rebuild/references: + en: 32c7669fd961ad1a + zh: 09dca97558a3e7b0 +/agent-note-logical-session-and-storage-rebuild/alternatives-considered: + en: 4bc014b676d93c13 + zh: 1e0a04856da60bb0 +/agent-note-logical-session-and-storage-rebuild/acceptance-criteria: + en: 1a9dfc903efe9627 + zh: f23ff556ffa33f64 +/agent-note-logical-session-and-storage-rebuild/risks: + en: 0916205231867aff + zh: 6efe11a2375d5459 diff --git a/.agents/notes/proposed/architecture/2026-09-10-session-capability-protocols.i18n.yaml b/.agents/notes/proposed/architecture/2026-09-10-session-capability-protocols.i18n.yaml index 70f55ab524..39ee8dfa14 100644 --- a/.agents/notes/proposed/architecture/2026-09-10-session-capability-protocols.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-09-10-session-capability-protocols.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-session-capability-protocols.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-09-10-session-capability-protocols.md -2026-09-10-session-capability-protocols.md: 6cdc920745d6c98aa10326d1f8e5a4acec3b523d -2026-09-10-session-capability-protocols.zh.md: a242edd419ecbb36556f85aa2d537fe78f68afff +/agent-note-session-capability-protocols: + en: ca990e74165b25e8 + zh: f6749481ec3787e9 +/agent-note-session-capability-protocols/problem: + en: dc259b9d03444112 + zh: 3f7ea3fc166f4f8d +/agent-note-session-capability-protocols/proposal: + en: 31089a7378fdbbae + zh: e4aa40eb444526d0 +/agent-note-session-capability-protocols/proposal/developer-convention-during-migration: + en: 0756ce3afbe3837a + zh: 22ab431cb95405a7 +/agent-note-session-capability-protocols/proposal/logicalsession: + en: f20d151670c882c5 + zh: 91eeebffb10341b8 +/agent-note-session-capability-protocols/proposal/sessionservice: + en: ab0c6458dc1b1fc6 + zh: bf42ff2c99045342 +/agent-note-session-capability-protocols/proposal/sessionstorage: + en: 2090c7003fe92f52 + zh: 4d84b58cc91b73cc +/agent-note-session-capability-protocols/proposal/sessionprojectionport: + en: 030ee3198b7b9e68 + zh: 4267622d67cfd5a1 +/agent-note-session-capability-protocols/proposal/sessionquery: + en: 6da206b02c1eb698 + zh: 347248e3fa322df9 +/agent-note-session-capability-protocols/proposal/overall-architecture: + en: 68e046f0f22eb8d6 + zh: 851c3034df623b3a +/agent-note-session-capability-protocols/proposal/dependency-rule: + en: 6ce178b8e50dbbf4 + zh: 60e0a37b1caa2d3f +/agent-note-session-capability-protocols/alternatives-considered: + en: 4dd5911de0859b8f + zh: 5ba12aa6ba4effbb +/agent-note-session-capability-protocols/acceptance-criteria: + en: 82bfc842f7a0e82e + zh: 1d7bcd72be514e25 +/agent-note-session-capability-protocols/risks: + en: f8c5864d4518322b + zh: 619ef9e236515bf8 diff --git a/.agents/notes/proposed/architecture/2026-09-10-session-data-compatibility.i18n.yaml b/.agents/notes/proposed/architecture/2026-09-10-session-data-compatibility.i18n.yaml index ecc2f6cbfa..7d4523b550 100644 --- a/.agents/notes/proposed/architecture/2026-09-10-session-data-compatibility.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-09-10-session-data-compatibility.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-session-data-compatibility.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-09-10-session-data-compatibility.md -2026-09-10-session-data-compatibility.md: 5784ca2a3ae3bae91030c177a8eca3c08f93c8af -2026-09-10-session-data-compatibility.zh.md: 39e5e071703653d9a83d38420d929c0b8a310f68 +/agent-note-session-historical-data-compatibility: + en: bcc2d17eb800361c + zh: 8f74cc9e1c9f3729 +/agent-note-session-historical-data-compatibility/problem: + en: d125f39227dc17ee + zh: ab83089486d70796 +/agent-note-session-historical-data-compatibility/proposal: + en: 986dd8097aac4d3d + zh: 986dd8097aac4d3d +/agent-note-session-historical-data-compatibility/proposal/start-with-0-1-5-rc-1-v3: + en: c0f09bb8e2c3aac5 + zh: 4b7c8d3b1d1a0f76 +/agent-note-session-historical-data-compatibility/proposal/effect-on-ordinary-users: + en: 7e8616cc65f825e3 + zh: db9e5a3e1090985e +/agent-note-session-historical-data-compatibility/proposal/invariants-after-provider-replacement: + en: c3a8bb8665ca6d95 + zh: 96a4b52c31fcc19d +/agent-note-session-historical-data-compatibility/alternatives-considered: + en: 8d34713ac1ca54ea + zh: 25b01743baa11434 +/agent-note-session-historical-data-compatibility/acceptance-criteria: + en: abd8b41ca33f4398 + zh: 54865a11723b670f +/agent-note-session-historical-data-compatibility/risks: + en: 2cb87e77f846c8fe + zh: e4e2f7eae02e0a7e diff --git a/.agents/notes/proposed/architecture/2026-09-10-session-developer-transition.i18n.yaml b/.agents/notes/proposed/architecture/2026-09-10-session-developer-transition.i18n.yaml index 5c8fb0f4fb..074a3d3a03 100644 --- a/.agents/notes/proposed/architecture/2026-09-10-session-developer-transition.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-09-10-session-developer-transition.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-session-developer-transition.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-09-10-session-developer-transition.md -2026-09-10-session-developer-transition.md: cde78cbc2005435c48c823b2902da5e9e129d131 -2026-09-10-session-developer-transition.zh.md: a20cb8d4ef0c10fe0abfe25c7189d2f0eb43333c +/agent-note-session-developer-transition-rules: + en: e5554b1d8a98818d + zh: e1ed935f755924b6 +/agent-note-session-developer-transition-rules/problem: + en: bc0c73010718f890 + zh: a8e3ea46366c1c7a +/agent-note-session-developer-transition-rules/proposal: + en: 1f1df17eaf8f96d8 + zh: 1b767d61d3e2e641 +/agent-note-session-developer-transition-rules/proposal/maintenance-rules: + en: 269be7b0b4066b52 + zh: f61684ac468d00ef +/agent-note-session-developer-transition-rules/proposal/common-operation-migrations: + en: 62cc198142f1477f + zh: 37e806f78817e5e3 +/agent-note-session-developer-transition-rules/proposal/how-a-new-contributor-starts: + en: 0fcd7c50d5659978 + zh: 8ada6e3a6f3d6cb3 +/agent-note-session-developer-transition-rules/alternatives-considered: + en: dc22bb7bfbf8cb80 + zh: 8c3bcbe5b1caf20e +/agent-note-session-developer-transition-rules/acceptance-criteria: + en: 630c5d3985fee1e2 + zh: cd107c748ec702ef +/agent-note-session-developer-transition-rules/risks: + en: 4719bc8122ee39fa + zh: 30eaecfd796deba8 diff --git a/.agents/notes/proposed/architecture/2026-09-10-session-refactor-faq.i18n.yaml b/.agents/notes/proposed/architecture/2026-09-10-session-refactor-faq.i18n.yaml index f6433da311..649538063a 100644 --- a/.agents/notes/proposed/architecture/2026-09-10-session-refactor-faq.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-09-10-session-refactor-faq.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-10-session-refactor-faq.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-09-10-session-refactor-faq.md -2026-09-10-session-refactor-faq.md: cae6dbaaf0354836c34d1414da16f7b274da382e -2026-09-10-session-refactor-faq.zh.md: b0d5099250d439a133ca80b6f555d78541906367 +/agent-note-session-refactor-faq: + en: e51be5edaac914bc + zh: 2e3ef4006e0ab07d +/agent-note-session-refactor-faq/problem: + en: dd6312b4ffd1f4b4 + zh: 16d132992aaf81fc +/agent-note-session-refactor-faq/proposal: + en: 986dd8097aac4d3d + zh: 986dd8097aac4d3d +/agent-note-session-refactor-faq/proposal/why-logicalsession: + en: f3826d6dba15dd3f + zh: c5f63ae9322dd924 +/agent-note-session-refactor-faq/proposal/is-concrete-session-forbidden-immediately: + en: 129c7ac82e23e811 + zh: 834033794db12916 +/agent-note-session-refactor-faq/proposal/how-do-sessionservice-and-sessionstorage-differ: + en: 2dec5b2809ca1ea8 + zh: d6446f78a2da0e0d +/agent-note-session-refactor-faq/proposal/where-does-projection-fit: + en: 6b2ce6773bdd958b + zh: c59f2e6fcea57417 +/agent-note-session-refactor-faq/proposal/why-no-sessionsearch-or-sessionstats: + en: 49016cb52c419fa0 + zh: 1d7ad3a8d23a7d0c +/agent-note-session-refactor-faq/proposal/must-ordinary-users-migrate: + en: 561adffeb62beb3e + zh: bc11f602e9bc6a87 +/agent-note-session-refactor-faq/proposal/what-is-complete: + en: 7693e479cc3d69f2 + zh: ed827338c03c0c01 +/agent-note-session-refactor-faq/proposal/how-can-i-contribute: + en: 4fb0e060d2a6648b + zh: 03f0039e1bc32437 +/agent-note-session-refactor-faq/alternatives-considered: + en: bd143e9bcef3df2c + zh: c20c997563d10d6a +/agent-note-session-refactor-faq/acceptance-criteria: + en: a78f08bcf0c0af46 + zh: 5aa2b6952969705d +/agent-note-session-refactor-faq/risks: + en: e0db80998e7b18b4 + zh: fd6b75e582d743ed diff --git a/.agents/notes/proposed/architecture/2026-09-14-composer-model-and-draft-editor.i18n.yaml b/.agents/notes/proposed/architecture/2026-09-14-composer-model-and-draft-editor.i18n.yaml index 19ee105187..25000b2e09 100644 --- a/.agents/notes/proposed/architecture/2026-09-14-composer-model-and-draft-editor.i18n.yaml +++ b/.agents/notes/proposed/architecture/2026-09-14-composer-model-and-draft-editor.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-14-composer-model-and-draft-editor.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/architecture/2026-09-14-composer-model-and-draft-editor.md -2026-09-14-composer-model-and-draft-editor.md: 3f66ab2c73da0a8f66bf43a821cbe5f85363867a -2026-09-14-composer-model-and-draft-editor.zh.md: aa040b0fa68961d4d5884d73791c4986b8bfab50 +/agent-note-two-stage-composer-and-drafteditor-isolation: + en: 28f1ad8c58451112 + zh: f54f43862019e385 +/agent-note-two-stage-composer-and-drafteditor-isolation/problem: + en: 6316522fcd01a9bc + zh: aa6e339e8b528a5b +/agent-note-two-stage-composer-and-drafteditor-isolation/proposal: + en: fbd8d96d050a288c + zh: d312590845174596 +/agent-note-two-stage-composer-and-drafteditor-isolation/proposal/stage-one-five-mechanical-responsibility-extractions: + en: 3add548b95979d3c + zh: c6eab5274037e6b5 +/agent-note-two-stage-composer-and-drafteditor-isolation/proposal/stage-one-five-mechanical-responsibility-extractions/stage-one-invariants: + en: b61469dcd7c9e0fe + zh: 345fca4cb1dc717b +/agent-note-two-stage-composer-and-drafteditor-isolation/proposal/stage-one-five-mechanical-responsibility-extractions/isolation-actually-achieved-in-stage-one: + en: e1e3c2479f2a7e0c + zh: be094599bb90868b +/agent-note-two-stage-composer-and-drafteditor-isolation/proposal/stage-two-behavior-changes-only: + en: 15c72b9d93a8b1bc + zh: a565969f4ec3b00a +/agent-note-two-stage-composer-and-drafteditor-isolation/proposal/stage-two-behavior-changes-only/final-state-ownership: + en: fc9cb7b515ed6fd6 + zh: ca7ac114f93852b9 +/agent-note-two-stage-composer-and-drafteditor-isolation/proposal/stage-two-behavior-changes-only/shared-content-and-synchronization-requirements: + en: 60385537149da946 + zh: 80f4aa1454efdf43 +/agent-note-two-stage-composer-and-drafteditor-isolation/alternatives-considered: + en: e0a41f0e65c4c94c + zh: fac372d2c4c2c740 +/agent-note-two-stage-composer-and-drafteditor-isolation/acceptance-criteria: + en: f9a42d215fc000fa + zh: e6f1735e6ed73279 +/agent-note-two-stage-composer-and-drafteditor-isolation/risks: + en: e01daa84a5d58247 + zh: 41def722300784a8 diff --git a/.agents/notes/proposed/bug-fix/2026-08-20-attachment-read-quarantine.i18n.yaml b/.agents/notes/proposed/bug-fix/2026-08-20-attachment-read-quarantine.i18n.yaml index b53d43cdc7..387e34fc96 100644 --- a/.agents/notes/proposed/bug-fix/2026-08-20-attachment-read-quarantine.i18n.yaml +++ b/.agents/notes/proposed/bug-fix/2026-08-20-attachment-read-quarantine.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-20-attachment-read-quarantine.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/bug-fix/2026-08-20-attachment-read-quarantine.md -2026-08-20-attachment-read-quarantine.md: 28e0f26cee2ec1e257fd4d43b4edc4300e2c6f23 -2026-08-20-attachment-read-quarantine.zh.md: 7f4ceae4e1fe9e656ed762de9828e14145976dc3 +/agent-note-quarantine-unreadable-historical-attachments: + en: 044cc37c349ad018 + zh: ba3336ebf923aeeb +/agent-note-quarantine-unreadable-historical-attachments/problem: + en: 8652fbd5afd34170 + zh: b6399f48311b0a7d +/agent-note-quarantine-unreadable-historical-attachments/proposal: + en: 2a7c272551d37bba + zh: cf58b062d716d301 +/agent-note-quarantine-unreadable-historical-attachments/alternatives-considered: + en: bac910fed94331cd + zh: 6e9ea388c407e3a7 +/agent-note-quarantine-unreadable-historical-attachments/acceptance-criteria: + en: 862b6f6077457010 + zh: 0b4fad8dc4cb0f46 +/agent-note-quarantine-unreadable-historical-attachments/risks: + en: 17a076b575e981e9 + zh: 15961b94d93cffac diff --git a/.agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.i18n.yaml b/.agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.i18n.yaml index fff61a1e56..8d5b683f9e 100644 --- a/.agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.i18n.yaml +++ b/.agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-30-pre-tool-input-rewrite.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.md -2026-06-30-pre-tool-input-rewrite.md: a42b05ac7d2b4d5808807a5810b9e0c4354333a5 -2026-06-30-pre-tool-input-rewrite.zh.md: 8ef07ea7b6ca446b796c3977d5c87a1e7c49917a +/agent-note-pre-tool-input-rewrite-a-consistent-design: + en: 28be5a60d0f8f70d + zh: 2ade899f45347755 +/agent-note-pre-tool-input-rewrite-a-consistent-design/problem: + en: 1e84d54d317750ed + zh: 5436c2f44569ab52 +/agent-note-pre-tool-input-rewrite-a-consistent-design/the-problem-three-readers-of-pre-execution-arguments: + en: bdc0958b87dbd888 + zh: 0364cad8a5727306 +/agent-note-pre-tool-input-rewrite-a-consistent-design/proposal: + en: b08ad378beb60572 + zh: cb6797c7a0021e9d +/agent-note-pre-tool-input-rewrite-a-consistent-design/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 76136ef5249c23eb +/agent-note-pre-tool-input-rewrite-a-consistent-design/alternatives-considered/why-not-mutate-the-execution-object: + en: 4ef997690f716c9a + zh: f73cdc2154aa5596 +/agent-note-pre-tool-input-rewrite-a-consistent-design/acceptance-criteria: + en: 4e2d12fbc5ad21b3 + zh: fe3a0dace0073283 +/agent-note-pre-tool-input-rewrite-a-consistent-design/risks: + en: ed597673c0102d5c + zh: 2c0fafaa9a093fd0 +/agent-note-pre-tool-input-rewrite-a-consistent-design/open-questions: + en: abf5adcd6d2effbd + zh: 5fdb48fefd55e2c0 diff --git a/.agents/notes/proposed/feature/2026-07-06-recallable-compaction.i18n.yaml b/.agents/notes/proposed/feature/2026-07-06-recallable-compaction.i18n.yaml index d324ff433c..0c37e50f9c 100644 --- a/.agents/notes/proposed/feature/2026-07-06-recallable-compaction.i18n.yaml +++ b/.agents/notes/proposed/feature/2026-07-06-recallable-compaction.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-06-recallable-compaction.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/feature/2026-07-06-recallable-compaction.md -2026-07-06-recallable-compaction.md: 07b89116b72a1c1aac2d79ee5aa41ff6e5d02a4c -2026-07-06-recallable-compaction.zh.md: 7347cb08c94665a6e5bb88655ec08d04921d08eb +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall: + en: 597e215825c64eb9 + zh: 1986c2ec32437386 +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/problem: + en: 98419c56fc9d4f6f + zh: 30271b2ad21dc596 +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal: + en: d9f2a7ca462c8ee8 + zh: fa029cf95c64e6e6 +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/frozen-index-checkpoints: + en: 8325d916c340ce7e + zh: 8fa9e02b9736c5de +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/the-state-checkpoint: + en: 58fa7358424ce606 + zh: 37e3e0d908c9804c +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/pass-execution: + en: 0bbddf585af7054d + zh: 6a1d4cb86fe1609a +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/the-recall-tools: + en: 650caf9087704463 + zh: 8b1ba814af60e92e +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/cache-and-cost: + en: 5478157a8990200d + zh: 248d5a948cd980bf +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/packaging: + en: be69bf9a59318b82 + zh: 8ba115c958a760ad +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/relation-to-in-flight-work: + en: 649b2f91f7ec6bf0 + zh: e6868d911560ddbd +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/proposal/follow-ups: + en: ddef3c8ee8af0a71 + zh: 4d242940dbb34e50 +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/alternatives-considered: + en: 927ef2505cfd6596 + zh: 9c84668ec8e7cbdd +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/acceptance-criteria: + en: 05c76d5a5decad92 + zh: dd7f5d352e08942e +/agent-note-recallable-compaction-index-checkpoints-a-state-checkpoint-and-in-session-history-recall/risks: + en: f505f9cf132d577f + zh: e68dfd7273f71b21 diff --git a/.agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.i18n.yaml b/.agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.i18n.yaml index 80b3caab4e..a142187273 100644 --- a/.agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.i18n.yaml +++ b/.agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-08-interactive-side-sessions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.md -2026-07-08-interactive-side-sessions.md: 53b21497c92a77f075dd146151a6d953ecfc7a8b -2026-07-08-interactive-side-sessions.zh.md: 439d9c4d1a275255f5962028be2bd24d5f829bc6 +/agent-note-interactive-side-sessions-and-merge-back: + en: a200e33a65a4f530 + zh: 47d02d3736310892 +/agent-note-interactive-side-sessions-and-merge-back/problem: + en: 181d0078a702fdf2 + zh: ad1bff4f82fafdf3 +/agent-note-interactive-side-sessions-and-merge-back/proposal: + en: 5fa7d2000db6b265 + zh: a892b74299e0f984 +/agent-note-interactive-side-sessions-and-merge-back/alternatives-considered: + en: de50cab213a61b91 + zh: 85b912193092dfe2 +/agent-note-interactive-side-sessions-and-merge-back/acceptance-criteria: + en: 17d0937a1f28b1ac + zh: 9710ab0af3268da1 +/agent-note-interactive-side-sessions-and-merge-back/risks: + en: 86f12d62580d8d98 + zh: 8c39be21a1e3958f diff --git a/.agents/notes/proposed/feature/2026-08-04-task-surface.i18n.yaml b/.agents/notes/proposed/feature/2026-08-04-task-surface.i18n.yaml index d5cb5514e9..faa5a8965e 100644 --- a/.agents/notes/proposed/feature/2026-08-04-task-surface.i18n.yaml +++ b/.agents/notes/proposed/feature/2026-08-04-task-surface.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-04-task-surface.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/feature/2026-08-04-task-surface.md -2026-08-04-task-surface.md: 749ce9e40eea7aeb7a813dc6b2d4c139cf00ac44 -2026-08-04-task-surface.zh.md: 4a63e671ffe05c80dd8bc8ed3a49ab6ff5c44b7e +/agent-note-task-surface-for-structured-session-interaction: + en: fd53b5c7554236fc + zh: 6ff988716b5624cf +/agent-note-task-surface-for-structured-session-interaction/problem: + en: a4c96dae864a027e + zh: 432e6de734832966 +/agent-note-task-surface-for-structured-session-interaction/proposal: + en: 7f8d02649159a3a6 + zh: f63982864b6ad943 +/agent-note-task-surface-for-structured-session-interaction/declarative-model: + en: 9650ef8f65049b7d + zh: c0925b701a6b681c +/agent-note-task-surface-for-structured-session-interaction/tool-and-presentation-contract: + en: 836a14533a918d95 + zh: 0522d458992c5355 +/agent-note-task-surface-for-structured-session-interaction/submission-contract: + en: 480c434bc0825063 + zh: bbcace61f8d82188 +/agent-note-task-surface-for-structured-session-interaction/lifecycle-and-recovery: + en: 26beff219ebb0ce9 + zh: 664d4c76adf56175 +/agent-note-task-surface-for-structured-session-interaction/package-boundaries-and-dependencies: + en: 02aad87dd24d822f + zh: 9d49b5fa588e5e11 +/agent-note-task-surface-for-structured-session-interaction/delivery-stages: + en: 25d0951356cf412d + zh: 994619aaab7c2348 +/agent-note-task-surface-for-structured-session-interaction/alternatives-considered: + en: 121ceb5920763980 + zh: 7d7c1576faf4f331 +/agent-note-task-surface-for-structured-session-interaction/acceptance-criteria: + en: e5db6c885617dd5d + zh: 0a54a00d2a195bfb +/agent-note-task-surface-for-structured-session-interaction/risks: + en: 84a297fcdef9aaad + zh: a9ce38547d650e55 diff --git a/.agents/notes/proposed/feature/2026-09-08-desktop-mandatory-update-api.i18n.yaml b/.agents/notes/proposed/feature/2026-09-08-desktop-mandatory-update-api.i18n.yaml index a928ba5315..d49e11a253 100644 --- a/.agents/notes/proposed/feature/2026-09-08-desktop-mandatory-update-api.i18n.yaml +++ b/.agents/notes/proposed/feature/2026-09-08-desktop-mandatory-update-api.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-desktop-mandatory-update-api.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/feature/2026-09-08-desktop-mandatory-update-api.md -2026-09-08-desktop-mandatory-update-api.md: f88216065fe09221c7a14805e4d25fb97a259abc -2026-09-08-desktop-mandatory-update-api.zh.md: cb3e631040d221b87979b7fcd379c8881dba36bd +/agent-note-desktop-mandatory-update-api: + en: c0ea3f7826d8e253 + zh: 89feec8209a54f26 +/agent-note-desktop-mandatory-update-api/problem: + en: cc14e499c0f87586 + zh: 4cf849710b782d4b +/agent-note-desktop-mandatory-update-api/proposal: + en: 264c54ffe91f3193 + zh: 005512e1c498ccc1 +/agent-note-desktop-mandatory-update-api/proposal/endpoint-and-access: + en: 6c82820724930bb5 + zh: 5f6a0bbfd6fb6b16 +/agent-note-desktop-mandatory-update-api/proposal/request: + en: d015126512123574 + zh: a77e66d4f1808402 +/agent-note-desktop-mandatory-update-api/proposal/no-mandatory-update: + en: 4814b1bd7002d6ed + zh: 3f0d77beb046e2fc +/agent-note-desktop-mandatory-update-api/proposal/mandatory-update: + en: d3ae240665143695 + zh: 486115cd2fdf35ed +/agent-note-desktop-mandatory-update-api/proposal/errors-and-policy-matching: + en: 5da5e6a38a739201 + zh: 5af5743f9f162dd4 +/agent-note-desktop-mandatory-update-api/proposal/policy-publication-and-current-decisions: + en: d4d70e1541b2c2d1 + zh: a1b6e62a05b239be +/agent-note-desktop-mandatory-update-api/proposal/capacity-and-caching: + en: d176fc8d0eb355db + zh: b9f60de3e4f0a3fc +/agent-note-desktop-mandatory-update-api/alternatives-considered: + en: 1b69fd084869fb38 + zh: 90efcd2484f5a175 +/agent-note-desktop-mandatory-update-api/acceptance-criteria: + en: 6708b52f0c474ca7 + zh: 0ce9c9d3aa2e82c7 +/agent-note-desktop-mandatory-update-api/risks: + en: a5689674032b188e + zh: 06b83a878fba55b3 diff --git a/.agents/notes/proposed/feature/2026-09-08-desktop-update-extensions.i18n.yaml b/.agents/notes/proposed/feature/2026-09-08-desktop-update-extensions.i18n.yaml index 7119122de4..ce51330f2a 100644 --- a/.agents/notes/proposed/feature/2026-09-08-desktop-update-extensions.i18n.yaml +++ b/.agents/notes/proposed/feature/2026-09-08-desktop-update-extensions.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-desktop-update-extensions.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/feature/2026-09-08-desktop-update-extensions.md -2026-09-08-desktop-update-extensions.md: 6c8a2ebe4a38809f6c3a7fb4741b3520111402c6 -2026-09-08-desktop-update-extensions.zh.md: 06096c8b28136ab2e22325857021926e06b3b17e +/agent-note-deferred-desktop-update-extensions: + en: 01b20c9e8c51f739 + zh: 2b2ef6d0d38d3d19 +/agent-note-deferred-desktop-update-extensions/problem: + en: da98b267b01e4829 + zh: 0ae373bd57094e74 +/agent-note-deferred-desktop-update-extensions/proposal: + en: eb4ae06bfef53a90 + zh: f40702aa6a557792 +/agent-note-deferred-desktop-update-extensions/proposal/independent-revisions: + en: 403bd786a8411349 + zh: c44584e8a7e5b74a +/agent-note-deferred-desktop-update-extensions/proposal/stable-subscription-and-channel-switching: + en: f39b1ed0d941d372 + zh: 05b9a006c9ec0d3c +/agent-note-deferred-desktop-update-extensions/proposal/automatic-installation-setting: + en: 758d49f0a7dc6707 + zh: ddb0bfe616eb93bc +/agent-note-deferred-desktop-update-extensions/proposal/next-launch-installation: + en: 606f1eea66d829f7 + zh: d72108d762a58957 +/agent-note-deferred-desktop-update-extensions/proposal/updater-dependency-qualification: + en: c1a508d15bbc37e8 + zh: 63e7648130377fbb +/agent-note-deferred-desktop-update-extensions/proposal/multiple-pending-versions: + en: e6cf3f78703ebd25 + zh: 63e473e8949df81a +/agent-note-deferred-desktop-update-extensions/proposal/cache-invalidation-and-revocation: + en: 22c2d3aa60611f71 + zh: 27c6c0128effac56 +/agent-note-deferred-desktop-update-extensions/alternatives-considered: + en: 699aca5ea4c3e894 + zh: 2306f90a6819d711 +/agent-note-deferred-desktop-update-extensions/acceptance-criteria: + en: cc1a2d1972f483ce + zh: 8f9d654387e76df0 +/agent-note-deferred-desktop-update-extensions/risks: + en: 1422bf65f3ea6e3b + zh: bc6d7c1a39ffbbf5 diff --git a/.agents/notes/proposed/feature/2026-09-08-desktop-update-policy-and-installation.i18n.yaml b/.agents/notes/proposed/feature/2026-09-08-desktop-update-policy-and-installation.i18n.yaml index 838cbee511..11052cfad3 100644 --- a/.agents/notes/proposed/feature/2026-09-08-desktop-update-policy-and-installation.i18n.yaml +++ b/.agents/notes/proposed/feature/2026-09-08-desktop-update-policy-and-installation.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-08-desktop-update-policy-and-installation.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/feature/2026-09-08-desktop-update-policy-and-installation.md -2026-09-08-desktop-update-policy-and-installation.md: fa88a7dd798e050d658969ad586bd86e0ac323df -2026-09-08-desktop-update-policy-and-installation.zh.md: d9dc74f66a72dceeafd119fac9e491b3c2a29aa1 +/agent-note-desktop-update-policy-and-installation: + en: 250865822f42a08a + zh: f7fab178a4835c04 +/agent-note-desktop-update-policy-and-installation/problem: + en: 96e7c7a206e06f15 + zh: 189133653543a98c +/agent-note-desktop-update-policy-and-installation/proposal: + en: 73b06c4b868250d5 + zh: 947419d367f6c7e9 +/agent-note-desktop-update-policy-and-installation/proposal/release-and-backend-qualification: + en: 03612a65e4a65939 + zh: 4d45467930e9f364 +/agent-note-desktop-update-policy-and-installation/proposal/open-product-choices: + en: 1ced7c2ababf429f + zh: 9879fba6f288236c +/agent-note-desktop-update-policy-and-installation/proposal/cdn-and-capacity-qualification: + en: a857e8c566e0cbd2 + zh: 6b4fd99b7482c2b1 +/agent-note-desktop-update-policy-and-installation/alternatives-considered: + en: ff419f29cfc6702b + zh: dc79b9d3d9bef98f +/agent-note-desktop-update-policy-and-installation/acceptance-criteria: + en: db7d20578a44d2ca + zh: 81b71132c9c08725 +/agent-note-desktop-update-policy-and-installation/risks: + en: c518abbbfd98b9ca + zh: 0d325d2b825eee87 diff --git a/.agents/notes/proposed/process/2026-06-11-api-extractor-reports.i18n.yaml b/.agents/notes/proposed/process/2026-06-11-api-extractor-reports.i18n.yaml index 834ddaf3ac..e1f8080e43 100644 --- a/.agents/notes/proposed/process/2026-06-11-api-extractor-reports.i18n.yaml +++ b/.agents/notes/proposed/process/2026-06-11-api-extractor-reports.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-api-extractor-reports.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/process/2026-06-11-api-extractor-reports.md -2026-06-11-api-extractor-reports.md: 2aee524596a5b798591fecded539a8d2236a3d96 -2026-06-11-api-extractor-reports.zh.md: e62b6168efac5c8296b55ff8ee0c7861d1849d31 +/agent-note-api-extractor-reports: + en: 5bf55ca547e54ed9 + zh: 62bc2de82f342803 +/agent-note-api-extractor-reports/problem: + en: 1155ed0bd1964b95 + zh: 4d00955e7602b8b4 +/agent-note-api-extractor-reports/proposal: + en: bdf121c8a35a7cf6 + zh: 106d7be6dba363cf +/agent-note-api-extractor-reports/alternatives-considered: + en: 36a7bef28b50f0a1 + zh: 1051720fd8c30f7a +/agent-note-api-extractor-reports/acceptance-criteria: + en: b3dd74eab1781311 + zh: 63fd46fd11656832 +/agent-note-api-extractor-reports/risks: + en: 21838e31d29b87fb + zh: c72c81ef53b090e0 +/agent-note-api-extractor-reports/why-deferred: + en: e2a8a7c13f4db704 + zh: aeae101a9a77d677 diff --git a/.agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.i18n.yaml b/.agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.i18n.yaml index adce053a55..d5fe12dd4d 100644 --- a/.agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.i18n.yaml +++ b/.agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-supply-chain-and-vendor-drift.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.md -2026-06-11-supply-chain-and-vendor-drift.md: aecab81292e8d6eb59fe13a5530ba78de9b307a5 -2026-06-11-supply-chain-and-vendor-drift.zh.md: ba55b3b1815c8164650dd4aa5022dd4f98efd6a4 +/agent-note-supply-chain-checks-and-vendor-drift-verification: + en: 14763706c0292472 + zh: bc846b9df1cd559c +/agent-note-supply-chain-checks-and-vendor-drift-verification/problem: + en: 2668c33c520ba25e + zh: 5dbb2e8a25cc50cd +/agent-note-supply-chain-checks-and-vendor-drift-verification/proposal: + en: c9f9e2ebf0e66922 + zh: 2c1ed4bc35bc2d90 +/agent-note-supply-chain-checks-and-vendor-drift-verification/plan: + en: c52921928996b2f0 + zh: 6c0ae36667b1bf44 +/agent-note-supply-chain-checks-and-vendor-drift-verification/alternatives-considered: + en: 39f18421ca3a9c3d + zh: 5923ddb6c420e56f +/agent-note-supply-chain-checks-and-vendor-drift-verification/acceptance-criteria: + en: e770eb9ebced47d1 + zh: df915bb02264be7a +/agent-note-supply-chain-checks-and-vendor-drift-verification/risks: + en: 515f9c9dd5ef7c20 + zh: a8358875334b2c64 diff --git a/.agents/notes/proposed/process/2026-06-20-discover-package-inventory.i18n.yaml b/.agents/notes/proposed/process/2026-06-20-discover-package-inventory.i18n.yaml index f673045a49..1a93b05ba6 100644 --- a/.agents/notes/proposed/process/2026-06-20-discover-package-inventory.i18n.yaml +++ b/.agents/notes/proposed/process/2026-06-20-discover-package-inventory.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-20-discover-package-inventory.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/process/2026-06-20-discover-package-inventory.md -2026-06-20-discover-package-inventory.md: 81674dd4d1e6f1ca15491754fbb35f5262be9581 -2026-06-20-discover-package-inventory.zh.md: 2a782d07ddbefc1d80eef2825220de179428377b +/agent-note-discover-package-inventories-instead-of-maintaining-static-lists: + en: 3e6f3d4389b83ace + zh: dc84644418444fe6 +/agent-note-discover-package-inventories-instead-of-maintaining-static-lists/problem: + en: 3331c27d7f05a293 + zh: d3f87bd458a65f1d +/agent-note-discover-package-inventories-instead-of-maintaining-static-lists/proposal: + en: ce955aa355c15117 + zh: 4d6f464bd5336981 +/agent-note-discover-package-inventories-instead-of-maintaining-static-lists/acceptance-criteria: + en: 99944a56114596df + zh: ec13f47fb2deef94 +/agent-note-discover-package-inventories-instead-of-maintaining-static-lists/risks: + en: e2876e76daf10637 + zh: 01126163c6f15960 diff --git a/.agents/notes/proposed/process/2026-07-13-human-review-skill-maintenance.i18n.yaml b/.agents/notes/proposed/process/2026-07-13-human-review-skill-maintenance.i18n.yaml index 25abf497a8..766efdc8d0 100644 --- a/.agents/notes/proposed/process/2026-07-13-human-review-skill-maintenance.i18n.yaml +++ b/.agents/notes/proposed/process/2026-07-13-human-review-skill-maintenance.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-13-human-review-skill-maintenance.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/process/2026-07-13-human-review-skill-maintenance.md -2026-07-13-human-review-skill-maintenance.md: b741c8b595fcd36613cb246af483863d1e056697 -2026-07-13-human-review-skill-maintenance.zh.md: b43e05c79b60056f3f38eabb00dd5af9a3611c6e +/agent-note-periodic-human-review-maintenance-for-dsh-code-review: + en: 7c3dc085ce13a5e9 + zh: e24659d5088e7e46 +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/problem: + en: 7525ad5821b12c44 + zh: 7daef3ed8aa176e9 +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/proposal: + en: ea478f77c2f26d85 + zh: dc6208e15615d5af +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/proposal/acquisition-contract: + en: a95dea3f6b37af6f + zh: 29cfc8f03a8b487b +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/proposal/adoption-evidence: + en: f61dfd9e11b1e5a5 + zh: c87f245097c39fc7 +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/proposal/dual-reviewer-classification-and-drafting: + en: fe1f6987e5a7d4f7 + zh: 74d990935316e69b +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/proposal/reviewer-adapter-protocol: + en: baa824361e643e80 + zh: 15d5efb0a1ca2c11 +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/proposal/promotion-contract: + en: dd6810cf423430bc + zh: 0c81e470f64af150 +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/proposal/where-the-mechanism-lives: + en: 2f9ffbf8619445a9 + zh: 1dd0144e9a00d8fe +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/alternatives-considered: + en: 1673a2138ddd34c2 + zh: 81c91a50ea0703d6 +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/acceptance-criteria: + en: a9354faa1dc793a3 + zh: f0b8da665facaecc +/agent-note-periodic-human-review-maintenance-for-dsh-code-review/risks: + en: b26ffb43c1c35b3a + zh: c2c8b81a8317cd55 diff --git a/.agents/notes/proposed/process/2026-07-26-remove-packed-session-fixture-migrator.i18n.yaml b/.agents/notes/proposed/process/2026-07-26-remove-packed-session-fixture-migrator.i18n.yaml index 282663d336..de3a6b948b 100644 --- a/.agents/notes/proposed/process/2026-07-26-remove-packed-session-fixture-migrator.i18n.yaml +++ b/.agents/notes/proposed/process/2026-07-26-remove-packed-session-fixture-migrator.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-26-remove-packed-session-fixture-migrator.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/process/2026-07-26-remove-packed-session-fixture-migrator.md -2026-07-26-remove-packed-session-fixture-migrator.md: 0a29ef98828ac07d291392d637b0508937c9a9a6 -2026-07-26-remove-packed-session-fixture-migrator.zh.md: aa9aece710587cef6c84ad9cf078821a2506deb1 +/agent-note-remove-the-packed-session-fixture-branch-migrator: + en: 0a308bd6231fb8ad + zh: c72bd0f6f327fadd +/agent-note-remove-the-packed-session-fixture-branch-migrator/problem: + en: 26671139b244f2ad + zh: fb2bbcc283b6f108 +/agent-note-remove-the-packed-session-fixture-branch-migrator/proposal: + en: 6e9555d667a64807 + zh: 7d7d59ae0f8859c9 +/agent-note-remove-the-packed-session-fixture-branch-migrator/alternatives-considered: + en: 7066942e7b78faba + zh: 6174e50357d868c5 +/agent-note-remove-the-packed-session-fixture-branch-migrator/acceptance-criteria: + en: 2ea0da4f97ecec97 + zh: 308aed4607df56af +/agent-note-remove-the-packed-session-fixture-branch-migrator/risks: + en: ee7d26eb7287179b + zh: 96f2cf320cc1adc8 diff --git a/.agents/notes/proposed/process/2026-08-20-audience-first-documentation-quality.i18n.yaml b/.agents/notes/proposed/process/2026-08-20-audience-first-documentation-quality.i18n.yaml index 5f57698abb..e1371258e1 100644 --- a/.agents/notes/proposed/process/2026-08-20-audience-first-documentation-quality.i18n.yaml +++ b/.agents/notes/proposed/process/2026-08-20-audience-first-documentation-quality.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-20-audience-first-documentation-quality.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/process/2026-08-20-audience-first-documentation-quality.md -2026-08-20-audience-first-documentation-quality.md: 9e0c4a61408449100b79148a571cd740e4044040 -2026-08-20-audience-first-documentation-quality.zh.md: 0b6f1da54380f1d2d44afbe948131233def513cd +/agent-note-audience-first-documentation-quality-criteria: + en: 5fd84aa1a097f80f + zh: 073d973331b00ca4 +/agent-note-audience-first-documentation-quality-criteria/problem: + en: 86ee1c395115b7d2 + zh: 7fea995569331599 +/agent-note-audience-first-documentation-quality-criteria/problem/semantic-correctness-can-pass-without-a-current-owner: + en: d752be65975937fa + zh: f0c9a94ccff8e059 +/agent-note-audience-first-documentation-quality-criteria/problem/reader-success-is-implicit-rather-than-testable: + en: 9d7c94e84fdeea18 + zh: e315ae5d470d576b +/agent-note-audience-first-documentation-quality-criteria/problem/generated-accuracy-and-retrieval-quality-are-conflated: + en: ebca610981ca8519 + zh: df367b6ad77db2bd +/agent-note-audience-first-documentation-quality-criteria/problem/the-standard-has-no-room-for-its-next-rule: + en: 08014cdc897e21c2 + zh: b3fdc5236ee7144f +/agent-note-audience-first-documentation-quality-criteria/problem/baseline: + en: 43bd2079e17f92a0 + zh: 7f0553e1417eb759 +/agent-note-audience-first-documentation-quality-criteria/proposal: + en: 1f28c04d5002af94 + zh: 4d4dfea99fc6aee2 +/agent-note-audience-first-documentation-quality-criteria/proposal/prototype-rules: + en: 6ee5714bc0b33cda + zh: 587bd85f6f712868 +/agent-note-audience-first-documentation-quality-criteria/proposal/criteria-by-document-job: + en: 9abbe4f2d5038284 + zh: 45d30352d9cce4b5 +/agent-note-audience-first-documentation-quality-criteria/proposal/generated-reference-entry-and-detail-layers: + en: 2641ca1307c3308f + zh: 15fd0415d40a9190 +/agent-note-audience-first-documentation-quality-criteria/proposal/enforcement-slices: + en: c2f6617cf8b3bab4 + zh: b9ad3dae2fc50ddf +/agent-note-audience-first-documentation-quality-criteria/proposal/non-goals: + en: e8633d73b0273bfd + zh: 516e6d805158d303 +/agent-note-audience-first-documentation-quality-criteria/alternatives-considered: + en: 5f09627b84bf112b + zh: b0f1845df90e5f1a +/agent-note-audience-first-documentation-quality-criteria/acceptance-criteria: + en: 696ff7205b3362d0 + zh: a62a50cf3ceadac6 +/agent-note-audience-first-documentation-quality-criteria/risks: + en: b920900d3ff05073 + zh: 05b2a0271b825260 diff --git a/.agents/notes/proposed/process/2026-08-27-port-tool-owned-render.i18n.yaml b/.agents/notes/proposed/process/2026-08-27-port-tool-owned-render.i18n.yaml index 542aa17c63..38917672a7 100644 --- a/.agents/notes/proposed/process/2026-08-27-port-tool-owned-render.i18n.yaml +++ b/.agents/notes/proposed/process/2026-08-27-port-tool-owned-render.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-27-port-tool-owned-render.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/process/2026-08-27-port-tool-owned-render.md -2026-08-27-port-tool-owned-render.md: 4ab27142fdc2d13d7d152c21c2f246e340fb4711 -2026-08-27-port-tool-owned-render.zh.md: fe8a018235db59b6f3bf80eae45d3a25181f37ec +/agent-note-port-tool-owned-render-into-current-dsh-apis: + en: a13180eec1968793 + zh: e47a83ddb329de88 +/agent-note-port-tool-owned-render-into-current-dsh-apis/problem: + en: 3a3ceea534efabd1 + zh: f13f8531d1819b8a +/agent-note-port-tool-owned-render-into-current-dsh-apis/proposal: + en: a51c0e6f23d8d4d4 + zh: 1eecd0ed06685c40 +/agent-note-port-tool-owned-render-into-current-dsh-apis/alternatives-considered: + en: a2364e3fca0a06e5 + zh: a76370082e218154 +/agent-note-port-tool-owned-render-into-current-dsh-apis/acceptance-criteria: + en: 5e2815d18df000f9 + zh: 97845472646b1881 +/agent-note-port-tool-owned-render-into-current-dsh-apis/risks: + en: 4fa51a62af0a3fc5 + zh: d6f555a8a5d9120c diff --git a/.agents/notes/proposed/simplification/2026-09-17-defer-office-background-scheduling.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-17-defer-office-background-scheduling.i18n.yaml index 35fe5b54d9..0374d8ce64 100644 --- a/.agents/notes/proposed/simplification/2026-09-17-defer-office-background-scheduling.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-17-defer-office-background-scheduling.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-17-defer-office-background-scheduling.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-17-defer-office-background-scheduling.md -2026-09-17-defer-office-background-scheduling.md: 82311022a015671b9fb4cf3a0f3eba2714f325cd -2026-09-17-defer-office-background-scheduling.zh.md: ada0146f204fa40e71d48251c231c1b68c5fa5a1 +/agent-note-defer-office-background-scheduling-until-a-consumer-needs-it: + en: 9966b1c4fdb2585b + zh: 4eb24c283facf38d +/agent-note-defer-office-background-scheduling-until-a-consumer-needs-it/problem: + en: bb725ab25ff39f86 + zh: d198514119b31a61 +/agent-note-defer-office-background-scheduling-until-a-consumer-needs-it/proposal: + en: e33db390dbbcc86c + zh: 890df8891260103a +/agent-note-defer-office-background-scheduling-until-a-consumer-needs-it/alternatives-considered: + en: 597346036314c907 + zh: 91661d961623c7cd +/agent-note-defer-office-background-scheduling-until-a-consumer-needs-it/acceptance-criteria: + en: b475d4e83972fa02 + zh: 43de8f23a9346708 +/agent-note-defer-office-background-scheduling-until-a-consumer-needs-it/risks: + en: 4c2324c00381cbc7 + zh: dfe6d1068ac7560c diff --git a/.agents/notes/proposed/simplification/2026-09-19-config-only-hmr.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-config-only-hmr.i18n.yaml index c959db81ed..3b2501788a 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-config-only-hmr.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-config-only-hmr.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-config-only-hmr.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-config-only-hmr.md -2026-09-19-config-only-hmr.md: a5f447a8a426e9f2831a1292cae1132acab99023 -2026-09-19-config-only-hmr.zh.md: 24651aa310994b3fec4d925a84fe5d88ae6a5851 +/agent-note-limit-dsh-hmr-to-live-profile-configuration: + en: c46e2d07a9e6143f + zh: f75300d70300c324 +/agent-note-limit-dsh-hmr-to-live-profile-configuration/problem: + en: e81dd5edb54b05ad + zh: 601b28ef74134ac1 +/agent-note-limit-dsh-hmr-to-live-profile-configuration/proposal: + en: 15a88d4c7db728e2 + zh: 6fb1a28c03930a5e +/agent-note-limit-dsh-hmr-to-live-profile-configuration/alternatives-considered: + en: 9ca293c37f4df4af + zh: c8e1a8815e1c9d3f +/agent-note-limit-dsh-hmr-to-live-profile-configuration/acceptance-criteria: + en: ea1dbf4681f60fcf + zh: fa7b9f7888bfc24f +/agent-note-limit-dsh-hmr-to-live-profile-configuration/risks: + en: de00ca4e66cff7d0 + zh: fb82e77bd554c1f6 diff --git a/.agents/notes/proposed/simplification/2026-09-19-omit-fs-payload-invariant.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-omit-fs-payload-invariant.i18n.yaml index e582498d41..30d37e8252 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-omit-fs-payload-invariant.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-omit-fs-payload-invariant.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-omit-fs-payload-invariant.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-omit-fs-payload-invariant.md -2026-09-19-omit-fs-payload-invariant.md: e91fa1784aa99869e3d457f7fc25a330fbc43088 -2026-09-19-omit-fs-payload-invariant.zh.md: ba81baed5f7d7051ef22218d9d59180ac87c8a21 +/agent-note-omit-the-filesystem-payload-only-invariant-companion: + en: 6385aa079529c4f4 + zh: 602b99cea351125c +/agent-note-omit-the-filesystem-payload-only-invariant-companion/problem: + en: 4568d53b3ef69254 + zh: 66c9aea2ae3645e7 +/agent-note-omit-the-filesystem-payload-only-invariant-companion/proposal: + en: 2bfceaa480b6645d + zh: 3ad1060bf91ded74 +/agent-note-omit-the-filesystem-payload-only-invariant-companion/alternatives-considered: + en: d12fd1577a308af3 + zh: 56271794646f5a87 +/agent-note-omit-the-filesystem-payload-only-invariant-companion/acceptance-criteria: + en: 253009b93ce34c5b + zh: 2268e0303bd025d6 +/agent-note-omit-the-filesystem-payload-only-invariant-companion/risks: + en: 70c52f193d72d02d + zh: f30844e865ac4c27 diff --git a/.agents/notes/proposed/simplification/2026-09-19-provider-only-instruction-reads.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-provider-only-instruction-reads.i18n.yaml index 46510688ef..47b5014e29 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-provider-only-instruction-reads.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-provider-only-instruction-reads.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-provider-only-instruction-reads.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-provider-only-instruction-reads.md -2026-09-19-provider-only-instruction-reads.md: 26d004c136cff8deb155007cf8d7743bc8bba95a -2026-09-19-provider-only-instruction-reads.zh.md: 82f3451f96578f1ee596bf9291a1a3c935d5f698 +/agent-note-read-instruction-files-only-through-a-filesystem-provider: + en: 522a0143262cd96a + zh: 667e48df6cd37c61 +/agent-note-read-instruction-files-only-through-a-filesystem-provider/problem: + en: 5426489eed9b447e + zh: 97132891bfff4b41 +/agent-note-read-instruction-files-only-through-a-filesystem-provider/proposal: + en: 1f6d8ce78f5ab682 + zh: c71c97c0268ac165 +/agent-note-read-instruction-files-only-through-a-filesystem-provider/alternatives-considered: + en: c942573554ef1d63 + zh: 7af89ae9434f7521 +/agent-note-read-instruction-files-only-through-a-filesystem-provider/acceptance-criteria: + en: ea8f9800cfbea9e6 + zh: a3c07d3a09d0fff4 +/agent-note-read-instruction-files-only-through-a-filesystem-provider/risks: + en: f8b63ab7c6a924ab + zh: 753472b8491105f0 diff --git a/.agents/notes/proposed/simplification/2026-09-19-prune-stream-visibility-helpers.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-prune-stream-visibility-helpers.i18n.yaml index 6360d57daa..51801755e1 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-prune-stream-visibility-helpers.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-prune-stream-visibility-helpers.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-prune-stream-visibility-helpers.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-prune-stream-visibility-helpers.md -2026-09-19-prune-stream-visibility-helpers.md: e44716fe15eb0ff09020ff4417b1dd9f4e9c29f4 -2026-09-19-prune-stream-visibility-helpers.zh.md: 60d010f260a6cadc99a15bde164bb0717dd7502a +/agent-note-prune-unused-stream-visibility-helpers: + en: 5d82ce82cac8a687 + zh: 4cfc68fceb215e35 +/agent-note-prune-unused-stream-visibility-helpers/problem: + en: da5bf344b0d704c1 + zh: 6826b064d8b66373 +/agent-note-prune-unused-stream-visibility-helpers/proposal: + en: b6cec09bd23a2f5a + zh: ac348bbe47ea7cc9 +/agent-note-prune-unused-stream-visibility-helpers/alternatives-considered: + en: 1a190cf86a9f7ec9 + zh: 2a30aa235c69bdc7 +/agent-note-prune-unused-stream-visibility-helpers/acceptance-criteria: + en: ee2de1dbabc60983 + zh: d01c9f1e399266af +/agent-note-prune-unused-stream-visibility-helpers/risks: + en: 466ed8d1fb426011 + zh: 1c0765622c9fdf32 diff --git a/.agents/notes/proposed/simplification/2026-09-19-python-sdk-directional-client.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-python-sdk-directional-client.i18n.yaml index 3920961bcf..df72997d92 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-python-sdk-directional-client.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-python-sdk-directional-client.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-python-sdk-directional-client.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-python-sdk-directional-client.md -2026-09-19-python-sdk-directional-client.md: 287126d65cc9e81e240c2b18081b2935c107760a -2026-09-19-python-sdk-directional-client.zh.md: caf9b7c73a00b8865b6d189fe512f96afb20dad9 +/agent-note-remove-the-python-sdk-s-unused-reverse-rpc-direction: + en: 29c6b53f7f81bfd8 + zh: 94139164373cda91 +/agent-note-remove-the-python-sdk-s-unused-reverse-rpc-direction/problem: + en: e8779fc70adce0e4 + zh: 288565d427fe65ae +/agent-note-remove-the-python-sdk-s-unused-reverse-rpc-direction/proposal: + en: 508671a9a29a8f2a + zh: 750587c118eb7450 +/agent-note-remove-the-python-sdk-s-unused-reverse-rpc-direction/alternatives-considered: + en: 2fb93911daacf365 + zh: 4c2e2599283cab94 +/agent-note-remove-the-python-sdk-s-unused-reverse-rpc-direction/acceptance-criteria: + en: bbfd9485fbe4e523 + zh: 283486f66c96b447 +/agent-note-remove-the-python-sdk-s-unused-reverse-rpc-direction/risks: + en: d0a75f4fa88d4bf7 + zh: 9a7635d8040d8068 diff --git a/.agents/notes/proposed/simplification/2026-09-19-retire-app-bin-boot-helpers.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-retire-app-bin-boot-helpers.i18n.yaml index d11c6bed98..9b077fc6d1 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-retire-app-bin-boot-helpers.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-retire-app-bin-boot-helpers.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-retire-app-bin-boot-helpers.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-retire-app-bin-boot-helpers.md -2026-09-19-retire-app-bin-boot-helpers.md: c67013bfae8569d0f750b3c8be5e56c57a2a66aa -2026-09-19-retire-app-bin-boot-helpers.zh.md: 5ef68ff3d8666e8b74d36c50eacbcf5048a4438a +/agent-note-retire-app-boot-helpers-used-only-by-fixtures: + en: db7c1d105d67279e + zh: 299512664ce8a27f +/agent-note-retire-app-boot-helpers-used-only-by-fixtures/problem: + en: f617e973b4e5c136 + zh: 90a32c3023bd4bbb +/agent-note-retire-app-boot-helpers-used-only-by-fixtures/proposal: + en: 9887763c3f2362ad + zh: 00a5fdaf4ea5f438 +/agent-note-retire-app-boot-helpers-used-only-by-fixtures/alternatives-considered: + en: 3fdc33ab9299103d + zh: 79f42a6b79d90b8a +/agent-note-retire-app-boot-helpers-used-only-by-fixtures/acceptance-criteria: + en: a8cedd0cdfe6526d + zh: cb08fcd8117f9ddf +/agent-note-retire-app-boot-helpers-used-only-by-fixtures/risks: + en: caf3a0c07667e4ae + zh: 41195542888a3e83 diff --git a/.agents/notes/proposed/simplification/2026-09-19-retire-prompt-registry-change-event.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-retire-prompt-registry-change-event.i18n.yaml index 625e054ecf..1f094f2d6f 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-retire-prompt-registry-change-event.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-retire-prompt-registry-change-event.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-retire-prompt-registry-change-event.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-retire-prompt-registry-change-event.md -2026-09-19-retire-prompt-registry-change-event.md: 1103675525e30c7f6c345a1fe92f07cbd0bcce4a -2026-09-19-retire-prompt-registry-change-event.zh.md: a49df2eebad7134b7b038ee2e6ab54610bd4c635 +/agent-note-retire-the-prompt-registry-change-event: + en: 081a6a1f8f256c6e + zh: c49dd9c0e7e42f24 +/agent-note-retire-the-prompt-registry-change-event/problem: + en: 22259f002f329483 + zh: d5a9c78a80af5187 +/agent-note-retire-the-prompt-registry-change-event/proposal: + en: dba84cfd3aa5f719 + zh: d3f6eece6f2f8148 +/agent-note-retire-the-prompt-registry-change-event/alternatives-considered: + en: 768edcebf26d1af4 + zh: 7c009a2f1513061e +/agent-note-retire-the-prompt-registry-change-event/acceptance-criteria: + en: 1ca375eac1e970f7 + zh: 741e1d56ec2bc89b +/agent-note-retire-the-prompt-registry-change-event/risks: + en: 0a86fce4d2962eef + zh: cecb538a90fdd5ea diff --git a/.agents/notes/proposed/simplification/2026-09-19-shell-env-key-declarations.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-shell-env-key-declarations.i18n.yaml index bed94c3f36..06790c6cff 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-shell-env-key-declarations.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-shell-env-key-declarations.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-shell-env-key-declarations.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-shell-env-key-declarations.md -2026-09-19-shell-env-key-declarations.md: 7b74e55e6b8602cb488d16040d57fe41d16e14da -2026-09-19-shell-env-key-declarations.zh.md: 03d7ed9fdee1c1181c529c2b2dd26ceb7c791ef2 +/agent-note-keep-shell-environment-declarations-focused-on-key-ownership: + en: 45ac68010d497bfd + zh: 388e4f51893c4615 +/agent-note-keep-shell-environment-declarations-focused-on-key-ownership/problem: + en: ff308f45fc6f5242 + zh: 025b58883a3e175b +/agent-note-keep-shell-environment-declarations-focused-on-key-ownership/proposal: + en: ffd78167917dfa4b + zh: dbcb1004009ea9f5 +/agent-note-keep-shell-environment-declarations-focused-on-key-ownership/alternatives-considered: + en: 476de18c44f2ad86 + zh: a0a15da6c5e7fbf7 +/agent-note-keep-shell-environment-declarations-focused-on-key-ownership/acceptance-criteria: + en: 3196e83f9ae22f45 + zh: 0766bf5914672572 +/agent-note-keep-shell-environment-declarations-focused-on-key-ownership/risks: + en: 55e2677a8d48d759 + zh: ff97043cc6a6a31b diff --git a/.agents/notes/proposed/simplification/2026-09-19-trim-session-query-convenience-api.i18n.yaml b/.agents/notes/proposed/simplification/2026-09-19-trim-session-query-convenience-api.i18n.yaml index 676a701835..5cb6a84212 100644 --- a/.agents/notes/proposed/simplification/2026-09-19-trim-session-query-convenience-api.i18n.yaml +++ b/.agents/notes/proposed/simplification/2026-09-19-trim-session-query-convenience-api.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-09-19-trim-session-query-convenience-api.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/simplification/2026-09-19-trim-session-query-convenience-api.md -2026-09-19-trim-session-query-convenience-api.md: 1a3d558c9be5e16b5e9e84a59a9731b55174114c -2026-09-19-trim-session-query-convenience-api.zh.md: 63c3ae309edee8366eae4d5db10cc59f0b72e843 +/agent-note-trim-unused-sessionquery-convenience-methods: + en: 0639096a41a3eeb4 + zh: f5ff6ed78687b440 +/agent-note-trim-unused-sessionquery-convenience-methods/problem: + en: 62f49ae402951c28 + zh: 95985e67cbb5b6ac +/agent-note-trim-unused-sessionquery-convenience-methods/proposal: + en: 3848c7dcdbf70815 + zh: d2ae878e6057afc8 +/agent-note-trim-unused-sessionquery-convenience-methods/alternatives-considered: + en: 431cc99fec52f696 + zh: ee5bcfe54f7f703c +/agent-note-trim-unused-sessionquery-convenience-methods/acceptance-criteria: + en: 44741d711dff0e30 + zh: be1e6f9547dabc74 +/agent-note-trim-unused-sessionquery-convenience-methods/risks: + en: 2095fdf1f2beaa26 + zh: 0152ac808e52fd08 diff --git a/.agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.i18n.yaml b/.agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.i18n.yaml index b6e4d8e0cd..76b8746242 100644 --- a/.agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.i18n.yaml +++ b/.agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-deterministic-and-stress-testing.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.md -2026-06-11-deterministic-and-stress-testing.md: d4264663178829c6e6e309ce940926bd94778755 -2026-06-11-deterministic-and-stress-testing.zh.md: 2d349682caa4f57b6d0d093d1b48c24ae431a5a5 +/agent-note-deterministic-tests-the-replay-invariant-fixture-and-race-stress: + en: 542fbe788af50a46 + zh: ac3cd25980079e57 +/agent-note-deterministic-tests-the-replay-invariant-fixture-and-race-stress/problem: + en: f53f96fa64894350 + zh: cb24d89ce7ed6d23 +/agent-note-deterministic-tests-the-replay-invariant-fixture-and-race-stress/proposal: + en: 634037df9edd48bd + zh: 5b0533bfbe315e89 +/agent-note-deterministic-tests-the-replay-invariant-fixture-and-race-stress/plan: + en: 35540eefb6f19904 + zh: 7212368b41786ffc +/agent-note-deterministic-tests-the-replay-invariant-fixture-and-race-stress/acceptance-criteria: + en: e88b12f0cdc2748a + zh: 3a918218fe6e89a7 +/agent-note-deterministic-tests-the-replay-invariant-fixture-and-race-stress/risks: + en: 072c15d39395fbde + zh: a21a7a21a7879f56 diff --git a/.agents/notes/proposed/testing/2026-06-11-mutation-testing.i18n.yaml b/.agents/notes/proposed/testing/2026-06-11-mutation-testing.i18n.yaml index d31176617a..c1c40758be 100644 --- a/.agents/notes/proposed/testing/2026-06-11-mutation-testing.i18n.yaml +++ b/.agents/notes/proposed/testing/2026-06-11-mutation-testing.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-mutation-testing.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/proposed/testing/2026-06-11-mutation-testing.md -2026-06-11-mutation-testing.md: 591d9012644a19ee2c67a916b63092d79f78db1f -2026-06-11-mutation-testing.zh.md: a8e786ab6566d12762c55bc559b436a13f3b32b2 +/agent-note-mutation-testing-as-the-coverage-counterweight: + en: 521fac2a2df2498e + zh: 9a508486144b2e74 +/agent-note-mutation-testing-as-the-coverage-counterweight/problem: + en: f67a5e8beb51c898 + zh: 9f997eaf27491ea4 +/agent-note-mutation-testing-as-the-coverage-counterweight/proposal: + en: 4aa172d4d1c7e419 + zh: dae8a42d5693e509 +/agent-note-mutation-testing-as-the-coverage-counterweight/plan: + en: e5b6fbdf1fbdde82 + zh: e3d050014107519f +/agent-note-mutation-testing-as-the-coverage-counterweight/acceptance-criteria: + en: 3671f37e25e586f7 + zh: e6af9b37fe92f775 +/agent-note-mutation-testing-as-the-coverage-counterweight/risks: + en: b1c2fce21adc8388 + zh: b9c2292f55c3292b diff --git a/.agents/notes/rejected/architecture/2026-06-16-typed-event-schemas.i18n.yaml b/.agents/notes/rejected/architecture/2026-06-16-typed-event-schemas.i18n.yaml index 9a28742fb7..a1a2f350fc 100644 --- a/.agents/notes/rejected/architecture/2026-06-16-typed-event-schemas.i18n.yaml +++ b/.agents/notes/rejected/architecture/2026-06-16-typed-event-schemas.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-16-typed-event-schemas.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/architecture/2026-06-16-typed-event-schemas.md -2026-06-16-typed-event-schemas.md: 5912c39016acb4bc44089af16bf46edffe3023d0 -2026-06-16-typed-event-schemas.zh.md: 67d0c1be31e56ae6f109b5cc4402629c2b6f868f +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern: + en: 63685a0c0afc3f07 + zh: 8f7e06562771ee1d +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/problem: + en: 6bea9eb883f324d2 + zh: 2bef9b9fa5233d09 +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/why-this-is-not-a-persistence-change: + en: 42d48e48d694d3de + zh: f556f4624b55a480 +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/blast-radius-measured: + en: ec70e76b82ba21b5 + zh: 25fb4a60f8da5cb5 +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/alternatives-considered: + en: 6119e2aff3b6be5a + zh: 76136ef5249c23eb +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/alternatives-considered/a-status-quo-merge-extensible-types-isjsonvalue-at-the-durable-boundary: + en: d5ea1b3124b341a7 + zh: 766ed3689efc1802 +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/alternatives-considered/b-header-closed-shape-validation-only-schemastery-events-stay-opaque: + en: 5120fc56473696d1 + zh: 611d6f53efa282f0 +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/alternatives-considered/c-runtime-schema-registry-for-the-whole-vocabulary-zod-or-schemastery: + en: db3cebf2efcf1fcd + zh: 631a39e8900c0e1d +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/proposal: + en: 33078a5945dc2aa3 + zh: 32baff49e47e9823 +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/acceptance-criteria: + en: 37626ef8a2dcd7e0 + zh: 0b215089ce58e65d +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/risks: + en: 79e720cfffe60257 + zh: b4aea0d52f3ee072 +/agent-note-runtime-schemas-for-the-event-vocabulary-zod-vs-the-merge-extensible-map-pattern/open-questions: + en: afc8275e1598eb34 + zh: f3684ee3aba33cf1 diff --git a/.agents/notes/rejected/architecture/2026-07-25-client-settings-locale-theme.i18n.yaml b/.agents/notes/rejected/architecture/2026-07-25-client-settings-locale-theme.i18n.yaml index 76a82753fc..0d568431e3 100644 --- a/.agents/notes/rejected/architecture/2026-07-25-client-settings-locale-theme.i18n.yaml +++ b/.agents/notes/rejected/architecture/2026-07-25-client-settings-locale-theme.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-25-client-settings-locale-theme.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/architecture/2026-07-25-client-settings-locale-theme.md -2026-07-25-client-settings-locale-theme.md: e7f4b64ab0d44492435b63a066abca9d0ae1394d -2026-07-25-client-settings-locale-theme.zh.md: 9edd7395afd48fd7088e0c64d74d1c704a584b15 +/agent-note-client-settings-locale-and-theme-layering: + en: ebeba4110da742d5 + zh: 3cfc57b1eb553185 +/agent-note-client-settings-locale-and-theme-layering/problem: + en: 4cec7e053c53607b + zh: 3796b79366e7ea58 +/agent-note-client-settings-locale-and-theme-layering/proposal: + en: 3dd489ca0eab19bd + zh: a57d5dd4d2496f04 +/agent-note-client-settings-locale-and-theme-layering/proposal/first-phase-registration-surfaces: + en: 7a4890dffd207a66 + zh: 4353be1cf48bf68d +/agent-note-client-settings-locale-and-theme-layering/proposal/slot-topology: + en: bc2aba013c52fca5 + zh: 734e5ef05792bdf9 +/agent-note-client-settings-locale-and-theme-layering/proposal/slot-declarations-are-first-class-injectable-waits: + en: 9df71cdd33cd691d + zh: 9ac3eba3d89192d9 +/agent-note-client-settings-locale-and-theme-layering/proposal/service-contracts: + en: 30c49423999492e5 + zh: bce71328fdd946c5 +/agent-note-client-settings-locale-and-theme-layering/alternatives-considered: + en: 258859f30f0b9784 + zh: 70d48285033c3d8f +/agent-note-client-settings-locale-and-theme-layering/acceptance-criteria: + en: 9ff6ce8ea22dab22 + zh: c8dd20442b50df21 +/agent-note-client-settings-locale-and-theme-layering/risks: + en: fb649d6c5a86bc09 + zh: cb5520268d365ca9 diff --git a/.agents/notes/rejected/architecture/2026-08-08-cordis-web-dynamic-packages.i18n.yaml b/.agents/notes/rejected/architecture/2026-08-08-cordis-web-dynamic-packages.i18n.yaml index d2969612cb..ede08a7406 100644 --- a/.agents/notes/rejected/architecture/2026-08-08-cordis-web-dynamic-packages.i18n.yaml +++ b/.agents/notes/rejected/architecture/2026-08-08-cordis-web-dynamic-packages.i18n.yaml @@ -1,6 +1,73 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-08-cordis-web-dynamic-packages.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/architecture/2026-08-08-cordis-web-dynamic-packages.md -2026-08-08-cordis-web-dynamic-packages.md: e6c7b9135198ae4f3c21f0b5116e99c521ede185 -2026-08-08-cordis-web-dynamic-packages.zh.md: 269f0f279f5415c6506bb509bfb54c3b819637d6 +/agent-note-cordis-host-client-dynamic-plugin-runtime: + en: f89118c354fe715d + zh: dcee1e4dd9bbb250 +/agent-note-cordis-host-client-dynamic-plugin-runtime/problem: + en: 19617f888995a1ec + zh: e4abb5efa2b77571 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal: + en: 986dd8097aac4d3d + zh: 986dd8097aac4d3d +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/core-principles: + en: 400bacbc13cc4ca2 + zh: efb84f4257ebf13c +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/package-responsibilities-and-dependency-direction: + en: 60b7a0c8880e579c + zh: d85388f9e9d34589 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/domain-objects: + en: fb29437ba7cc624a + zh: 2c2322991e282f7c +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/domain-objects/plugin: + en: 84d17d0aa91fa20c + zh: 354cf1a6531e2353 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/domain-objects/package: + en: 950f4e014a7fa6df + zh: 9641809a80ddbb9f +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/domain-objects/plugin-run: + en: f5cc71352e3f2eea + zh: 6933e78a031bb3e1 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/domain-objects/version-pointers: + en: 0d17a946a46eb645 + zh: 0d82d5287cd227af +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/host-authority-and-persistence: + en: 02a605a63f0b9d06 + zh: 3918b603de86ad4b +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/define-run-and-version-switching: + en: dce63bf4526ae240 + zh: 32898ea25290fd35 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/client-approval-and-authorization: + en: d3c874acd464c5da + zh: 04ffde8db6a0daa9 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/client-activation-orchestration: + en: 58708703b5069952 + zh: c378e4398b8d8063 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/package-private-client-to-host-communication: + en: 02f6557f8f3f1155 + zh: 33e2f26f371f20b6 +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/dynamic-code-guard-and-lifecycle: + en: 601f8cc278c10286 + zh: 31aa97d5c66b086c +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/inspect-providers-and-catalogs: + en: 8febbabca425cce7 + zh: 078461769a69719f +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/model-guidance-layers: + en: 879ad6fef8ca4ae7 + zh: 38ec8d838628bacd +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/pluginid-and-tool-ui: + en: 03c501a6503961fc + zh: 4e5b6633a393f8ca +/agent-note-cordis-host-client-dynamic-plugin-runtime/proposal/errors-and-model-feedback: + en: ec2d9dedbe2cd9d5 + zh: 005260a95cda020c +/agent-note-cordis-host-client-dynamic-plugin-runtime/alternatives-considered: + en: ef5f387f4019d7ad + zh: 4d5da887bafc5f22 +/agent-note-cordis-host-client-dynamic-plugin-runtime/acceptance-criteria: + en: 3a4b3100f19377d6 + zh: c36d31e04f7d4b2d +/agent-note-cordis-host-client-dynamic-plugin-runtime/risks: + en: 3ec21c3758ab98a8 + zh: e949a28f8e38042c diff --git a/.agents/notes/rejected/process/2026-06-11-architectural-conformance.i18n.yaml b/.agents/notes/rejected/process/2026-06-11-architectural-conformance.i18n.yaml index 1d03942760..0e5a8660a4 100644 --- a/.agents/notes/rejected/process/2026-06-11-architectural-conformance.i18n.yaml +++ b/.agents/notes/rejected/process/2026-06-11-architectural-conformance.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-11-architectural-conformance.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/process/2026-06-11-architectural-conformance.md -2026-06-11-architectural-conformance.md: 631b032235aba3ecd0045cdfc72e719265efc867 -2026-06-11-architectural-conformance.zh.md: 74af5a377c0f80a6c53ecf2a1a8935c1e2f92f4c +/agent-note-architectural-conformance-dependency-rules-and-the-adapter-kit: + en: 708fe0c94db3e25a + zh: 07437d3cb67a9240 +/agent-note-architectural-conformance-dependency-rules-and-the-adapter-kit/problem: + en: 2d5d19405f22920b + zh: 8ca48379706cbe35 +/agent-note-architectural-conformance-dependency-rules-and-the-adapter-kit/proposal: + en: 81d30d5657ece906 + zh: 1e7c61e5b9229ef6 +/agent-note-architectural-conformance-dependency-rules-and-the-adapter-kit/plan: + en: 56bb9b7b97ba6bf5 + zh: 2e3f0a70ce391029 +/agent-note-architectural-conformance-dependency-rules-and-the-adapter-kit/acceptance-criteria: + en: 2953797008c6c120 + zh: 42fd01df8a2a8f0b +/agent-note-architectural-conformance-dependency-rules-and-the-adapter-kit/risks: + en: 09eb0e6924573fe0 + zh: 60ca8648ec25afca diff --git a/.agents/notes/rejected/process/2026-08-04-artifact-first-npm-baseline-publication.i18n.yaml b/.agents/notes/rejected/process/2026-08-04-artifact-first-npm-baseline-publication.i18n.yaml index c0c61084e3..e0c297bfc5 100644 --- a/.agents/notes/rejected/process/2026-08-04-artifact-first-npm-baseline-publication.i18n.yaml +++ b/.agents/notes/rejected/process/2026-08-04-artifact-first-npm-baseline-publication.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-08-04-artifact-first-npm-baseline-publication.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/process/2026-08-04-artifact-first-npm-baseline-publication.md -2026-08-04-artifact-first-npm-baseline-publication.md: 1c317176521afd2e11707f954520039a3f229a44 -2026-08-04-artifact-first-npm-baseline-publication.zh.md: c2822ed0b572b60fe23cab7c5dc1ebfbe02230f7 +/agent-note-artifact-first-npm-baseline-publication: + en: d0656ef5ec966473 + zh: 3d7930c502e0fa0a +/agent-note-artifact-first-npm-baseline-publication/problem: + en: 262109304a235ff0 + zh: 0399026e9afa9403 +/agent-note-artifact-first-npm-baseline-publication/proposal: + en: e3324fac080bfa55 + zh: 89e385b4d37df216 +/agent-note-artifact-first-npm-baseline-publication/current-implementation-boundary: + en: 49678acc335339b1 + zh: fdebfb169e49d34d +/agent-note-artifact-first-npm-baseline-publication/publication-payload-contract: + en: 6ad6a8829fe06538 + zh: 70e1507b7c85cb8a +/agent-note-artifact-first-npm-baseline-publication/artifact-plane-integration-test: + en: 129d1df710a8c8f7 + zh: 208002598644da1b +/agent-note-artifact-first-npm-baseline-publication/publication-and-recovery: + en: f45f84678f8184ae + zh: 5f87157df6e828b5 +/agent-note-artifact-first-npm-baseline-publication/github-actions-integration: + en: c376aca1e297c9d2 + zh: 2902f72e6d16e9ae +/agent-note-artifact-first-npm-baseline-publication/alternatives-considered: + en: d3b5794ac85b0a19 + zh: 222d054cbb7c8354 +/agent-note-artifact-first-npm-baseline-publication/acceptance-criteria: + en: fc56f357e3ef7cc5 + zh: ba108d552935f6bc +/agent-note-artifact-first-npm-baseline-publication/risks: + en: 7939117bb1674385 + zh: 9768d75303b04bc1 diff --git a/.agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.i18n.yaml b/.agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.i18n.yaml index bd6f2c6d48..088c91091b 100644 --- a/.agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-20-drop-durable-step-boundaries.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.md -2026-06-20-drop-durable-step-boundaries.md: c5c4f269a378e334c4dc509d1288146d77d9a520 -2026-06-20-drop-durable-step-boundaries.zh.md: 2ee8abb3a57ed1a702530e9952d2d776c90554a4 +/agent-note-drop-durable-step-boundary-events: + en: 0b9830ce816f2850 + zh: 5e937fff837261f4 +/agent-note-drop-durable-step-boundary-events/problem: + en: d9011152056a58c3 + zh: 5989ef2a4f6bf5ab +/agent-note-drop-durable-step-boundary-events/proposal: + en: 3ef7c3e871cde268 + zh: fd762265542e0614 +/agent-note-drop-durable-step-boundary-events/acceptance-criteria: + en: 05d9927015af73ae + zh: a32f893355f95797 +/agent-note-drop-durable-step-boundary-events/what-we-give-up: + en: 280d1d43670d7b99 + zh: 92a21a61242694c1 diff --git a/.agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.i18n.yaml b/.agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.i18n.yaml index 47d6125e0d..7e9de72fc1 100644 --- a/.agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-20-fold-session-persistence-interface.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.md -2026-06-20-fold-session-persistence-interface.md: 58c6aa8f5b3b77f146e18d285ebf3fe1e36b0778 -2026-06-20-fold-session-persistence-interface.zh.md: 9fb53d16fced3d17ee0a76a05df04628ac9d8c95 +/agent-note-fold-the-persistence-interface-into-dsh-session: + en: ec1120bc953f18db + zh: 905c9fcee9a2ab8c +/agent-note-fold-the-persistence-interface-into-dsh-session/problem: + en: 132b1c96f4d271a0 + zh: 52f235f23160cb1b +/agent-note-fold-the-persistence-interface-into-dsh-session/proposal: + en: 8eecfc7bd6c83608 + zh: 658fc8e8eac425b7 +/agent-note-fold-the-persistence-interface-into-dsh-session/acceptance-criteria: + en: a141343494939ee4 + zh: 2b9a95f1aadd319f +/agent-note-fold-the-persistence-interface-into-dsh-session/what-we-give-up: + en: 595671143eb17f28 + zh: a6f019fb64ba3a90 diff --git a/.agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.i18n.yaml b/.agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.i18n.yaml index d460dbd142..d1a8821362 100644 --- a/.agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-06-20-truncate-interrupted-turns.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.md -2026-06-20-truncate-interrupted-turns.md: c4b0084de537927a27829eb78990c6559bd1df7d -2026-06-20-truncate-interrupted-turns.zh.md: ad6c85fc62077be45b1f3bb55c31cf4b4a7fd1d1 +/agent-note-truncate-interrupted-final-turns-on-load: + en: 71d2ea22bb13721d + zh: 8c215ff52de9ba0d +/agent-note-truncate-interrupted-final-turns-on-load/problem: + en: d96af2be3caa1b54 + zh: 02cb84c44916fab9 +/agent-note-truncate-interrupted-final-turns-on-load/proposal: + en: 764ee72b3b2b654a + zh: 92ea690926ff99a4 +/agent-note-truncate-interrupted-final-turns-on-load/acceptance-criteria: + en: 5aeb3cf919f6d9c7 + zh: 8cc171e48d5c0761 +/agent-note-truncate-interrupted-final-turns-on-load/what-we-give-up: + en: 583aa8d003225c57 + zh: 2d90befccf8be0ca +/agent-note-truncate-interrupted-final-turns-on-load/related: + en: a2af11959bf10ac3 + zh: 402cf5f0c4f019d8 diff --git a/.agents/notes/rejected/simplification/2026-07-04-prune-dead-core-spine-api.i18n.yaml b/.agents/notes/rejected/simplification/2026-07-04-prune-dead-core-spine-api.i18n.yaml index 52d12170a2..810e07aad4 100644 --- a/.agents/notes/rejected/simplification/2026-07-04-prune-dead-core-spine-api.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-07-04-prune-dead-core-spine-api.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-04-prune-dead-core-spine-api.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-07-04-prune-dead-core-spine-api.md -2026-07-04-prune-dead-core-spine-api.md: 35130b1af2a2245ff575604466e098dcae7776cc -2026-07-04-prune-dead-core-spine-api.zh.md: d2782b733b76a29b48f74e81d4a76a0f90575fdb +/agent-note-prune-dead-public-api-and-result-fields: + en: 787501dcdb05bf03 + zh: cf13583535e5a444 +/agent-note-prune-dead-public-api-and-result-fields/problem: + en: 277564591633536c + zh: ddfbc0231a04b51d +/agent-note-prune-dead-public-api-and-result-fields/problem/grouped-helper-export-inventory: + en: 84cb62303daf31bf + zh: 3478dd10d2a761fc +/agent-note-prune-dead-public-api-and-result-fields/proposal: + en: 414aca8de0a22c38 + zh: 9458a8db0cea11e7 +/agent-note-prune-dead-public-api-and-result-fields/alternatives-considered: + en: e8eecc41540c8d67 + zh: 60110bcdfaba5dad +/agent-note-prune-dead-public-api-and-result-fields/acceptance-criteria: + en: ef426fe8180fdfe8 + zh: 7e7f4cdb5d2ce655 +/agent-note-prune-dead-public-api-and-result-fields/risks: + en: c88948f52999d392 + zh: 3b1b98c54d082ae1 diff --git a/.agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-api.i18n.yaml b/.agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-api.i18n.yaml index fdadd105b9..334f3c3c9b 100644 --- a/.agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-api.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-api.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-12-prune-unused-skill-registry-api.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-api.md -2026-07-12-prune-unused-skill-registry-api.md: 23fb0163296a1cf6cd8700ad745f60e52371a3b1 -2026-07-12-prune-unused-skill-registry-api.zh.md: e1496aab7bc77dc04600a95bea8a5db3f8955053 +/agent-note-prune-unused-skill-registry-api: + en: ff5d0311e8e1e032 + zh: a5c7ab3f62dc41b3 +/agent-note-prune-unused-skill-registry-api/problem: + en: dcd820314b04d01c + zh: c2131cbda05d276c +/agent-note-prune-unused-skill-registry-api/proposal: + en: 803833583cc47fe4 + zh: f9cc914a2b1acb07 +/agent-note-prune-unused-skill-registry-api/alternatives-considered: + en: b8f81e90df8b47c2 + zh: 04d7b9c5fef53f6d +/agent-note-prune-unused-skill-registry-api/acceptance-criteria: + en: 601e07918e345279 + zh: 36f81302639503b5 +/agent-note-prune-unused-skill-registry-api/risks: + en: 81cbe6895b2dd805 + zh: a52ce97e9e47d177 diff --git a/.agents/notes/rejected/simplification/2026-07-19-fold-compaction-package-split.i18n.yaml b/.agents/notes/rejected/simplification/2026-07-19-fold-compaction-package-split.i18n.yaml index d524222cb5..7f181e0cc6 100644 --- a/.agents/notes/rejected/simplification/2026-07-19-fold-compaction-package-split.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-07-19-fold-compaction-package-split.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-fold-compaction-package-split.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-07-19-fold-compaction-package-split.md -2026-07-19-fold-compaction-package-split.md: 17d2ff5b8b663131eb3548dbf32d9489ca174f6b -2026-07-19-fold-compaction-package-split.zh.md: a981e0096516d51481360f95a0d72720a9023c5e +/agent-note-fold-the-single-compaction-backend-into-its-service-package: + en: 22e69a4c9159be12 + zh: c68cd8f8f536dc03 +/agent-note-fold-the-single-compaction-backend-into-its-service-package/problem: + en: 272d8d731bdf45b7 + zh: 7502a76b7d3cd367 +/agent-note-fold-the-single-compaction-backend-into-its-service-package/proposal: + en: 4db8bc2ee4039e44 + zh: e1a8c9714d1c4de0 +/agent-note-fold-the-single-compaction-backend-into-its-service-package/alternatives-considered: + en: 0c7f4bd4b7745c96 + zh: 9bf5a98dd485dbbd +/agent-note-fold-the-single-compaction-backend-into-its-service-package/acceptance-criteria: + en: 40a7d8d774a68237 + zh: 004e8b40effa2f8d +/agent-note-fold-the-single-compaction-backend-into-its-service-package/risks: + en: 899ebc22beb60647 + zh: ae23733b92c2ae36 diff --git a/.agents/notes/rejected/simplification/2026-07-19-make-jsonrpc-directional.i18n.yaml b/.agents/notes/rejected/simplification/2026-07-19-make-jsonrpc-directional.i18n.yaml index 1f91fccbb3..a90825c6c8 100644 --- a/.agents/notes/rejected/simplification/2026-07-19-make-jsonrpc-directional.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-07-19-make-jsonrpc-directional.i18n.yaml @@ -1,6 +1,25 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-19-make-jsonrpc-directional.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-07-19-make-jsonrpc-directional.md -2026-07-19-make-jsonrpc-directional.md: 0a4660bbf12ab6a71f08547b69458bd25881bd64 -2026-07-19-make-jsonrpc-directional.zh.md: 706a342d6ef32c00d014033b314cbbe82314ce30 +/agent-note-make-json-rpc-completion-and-transport-directional: + en: ee6e55930abd711c + zh: 8f42bc9a2ae73653 +/agent-note-make-json-rpc-completion-and-transport-directional/problem: + en: d464014520aeb2ba + zh: 8d5b916ec1e52ae2 +/agent-note-make-json-rpc-completion-and-transport-directional/proposal: + en: 1877df56f4a6c009 + zh: 88945feba13fd7f2 +/agent-note-make-json-rpc-completion-and-transport-directional/implementation-plan: + en: 98d36962531961b4 + zh: 732397d5ac3e9da5 +/agent-note-make-json-rpc-completion-and-transport-directional/alternatives-considered: + en: aa128111a837e3ce + zh: e2e70c0e7ca577f4 +/agent-note-make-json-rpc-completion-and-transport-directional/acceptance-criteria: + en: c003617f26b1b309 + zh: a0c92fd01a820b9d +/agent-note-make-json-rpc-completion-and-transport-directional/risks: + en: 2a4ab79704013a71 + zh: 17722ca6beff0536 diff --git a/.agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.i18n.yaml b/.agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.i18n.yaml index 5f4b4e03cb..2dc7fcd734 100644 --- a/.agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.md -2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.md: d925222c6c1f07707815353caa15b2ff51212e7f -2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.zh.md: 34128c671e898d7a6729ca3fa132585c7b53bdbe +/agent-note-use-node-timers-promises-for-hand-rolled-cancellable-sleeps: + en: 375b81101ea10ffd + zh: 4e63456174643d83 +/agent-note-use-node-timers-promises-for-hand-rolled-cancellable-sleeps/problem: + en: 88cc75cbfeb9bb8d + zh: 945620a5e6c4982d +/agent-note-use-node-timers-promises-for-hand-rolled-cancellable-sleeps/proposal: + en: dc6c2a587810f627 + zh: 42f5e2e23cc2d1e2 +/agent-note-use-node-timers-promises-for-hand-rolled-cancellable-sleeps/alternatives-considered: + en: 1897b5c8c6179b6a + zh: e39724cb2160c679 +/agent-note-use-node-timers-promises-for-hand-rolled-cancellable-sleeps/acceptance-criteria: + en: 47f2700d922cfed9 + zh: 78ee3b0e20ac9f86 +/agent-note-use-node-timers-promises-for-hand-rolled-cancellable-sleeps/risks: + en: a63132fb74c49961 + zh: 166a88d947d555e3 diff --git a/.agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.i18n.yaml b/.agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.i18n.yaml index 5b19f5d40c..0b54901ab4 100644 --- a/.agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.i18n.yaml +++ b/.agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.i18n.yaml @@ -1,6 +1,16 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for 2026-07-26-dependency-swaps-rejected-by-nih-audit.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.md -2026-07-26-dependency-swaps-rejected-by-nih-audit.md: 1ea01d96c5e817440c1daca871603d9cec78c06a -2026-07-26-dependency-swaps-rejected-by-nih-audit.zh.md: d7140b88a75d1af045fd32e4b1048554071d68e8 +/agent-note-dependency-swaps-rejected-by-the-2026-07-nih-audit: + en: 4c5b109a95f79af5 + zh: f6d451c5d5ddae94 +/agent-note-dependency-swaps-rejected-by-the-2026-07-nih-audit/problem: + en: 7b7248fc12313b69 + zh: a55e2c3376c401a7 +/agent-note-dependency-swaps-rejected-by-the-2026-07-nih-audit/proposal: + en: 0a8ed95bec08cf62 + zh: 06de9cab1c862ac4 +/agent-note-dependency-swaps-rejected-by-the-2026-07-nih-audit/alternatives-considered: + en: 229a0110ca47384e + zh: 3f86f858d56190c5 diff --git a/.agents/skills/dsh-doc/references/metadata-links-i18n.md b/.agents/skills/dsh-doc/references/metadata-links-i18n.md index 31f44bc79a..19ee5dde40 100644 --- a/.agents/skills/dsh-doc/references/metadata-links-i18n.md +++ b/.agents/skills/dsh-doc/references/metadata-links-i18n.md @@ -70,7 +70,7 @@ Line equality is a structural check, not proof of faithful meaning. Review still ## Bilingual consistency records -Keep the `*.i18n.yaml` sidecar for every bilingual pair. `verify-translation-pairing` consumes its Git blob hashes for last-confirmed-text recovery, verifies structure and exact line alignment, supports automatic merging, records generated regions, and seals archives. Re-record it with `pnpm run verify-translation-pairing --write ` after either language changes. Do not copy content hashes into README frontmatter: independent edits would change the same header line and turn otherwise mergeable prose into an owner-file conflict. +Keep the `*.i18n.yaml` sidecar for every bilingual pair. It records a hash pair per heading section, excluding fenced code blocks and generated regions, so edits to different sections merge with Git's default text merge; generated data belongs in generated regions that the generator writes into both pages; `verify-translation-pairing` compares those entries with the current contents and verifies structure. Re-record it with `pnpm run verify-translation-pairing --write ` after either language changes. Do not copy content hashes into README frontmatter: independent edits would change the same header line and turn otherwise mergeable prose into an owner-file conflict. ## Dev Note diff --git a/.agents/skills/dsh-translate-docs/SKILL.md b/.agents/skills/dsh-translate-docs/SKILL.md index 5e5ec7d871..6ff2650c74 100644 --- a/.agents/skills/dsh-translate-docs/SKILL.md +++ b/.agents/skills/dsh-translate-docs/SKILL.md @@ -39,7 +39,7 @@ When translations need to be written from scratch, the orchestrating agent does ### Sources of truth (read, don't re-summarize) -- **[docs/i18n/README.md](../../../docs/i18n/README.md)** — the pairing contract: the three-file pair (`foo.md`, `foo.zh.md`, `foo.i18n.yaml`), the consistency record's both-side blob hashes, the language-switcher lines, scope, and exclusions. +- **[docs/i18n/README.md](../../../docs/i18n/README.md)** — the pairing contract: the three-file pair (`foo.md`, `foo.zh.md`, `foo.i18n.yaml`), the consistency record's per-section hashes, the language-switcher lines, scope, and exclusions. - **[docs/i18n/translation-rules.md](../../../docs/i18n/translation-rules.md)** — how to translate: faithfulness, structure preservation, terminology discipline, typography (MUST/SHOULD levels). - **[docs/i18n/terminology.md](../../../docs/i18n/terminology.md)** — the terminology table, binding in both directions. Load it BEFORE translating, not when a term feels uncertain; the terms you don't notice are the ones that drift. - **[docs/i18n/translation-prompt.md](../../../docs/i18n/translation-prompt.md)** — the automated pipeline's calibrated machine-consumed template. Agents using this skill do not render it; the terminology table is the only repository file the automated renderer injects, while this skill and `translation-rules.md` remain binding for agent-authored translations. @@ -64,7 +64,7 @@ When translations need to be written from scratch, the orchestrating agent does ## Finish the pair 1. Switcher: `[English](foo.md) | 中文` immediately after the Chinese file's H1, `English | [中文](foo.zh.md)` after the English file's H1 — add both if this is a new pair, except that a generator-owned English source stays byte-identical to generator output and omits its switcher while the Chinese counterpart still links back. -2. Record consistency: `pnpm run verify-translation-pairing --write ` recomputes and records both sides' full blob hashes in `foo.i18n.yaml`. The yaml diff in your PR is the reviewable statement "I confirmed these two say the same thing" — only run it after you actually have. +2. Record consistency: `pnpm run verify-translation-pairing --write ` recomputes and records the per-section hashes in `foo.i18n.yaml`. The yaml diff in your PR is the reviewable statement "I confirmed these two say the same thing" — only run it after you actually have. 3. No manifest entry is needed for an ordinary document: every in-scope source requires a pair. Change [scripts/translation-pairing.manifest.json](../../../scripts/translation-pairing.manifest.json) only when the owning policy documents a genuine generated, instructional, or bilingual-by-construction exclusion. 4. Before the PR: the touched pairs are green under the scoped check; `pnpm run doc-sync` (which includes the corpus-wide pairing check plus `verify-md-wrap`/`verify-md-links`) runs once at PR level per [dsh-pre-push-checks](../dsh-pre-push-checks/SKILL.md), not inside each translation task. 5. Keep the PR reviewable: state which pairs are new versus minimally updated and list 「待定术语」 prominently. diff --git a/.gitattributes b/.gitattributes index ed321c2b18..e878c9db19 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,10 +8,6 @@ *.pdf binary -# Pairing records are generated from the three confirmed owner-blob pairs. -# The worktree-local installer registers the fail-closed driver command. -*.i18n.yaml merge=dsh-translation-pairing - # The persistence catalog is the readable projection of these generated schemas. docs/persistence-schema.json linguist-generated=true docs/persistence-changes/*.schema.json linguist-generated=true diff --git a/.github/issue-management/README.i18n.yaml b/.github/issue-management/README.i18n.yaml index beaf888252..0d62118377 100644 --- a/.github/issue-management/README.i18n.yaml +++ b/.github/issue-management/README.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .github/issue-management/README.md -README.md: 49e91859f4b22fda13d0e93c6e6ea492272f6951 -README.zh.md: 8424f90cd2e3a59ba1212f64f3f1081a984b55f8 +/: + en: d5e0fd5da06b95ab + zh: db4281526c40cc1d +/issue-management: + en: 44fb5f74b6908794 + zh: cc25f420bac7d40b +/issue-management/summary: + en: b3f6f5f011516611 + zh: 7e6c83caf28ea807 +/issue-management/table-of-contents: + en: cff988027897ee0d + zh: 36a444b895dfdc48 +/issue-management/pull-request-policy: + en: ad11184112771cc8 + zh: cc8c112a76dcf62e +/issue-management/lifecycle-events: + en: 62bca299f0a5e213 + zh: 8853e01a9e3776ec +/issue-management/configuration-and-limitations: + en: 3ef00734bb83737f + zh: 9d91319c953496dd +/issue-management/module-ownership: + en: e83f694e0be99e69 + zh: 85fb201f86af2ce8 +/issue-management/verification: + en: b52fe10bcb063600 + zh: 3362170645a58eff +/issue-management/dev-note: + en: b75c8458928b72b9 + zh: 003ba4e17b4b5269 diff --git a/.github/preview-sizing/README.i18n.yaml b/.github/preview-sizing/README.i18n.yaml index cd5241c300..d2372d8529 100644 --- a/.github/preview-sizing/README.i18n.yaml +++ b/.github/preview-sizing/README.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .github/preview-sizing/README.md -README.md: 142854e582523eb1ed48924a73fbe29ea6164bf6 -README.zh.md: a71325189dc7966df87e14bbb591af3c76a3d498 +/pr-preview-runner-sizing: + en: 3c780cfadb127740 + zh: 07de037f824d70c6 +/pr-preview-runner-sizing/summary: + en: a6a48d1e702098d2 + zh: 69b246b95e09e638 +/pr-preview-runner-sizing/table-of-contents: + en: 0395d2bbce9a9532 + zh: a05a2ed9b0eb8476 +/pr-preview-runner-sizing/comparison-requirements: + en: 2374f332d040ece2 + zh: 7f914fb83cfb5caa +/pr-preview-runner-sizing/publication-semantics: + en: 25ee2f4b26ef7770 + zh: 788b7fb4bee6e159 +/pr-preview-runner-sizing/dev-note: + en: 85ac56719e30a350 + zh: f53f31c1b8553cc0 diff --git a/BRAND_GUIDELINES.i18n.yaml b/BRAND_GUIDELINES.i18n.yaml index c7147b4425..2f7eb7ceab 100644 --- a/BRAND_GUIDELINES.i18n.yaml +++ b/BRAND_GUIDELINES.i18n.yaml @@ -1,6 +1,7 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for BRAND_GUIDELINES.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write BRAND_GUIDELINES.md -BRAND_GUIDELINES.md: 900cf7bcec70ff78c6f55ed535897239cd4648df -BRAND_GUIDELINES.zh.md: 94b239b6f6f4021f52da233cbefd23b4cc11f675 +/deepseek-harness-brand-asset-usage-guidelines: + en: 23933888033edf18 + zh: eaa5afb9e2cb4d25 diff --git a/CONTRIBUTING.i18n.yaml b/CONTRIBUTING.i18n.yaml index a7dabc2fff..eaafcdccad 100644 --- a/CONTRIBUTING.i18n.yaml +++ b/CONTRIBUTING.i18n.yaml @@ -1,6 +1,7 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for CONTRIBUTING.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write CONTRIBUTING.md -CONTRIBUTING.md: 9f30e23a6d9567db7d6097cb82e481b16dda299e -CONTRIBUTING.zh.md: 35eb0b87fc4d9af11bef616039570dc5e6a1b309 +/contributing: + en: 08d2f421ff3617f4 + zh: 9d060d70ad186dc5 diff --git a/README.i18n.yaml b/README.i18n.yaml index ce6f75b18d..7f314d80ef 100644 --- a/README.i18n.yaml +++ b/README.i18n.yaml @@ -1,6 +1,34 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write README.md -README.md: 423bccd7d9352dbc48f1705f37d35642e74f5b41 -README.zh.md: c760f87e4ac3b7dbb7bb55d733e31db5ab379836 +/deepseek-harness: + en: f68c4f080ce55ff2 + zh: 88a76d7f7f0b260e +/deepseek-harness/developer-preview: + en: 4ef4d8a71ac143f0 + zh: 1bfc3149ba8e5543 +/deepseek-harness/run: + en: 4e0248e4c6474fc6 + zh: eb2fb8d78c7d6bc0 +/deepseek-harness/run/run-from-npm: + en: e22005cd42e6cbad + zh: 0f536f4208df1d60 +/deepseek-harness/run/run-from-source: + en: 819e3f7c144d0d64 + zh: de815f040975dba7 +/deepseek-harness/community-and-support: + en: 42848f543aff6e02 + zh: d46a07bdc6f36629 +/deepseek-harness/contributing: + en: cabc2d3e9f8898bd + zh: 83b6d238bae29ce3 +/deepseek-harness/development: + en: 803ca2b11b497bed + zh: 8b4071eb0e7783ef +/deepseek-harness/citation: + en: 6704e9e5a8d49a91 + zh: 85c9cdd8d56f8e9d +/deepseek-harness/license: + en: 926995344fc1c72b + zh: c92fab5abf85932f diff --git a/SAFETY.i18n.yaml b/SAFETY.i18n.yaml index 6010fd783e..148ee39597 100644 --- a/SAFETY.i18n.yaml +++ b/SAFETY.i18n.yaml @@ -1,6 +1,19 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for SAFETY.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write SAFETY.md -SAFETY.md: 2b76f00e0619ee69553afdc507df361080f4d3ac -SAFETY.zh.md: 6f7dae47b3e47ddfb155adb9c8c868b516d75360 +/safety: + en: a374f70c56b3f221 + zh: a07f7a9ba9af40fc +/safety/experimental-status: + en: 39a995a6c819f73e + zh: e577df19392736ac +/safety/sandbox-limitations: + en: a2b6cf1311f3abb6 + zh: c3694663312f4d6c +/safety/responsible-use: + en: ca3e9da7c0b360fe + zh: c0a6891a197d48cd +/safety/no-warranty-or-liability: + en: 71a2989f530f2018 + zh: e90e55f11068a91f diff --git a/apps/cli/README.i18n.yaml b/apps/cli/README.i18n.yaml index 430fd91f46..e585c5c6f2 100644 --- a/apps/cli/README.i18n.yaml +++ b/apps/cli/README.i18n.yaml @@ -1,6 +1,22 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write apps/cli/README.md -README.md: 765440438175083d2dbd765592731df5ec148bcf -README.zh.md: 08db105b160199cb9a64276f273b8b00f0d21c09 +/deepseek-ai-dsh: + en: ebdc75fa0da18801 + zh: 5c6cd2554b8f8a98 +/deepseek-ai-dsh/entry-modes: + en: 093936b9e1a59bea + zh: 12be7d2d931d9671 +/deepseek-ai-dsh/app-arguments: + en: cc03e6b75206661b + zh: 99e41f4143198352 +/deepseek-ai-dsh/profiles: + en: 79cad979b0f7895c + zh: b0f922a4b43accf8 +/deepseek-ai-dsh/optional-overlays: + en: c1b3ea3b79a975e4 + zh: 61070ee19b59f7e6 +/deepseek-ai-dsh/development: + en: 99a36e4f7ea3f9c7 + zh: 07ca2934de700caa diff --git a/apps/cli/composition.md b/apps/cli/composition.md index 81097704db..e72a1f0ce6 100644 --- a/apps/cli/composition.md +++ b/apps/cli/composition.md @@ -190,8 +190,10 @@ flowchart LR cfg --> plugin_dsh_base_agent_loop plugin_dsh_base_fs_sandbox["fs-sandbox
@deepseek-ai/dsh-fs-sandbox"] cfg --> plugin_dsh_base_fs_sandbox - plugin_dsh_base_llm_deepseek["llm-deepseek
@deepseek-ai/dsh-llm-deepseek"] + plugin_dsh_base_llm_deepseek["llm-deepseek
@deepseek-ai/dsh-llm-deepseek-api-key"] cfg --> plugin_dsh_base_llm_deepseek + plugin_dsh_base_llm_deepseek_account["llm-deepseek-account
@deepseek-ai/dsh-llm-deepseek-account"] + cfg --> plugin_dsh_base_llm_deepseek_account ``` | Plugin id | Package / module | @@ -287,7 +289,8 @@ flowchart LR | `system-prompt` | `@deepseek-ai/dsh-system-prompt` | | `agent-loop` | `@deepseek-ai/dsh-agent-loop` | | `fs-sandbox` | `@deepseek-ai/dsh-fs-sandbox` | -| `llm-deepseek` | `@deepseek-ai/dsh-llm-deepseek` | +| `llm-deepseek` | `@deepseek-ai/dsh-llm-deepseek-api-key` | +| `llm-deepseek-account` | `@deepseek-ai/dsh-llm-deepseek-account` | Source config: [`packages/bundle/base/cordis.patch.yml`](../../packages/bundle/base/cordis.patch.yml). diff --git a/apps/cli/package.json b/apps/cli/package.json index b433c2407f..b9513d0184 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh", "description": "dsh CLI: profile launch, plugin management, and configuration inspection", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, @@ -120,6 +120,8 @@ "@deepseek-ai/dsh-host-webserver": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:*", "@deepseek-ai/dsh-llm-deepseek": "workspace:*", + "@deepseek-ai/dsh-llm-deepseek-api-key": "workspace:*", + "@deepseek-ai/dsh-llm-deepseek-account": "workspace:*", "@deepseek-ai/dsh-llm-mock-server": "workspace:*", "@deepseek-ai/dsh-llm-pi-ai": "workspace:*", "@deepseek-ai/dsh-llm-replay": "workspace:*", diff --git a/apps/cli/reference/README.i18n.yaml b/apps/cli/reference/README.i18n.yaml index 3d7319ec04..96646ef29a 100644 --- a/apps/cli/reference/README.i18n.yaml +++ b/apps/cli/reference/README.i18n.yaml @@ -1,6 +1,31 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write apps/cli/reference/README.md -README.md: 094d8ba5bfaa851429adbfa872105550e8b63fe2 -README.zh.md: 2bd6abde1cb854ec9598f8f7cc10cc0a7538d2f9 +/dsh-cli-behavior-reference: + en: d25712a65d21ab45 + zh: b1c57b706bc64085 +/dsh-cli-behavior-reference/profile-boot: + en: e3a159750f5f9ed3 + zh: e02d9004fcc239f9 +/dsh-cli-behavior-reference/profile-boot/app-arguments: + en: 241e5525aa09a33b + zh: 398f853143097154 +/dsh-cli-behavior-reference/profile-boot/config-schema-dump: + en: a356f8a68f3b3685 + zh: c718713b5d709295 +/dsh-cli-behavior-reference/startup-diagnostics: + en: d6368bf97a02bd57 + zh: 2ab7888a108961ce +/dsh-cli-behavior-reference/plugin-management: + en: 9980ff1600fa9460 + zh: cc66ba45e27b5540 +/dsh-cli-behavior-reference/web-profile: + en: 12bba432c07573bf + zh: ab6b365cfb95003f +/dsh-cli-behavior-reference/shared-deployment-behavior: + en: 24e3da3716d261fe + zh: 060611966db4ca69 +/dsh-cli-behavior-reference/source-execution: + en: 05c2b23790f7b296 + zh: 51f809020fb230a1 diff --git a/apps/cli/src/plugin.ts b/apps/cli/src/plugin.ts index a246af7573..8f60bf8bfc 100644 --- a/apps/cli/src/plugin.ts +++ b/apps/cli/src/plugin.ts @@ -74,7 +74,10 @@ export async function runPlugin(profile: string, args: readonly string[]): Promi onOutput: (text, stream) => { process[stream].write(text) }, }) if (result.exitCode === 127) process.stderr.write('dsh: pnpm was not found; install pnpm and make it available on PATH.\n') - if (result.exitCode !== 0) process.stderr.write(`dsh: pnpm failed; diagnostics: ${result.logPath}\n`) + for (const { name, version, runtimeVersion } of result.incompatible ?? []) { + process.stderr.write(`dsh: to accept the risk, run: dsh plugin --profile ${profile} allow-version ${name}@${version} --dsh-version ${runtimeVersion} --accept-risk\n`) + } + if (result.exitCode !== 0) process.stderr.write(`dsh: plugin command failed; diagnostics: ${result.logPath}\n`) if (result.exitCode !== 0 && args.some(argument => /^git\+|^github:|\.git(?:#|$)/.test(argument))) { process.stderr.write(`dsh: git-hosted plugins build on install via their prepare script, which pnpm blocks until allowed — add the exact key pnpm printed above under allowBuilds in ${join(resolveProfileDir(profile), 'pnpm-workspace.yaml')}, then re-run\n`) } diff --git a/apps/cli/tests/built-bin.e2e.ts b/apps/cli/tests/built-bin.e2e.ts index 874e216499..b26b3e538c 100644 --- a/apps/cli/tests/built-bin.e2e.ts +++ b/apps/cli/tests/built-bin.e2e.ts @@ -1246,7 +1246,7 @@ describe.skipIf(!existsSync(dshBin))('dsh BUILT bin (node lib/bin.js, no tsx)', ['deepseek-llm-api-extensions', '@deepseek-ai/dsh-deepseek-llm-api-extensions'], ['session-log-deepseek', '@deepseek-ai/dsh-session-log-deepseek'], ['plugin-package-inventory-deepseek', '@deepseek-ai/dsh-plugin-package-inventory-deepseek'], - ['llm-deepseek', '@deepseek-ai/dsh-llm-deepseek'], + ['llm-deepseek', '@deepseek-ai/dsh-llm-deepseek-api-key'], ['sandbox', '@deepseek-ai/dsh-sandbox-local'], ['session-projection', '@deepseek-ai/dsh-session-projection'], ['sandbox-policy', '@deepseek-ai/dsh-sandbox-policy'], diff --git a/apps/cli/tests/plugin.spec.ts b/apps/cli/tests/plugin.spec.ts index f3163d5d3d..1a69b62693 100644 --- a/apps/cli/tests/plugin.spec.ts +++ b/apps/cli/tests/plugin.spec.ts @@ -78,7 +78,20 @@ it.each([0, 1])('forwards ordinary pnpm output and exit status %s', async (exitC expect(await runPlugin('test', ['list'])).toBe(exitCode) expect(stdout).toHaveBeenCalledWith('pnpm output') if (exitCode === 0) expect(stderr).not.toHaveBeenCalled() - else expect(stderr).toHaveBeenCalledWith('dsh: pnpm failed; diagnostics: /profile/log\n') + else expect(stderr).toHaveBeenCalledWith('dsh: plugin command failed; diagnostics: /profile/log\n') +}) + +it('names the exact grant command for each package a compatibility check refused', async () => { + const { stderr } = fixture() + vi.mocked(runPluginCommand).mockResolvedValue({ + exitCode: 1, output: '', truncated: false, logPath: '/profile/log', + incompatible: [{ name: '@example/plugin', version: '1.2.3', runtimeVersion: '0.1.0', peers: { '@deepseek-ai/dsh': '^9.0.0' } }], + }) + expect(await runPlugin('test', ['add', '@example/plugin'])).toBe(1) + expect(stderr.mock.calls.map(call => call[0])).toEqual([ + 'dsh: to accept the risk, run: dsh plugin --profile test allow-version @example/plugin@1.2.3 --dsh-version 0.1.0 --accept-risk\n', + 'dsh: plugin command failed; diagnostics: /profile/log\n', + ]) }) it('forwards all other commands unchanged and retains package diagnostics', async () => { diff --git a/apps/cli/tests/profiles/acp/tests/fixtures/control-surface/cordis.yml b/apps/cli/tests/profiles/acp/tests/fixtures/control-surface/cordis.yml index a74e909b1b..fa96b68772 100644 --- a/apps/cli/tests/profiles/acp/tests/fixtures/control-surface/cordis.yml +++ b/apps/cli/tests/profiles/acp/tests/fixtures/control-surface/cordis.yml @@ -1,7 +1,7 @@ # Keyless generic ACP v1 control-surface patch over `dsh --profile acp`. - id: llm-deepseek - name: '@deepseek-ai/dsh-llm-deepseek' + name: '@deepseek-ai/dsh-llm-deepseek-api-key' disabled: true - id: acp diff --git a/apps/cli/tests/profiles/acp/tests/fixtures/image-offload.cordis.yml b/apps/cli/tests/profiles/acp/tests/fixtures/image-offload.cordis.yml index aec25ed875..21a9ead728 100644 --- a/apps/cli/tests/profiles/acp/tests/fixtures/image-offload.cordis.yml +++ b/apps/cli/tests/profiles/acp/tests/fixtures/image-offload.cordis.yml @@ -2,7 +2,7 @@ # local provider endpoint is supplied by the snapshot test; the real attachment # store and ACP bridge carry two uploaded images into one model request. - id: llm-deepseek - name: '@deepseek-ai/dsh-llm-deepseek' + name: '@deepseek-ai/dsh-llm-deepseek-api-key' config: apiKeyEnv: DSH_SNAPSHOT_API_KEY baseURL: !!js process.env.DSH_SNAPSHOT_BASE_URL diff --git a/apps/cli/tests/profiles/headless/credentials-snapshot.patch.yml b/apps/cli/tests/profiles/headless/credentials-snapshot.patch.yml index 79757baa74..8293d9919f 100644 --- a/apps/cli/tests/profiles/headless/credentials-snapshot.patch.yml +++ b/apps/cli/tests/profiles/headless/credentials-snapshot.patch.yml @@ -9,6 +9,9 @@ - id: llm-deepseek disabled: true +- id: llm-deepseek-account + disabled: true + - id: agent-loop config: agents: @@ -24,6 +27,6 @@ - insert: - id: llm-deepseek-keyless - name: '@deepseek-ai/dsh-llm-deepseek' + name: '@deepseek-ai/dsh-llm-deepseek-api-key' config: baseURL: 'http://127.0.0.1:9' diff --git a/apps/cli/tests/profiles/headless/tests/harness.ts b/apps/cli/tests/profiles/headless/tests/harness.ts index 9c17fa27f4..c07b4b73fd 100644 --- a/apps/cli/tests/profiles/headless/tests/harness.ts +++ b/apps/cli/tests/profiles/headless/tests/harness.ts @@ -8,7 +8,7 @@ import * as BashEnvPlugin from '@deepseek-ai/dsh-shell-env' import LocalSubprocessRuntime from '@deepseek-ai/dsh-subprocess-local' import * as ToolBash from '@deepseek-ai/dsh-tool-bash' import * as ToolTodo from '@deepseek-ai/dsh-tool-todo' -import * as LlmDeepSeek from '@deepseek-ai/dsh-llm-deepseek' +import * as LlmDeepSeek from '@deepseek-ai/dsh-llm-deepseek-api-key' import TokenMeter from '@deepseek-ai/dsh-token-meter' import ToolResultPruner from '@deepseek-ai/dsh-compaction-tool-result-pruner' import JsonlSessionPersistence from '@deepseek-ai/dsh-session-persistence-jsonl' diff --git a/apps/cli/tests/profiles/headless/tests/ptc.e2e.ts b/apps/cli/tests/profiles/headless/tests/ptc.e2e.ts index 4e0fc43235..ba55c91d16 100644 --- a/apps/cli/tests/profiles/headless/tests/ptc.e2e.ts +++ b/apps/cli/tests/profiles/headless/tests/ptc.e2e.ts @@ -17,7 +17,7 @@ import { LocalBashExecutor } from '@deepseek-ai/dsh-bash-local' import * as BashEnvPlugin from '@deepseek-ai/dsh-shell-env' import LocalSubprocessRuntime from '@deepseek-ai/dsh-subprocess-local' import * as ToolBash from '@deepseek-ai/dsh-tool-bash' -import * as LlmDeepSeek from '@deepseek-ai/dsh-llm-deepseek' +import * as LlmDeepSeek from '@deepseek-ai/dsh-llm-deepseek-api-key' import NodeRuntime from '@deepseek-ai/dsh-ptc-runtime-node' import Sandbox from '@deepseek-ai/dsh-sandbox-local' import SandboxPolicy from '@deepseek-ai/dsh-sandbox-policy' diff --git a/apps/desktop-host/package.json b/apps/desktop-host/package.json index eea02dc7ce..78678127d0 100644 --- a/apps/desktop-host/package.json +++ b/apps/desktop-host/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-desktop-host", "description": "Private Node-mode host process for the Electron desktop application", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "private": true, "license": "MIT", "type": "module", diff --git a/apps/desktop-host/tests/platform-session.spec.ts b/apps/desktop-host/tests/platform-session.spec.ts index 3fee3c2d5e..7be4154979 100644 --- a/apps/desktop-host/tests/platform-session.spec.ts +++ b/apps/desktop-host/tests/platform-session.spec.ts @@ -20,6 +20,7 @@ class Account extends DeepSeekAccount { override async startSignIn() { return state } override async cancelSignIn() { return state } override async signOut() { return state } + override async rejectToken() {} override async resolveToken() { return undefined } override async getPlatformSession() { this.reading.resolve(undefined); return this.read() } override async *watch(signal: AbortSignal) { diff --git a/apps/desktop/README.i18n.yaml b/apps/desktop/README.i18n.yaml index d25e3c5ef8..b4f6e3304b 100644 --- a/apps/desktop/README.i18n.yaml +++ b/apps/desktop/README.i18n.yaml @@ -1,6 +1,67 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write apps/desktop/README.md -README.md: ec3f2f44d5e49db00bd595588a0594bcee0a1538 -README.zh.md: 50fba340a0edc114a75d4b6363b8e6c42be0c45f +/deepseek-harness-desktop: + en: 907e8bc5ebef2678 + zh: f23af881b27cad94 +/deepseek-harness-desktop/key-technical-decisions: + en: 47ec880441223749 + zh: 3be7731db888b4a4 +/deepseek-harness-desktop/key-technical-decisions/bundled-workspace-dependencies: + en: c2eb16f568cd8554 + zh: 686d64af17b10375 +/deepseek-harness-desktop/installation-ownership: + en: 3fe85101acf17b0a + zh: 70cd207cadc85b94 +/deepseek-harness-desktop/installation-ownership/runtime-and-plugin-activation: + en: 0d11af8639977a6d + zh: 86b086b12d2210d3 +/deepseek-harness-desktop/develop: + en: 99f5299ebcf69b97 + zh: 0411074daee0cd79 +/deepseek-harness-desktop/develop/startup-onboarding: + en: f01d0dbafe8b1613 + zh: 91ad92f5d7e505c4 +/deepseek-harness-desktop/develop/welcome-window-appearance: + en: 7220801ccc3b2e6b + zh: 042dc97976aef979 +/deepseek-harness-desktop/package: + en: 4cd8a8da6977928d + zh: 9f624855a2edac37 +/deepseek-harness-desktop/package/release-versions: + en: f461b255133384cc + zh: 2b9db718f22fdd04 +/deepseek-harness-desktop/package/runtime-file-selection: + en: 7d72469be4975afe + zh: 2f644b582cb581be +/deepseek-harness-desktop/package/upload-updates: + en: 7828da306d42ed2e + zh: 0b8bc61c5f612dcb +/deepseek-harness-desktop/package/unsigned-windows-test-installer: + en: cfd5780dd26a8e46 + zh: f7a16b1ede793b7b +/deepseek-harness-desktop/package/windows-installer-interface: + en: f176a8b1c7de3064 + zh: 6ea2dbe6bb808c34 +/deepseek-harness-desktop/package/windows-ev-signing: + en: 8efe3498dbe8686d + zh: a88c16f20a9430f3 +/deepseek-harness-desktop/updates: + en: 8ce8647a3ff94b9a + zh: 93250420c9d6f4ce +/deepseek-harness-desktop/updates/mandatory-update-policy: + en: b99d35abf25d5347 + zh: ed250334da3f149d +/deepseek-harness-desktop/updates/local-updater-qualification: + en: bf34de891411c618 + zh: aa6923fd5060174b +/deepseek-harness-desktop/low-level-development-overrides: + en: 0b225f914142ef0b + zh: 9ffd07768d37824e +/deepseek-harness-desktop/known-limitations: + en: e084ae80b7ebfaf1 + zh: f20ba012b4330a3f +/deepseek-harness-desktop/dev-note: + en: 8e26b460ba31f21b + zh: fbcd0307b3867125 diff --git a/apps/desktop/README.md b/apps/desktop/README.md index ec3f2f44d5..fb83b0fc66 100644 --- a/apps/desktop/README.md +++ b/apps/desktop/README.md @@ -14,6 +14,8 @@ Embedded Platform documents use a dedicated non-persistent WebContentsView sessi Desktop Host Platform API requests use the same `x-client-platform` mapping as update-policy requests. The account provider owns [API-only header configuration](../../packages/credentials/deepseek-account-platform/README.md#use-this-package). +A server-expired account credential returns to Welcome when no official API key is configured; an available API key keeps the workspace open. Explicit sign-out follows the same rule. Both Welcome and the workspace display the localized expiry notice. + Desktop microphone access is restricted to audio requests from the primary `dsh-app://app` frame. macOS uses system microphone authorization and a packaged usage description. Press F12 (Fn+F12 on media-key keyboards), Command+Option+I on macOS, or Ctrl+Shift+I on Windows to toggle DevTools for the focused application page, including in packaged builds. These native shortcuts use hidden application-menu items. Update overlays and packaged embedded browser guests disable DevTools. @@ -50,6 +52,8 @@ Node prepares the bundled interpreters and Python libraries without a system Pyt The [thin-wrapper decision](../../.agents/notes/implemented/architecture/2026-09-10-desktop-web-wrapper.md) owns shared Web behavior and Desktop adapters. The [Electron packaging and update decision](../../.agents/notes/implemented/architecture/2026-08-25-electron-desktop-packaging-and-updates.md) owns release identity, signing, and update qualification. +Welcome loads the shared Toast palette and shadow tokens, with system typography for body-mounted notifications. + ## Installation ownership Electron owns `$DSH_HOME/profiles/desktop`. Its `dependencies` contains packages installed by pnpm; `dsh.profile.bundles` contains the built-in bundles followed by enabled plugins. The signed application supplies dsh, the private Desktop Host, and their production packages from `resources/app.asar/dsh`. Packaged applications select runtime profile resolution without creating package links; development profiles use filesystem links. Both host and plugins execute in the same Electron Node-mode process; Desktop does not enable `--preserve-symlinks`. The CLI cannot boot or mutate this profile. @@ -410,7 +414,9 @@ An unpackaged Electron process uses `.desktop-build/development/project` under i - The desktop shell shares sessions, settings, credentials, workspaces, and storage under `$DSH_HOME` with CLI dsh, while executable packages, plugin activation, and lockfiles remain separate. - Unpackaged startup on an Electron win32-arm64 host now succeeds, but the payload remains x64: the architecture check in `packages/skill/tool-workspace-dependencies/src/index.ts` compares the recorded payload architecture against the host `process.arch`, so the `load_workspace_dependencies` tool can still reject the primary runtime. -Sign in opens the configured platform page in the system browser. The Host owns PKCE and a temporary loopback callback, saves the credential before entering the workspace, and redirects the browser to the platform completion page. Opened and copied authorization links carry the effective Desktop theme as `theme=light` or `theme=dark`; `system` resolves at the time of the action. Cancel withdraws the local attempt even if the platform page later approves it. Settings offers Account sign-out; without a separate API key, sign-out returns to the welcome window. Packaged applications register dsh://open to show the window without passing credentials. On macOS, the development launcher prepares an ad-hoc-signed `Harness Dev.app` under `.desktop-build/development`, declares `dsh` in its Info.plist, and registers it with Launch Services. It loads the current workspace and records the selected development home, browser-data path, and debug settings for cold starts. Starting this bundle makes it the default `dsh://` handler; starting the packaged application registers the packaged handler again. The generated bundle does not contain account tokens and requires the workspace and prepared runtime to remain available. +Sign in opens the configured platform page in the system browser. The Host owns PKCE and a temporary loopback callback, saves the credential before entering the workspace, and redirects the browser to the platform completion page. Opened and copied authorization links carry the effective Desktop theme as `theme=light` or `theme=dark`; `system` resolves at the time of the action. Cancel withdraws the local attempt even if the platform page later approves it. Settings offers Account sign-out; without a separate API key, sign-out returns to the welcome window. Successful browser sign-in switches Welcome to the workspace without activating the application; the completion page’s dsh://open link brings it to the foreground. Packaged applications register dsh://open to show the window without passing credentials. On macOS, the development launcher prepares an ad-hoc-signed `Harness Dev.app` under `.desktop-build/development`, declares `dsh` in its Info.plist, and registers it with Launch Services. It loads the current workspace and records the selected development home, browser-data path, and debug settings for cold starts. Starting this bundle makes it the default `dsh://` handler; starting the packaged application registers the packaged handler again. The generated bundle does not contain account tokens and requires the workspace and prepared runtime to remain available. + +When an expired account returns to Welcome, the main process retains a one-time notification until the renderer requests it over window-owned IPC. Reloading Welcome does not repeat the notice; manual sign-out and cold startup do not create it. An expired login displays a timeout heading with explicit Sign in again and Add API Key actions. Opening the API-key form dismisses the authorization view; late account-state notifications do not replace an in-progress key entry. diff --git a/apps/desktop/README.zh.md b/apps/desktop/README.zh.md index 50fba340a0..490eff4b35 100644 --- a/apps/desktop/README.zh.md +++ b/apps/desktop/README.zh.md @@ -14,6 +14,8 @@ Creator 和 Web Plugin Manager 在 Electron Node 模式下使用 Desktop 内置 Desktop Host 的 Platform API 请求与更新策略请求使用相同的 `x-client-platform` 映射。账号 provider 管理[仅 API 使用的请求头配置](../../packages/credentials/deepseek-account-platform/README.zh.md#use-this-package)。 +账号凭据被服务端判定失效后,未配置官方 API key 时返回 Welcome;有可用 API key 时保持工作区打开。主动退出登录遵循相同规则。Welcome 和工作区均显示本地化的登录失效提示。 + 桌面麦克风访问仅允许主 `dsh-app://app` 页面发起的音频请求。macOS 使用系统麦克风授权与随包用途说明。 按 F12(多媒体功能键键盘上为 Fn+F12)、macOS 的 Command+Option+I 或 Windows 的 Ctrl+Shift+I,可切换当前获得焦点的应用页面的 DevTools,打包版本同样支持。这些原生快捷键通过隐藏的应用菜单项注册。更新遮罩和打包版本的内嵌浏览器禁用 DevTools。 @@ -50,6 +52,8 @@ Node 准备内置解释器和 Python 库,无需系统 Python 或 pip。[下载 [薄壳决策](../../.agents/notes/implemented/architecture/2026-09-10-desktop-web-wrapper.zh.md)负责共享 Web 行为与 Desktop 适配。[Electron 打包与更新决策](../../.agents/notes/implemented/architecture/2026-08-25-electron-desktop-packaging-and-updates.zh.md)负责发布身份、签名及更新验收。 +Welcome 加载共享 Toast 的配色和阴影变量,挂载在 body 下的通知使用系统字体。 + ## 安装归属 Electron 拥有 `$DSH_HOME/profiles/desktop`。其 `dependencies` 包含 pnpm 安装的包;`dsh.profile.bundles` 包含内置 bundle,后接已启用插件。签名应用从 `resources/app.asar/dsh` 提供 dsh、私有 Desktop Host 及其生产依赖。打包应用选择 runtime profile 解析,不创建包链接;开发 profile 使用文件系统链接。宿主与插件在同一个 Electron Node 模式进程中执行;Desktop 不启用 `--preserve-symlinks`。CLI 不能启动或修改此 profile。 @@ -410,7 +414,9 @@ node apps/desktop/node_modules/pnpm/bin/pnpm.mjs --dir apps/desktop run test:upd - 桌面壳与 CLI dsh 共享 `$DSH_HOME` 下的会话、设置、凭据、工作区和存储,但可执行包、插件激活和锁文件彼此隔离。 - 在 Electron win32-arm64 宿主上,未打包启动现在可以成功,但载荷仍为 x64:`packages/skill/tool-workspace-dependencies/src/index.ts` 的架构校验会把载荷记录的架构与宿主 `process.arch` 比较,因此 `load_workspace_dependencies` 工具仍可能拒绝 primary runtime。 -登录会在系统浏览器中打开配置的平台页面。Host 负责 PKCE 和临时本机回调,在进入工作区前保存凭证,再将浏览器跳转到平台完成页。打开和复制的授权链接通过 `theme=light` 或 `theme=dark` 携带当前生效的 Desktop 主题;`system` 在执行操作时解析。即使平台页面随后批准,取消仍会撤销本地尝试。设置中的账号页面提供退出;没有独立 API Key 时,退出后返回欢迎窗。打包应用注册 dsh://open,只显示窗口而不传递凭证。macOS 开发启动器在 `.desktop-build/development` 下准备经临时签名的 `Harness Dev.app`,在 Info.plist 中声明 `dsh` 并注册到 Launch Services。它加载当前工作区,并记录选定的开发 home、浏览器数据路径和调试设置,以供冷启动使用。启动此应用会将其设为 `dsh://` 默认处理程序;启动打包应用会重新注册打包版处理程序。生成的应用包不包含账号 token,依赖工作区和已准备的运行环境继续存在。 +登录会在系统浏览器中打开配置的平台页面。Host 负责 PKCE 和临时本机回调,在进入工作区前保存凭证,再将浏览器跳转到平台完成页。打开和复制的授权链接通过 `theme=light` 或 `theme=dark` 携带当前生效的 Desktop 主题;`system` 在执行操作时解析。即使平台页面随后批准,取消仍会撤销本地尝试。设置中的账号页面提供退出;没有独立 API Key 时,退出后返回欢迎窗。浏览器登录成功后,Welcome 切换到工作区但不激活应用;完成页的 dsh://open 链接负责将客户端置前。打包应用注册 dsh://open,只显示窗口而不传递凭证。macOS 开发启动器在 `.desktop-build/development` 下准备经临时签名的 `Harness Dev.app`,在 Info.plist 中声明 `dsh` 并注册到 Launch Services。它加载当前工作区,并记录选定的开发 home、浏览器数据路径和调试设置,以供冷启动使用。启动此应用会将其设为 `dsh://` 默认处理程序;启动打包应用会重新注册打包版处理程序。生成的应用包不包含账号 token,依赖工作区和已准备的运行环境继续存在。 + +账号失效并返回 Welcome 时,主进程保留一次性通知,直到渲染器通过所属窗口的 IPC 领取。重新加载 Welcome 不会重复提示;主动退登和冷启动不会生成该通知。 登录超时后显示超时标题,并提供重新登录和添加 API Key 按钮。打开 API Key 表单会关闭授权视图;后续账号状态通知不会覆盖正在填写的密钥。 diff --git a/apps/desktop/package.json b/apps/desktop/package.json index db69834af2..e47bc6614b 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-desktop", "description": "Electron desktop shell for a bundled dsh runtime and external plugins", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "private": true, "license": "MIT", "type": "module", diff --git a/apps/desktop/renderer/welcome.css b/apps/desktop/renderer/welcome.css index 3d5fc88460..3b4da2defb 100644 --- a/apps/desktop/renderer/welcome.css +++ b/apps/desktop/renderer/welcome.css @@ -1,7 +1,7 @@ @import url('./assets/window-material.css'); /* Figma 2121:39336 / 2138:44626, Platform modes. Native material supplies the blur. */ -:root { +body { color-scheme: light dark; --dsw-alias-label-primary: #0f1115; --dsw-alias-label-secondary: #61666b; @@ -23,7 +23,7 @@ } @media (prefers-color-scheme: dark) { - :root { + body { --dsw-alias-label-primary: #f9fafb; --dsw-alias-label-secondary: #cfd3d6; --dsw-alias-label-tertiary: #adb2b8; @@ -52,6 +52,8 @@ body { margin: 0; overflow: hidden; background: transparent; + font-family: var(--dsw-font-family); + font-weight: 400; } #root { @@ -192,6 +194,7 @@ body { top: calc(100% + 16px); left: 50%; transform: translateX(-50%); + white-space: nowrap; min-width: 58px; height: 28px; padding: 4px 10px; @@ -245,7 +248,7 @@ body { .key-heading h1 { margin: 0; font-size: 20px; - font-weight: 300; + font-weight: 400; line-height: 32px; letter-spacing: 0.01em; } diff --git a/apps/desktop/renderer/welcome.html b/apps/desktop/renderer/welcome.html index 0731e3be96..f8cbeb8e15 100644 --- a/apps/desktop/renderer/welcome.html +++ b/apps/desktop/renderer/welcome.html @@ -6,8 +6,8 @@ - + diff --git a/apps/desktop/src/account-backend.ts b/apps/desktop/src/account-backend.ts index 0db791f631..d816de55fc 100644 --- a/apps/desktop/src/account-backend.ts +++ b/apps/desktop/src/account-backend.ts @@ -63,8 +63,13 @@ export interface DesktopAccountBackend { cancel(id: SignInAttemptId): Promise /** @returns state after local sign-out. */ signOut(): Promise - /** @param listener - state recipient. @param failed - stream failure recipient. @returns stream disposer. */ - watch(listener: (state: AccountView) => void, failed: () => void): () => void + /** + * @param listener - state recipient. + * @param failed - stream failure recipient. + * @param expired - live credential-expiry recipient. + * @returns stream disposer. + */ + watch(listener: (state: AccountView) => void, failed: () => void, expired: () => void): () => void } /** @@ -80,22 +85,27 @@ export function desktopAccountBackend(origin: string, invoke: AccountInvoke, coo return { state: () => call('getState'), start: locale => call('startSignIn', { locale, callbackOrigin: new URL(origin).origin, loginSource: 'desktop' }), cancel: attemptId => call('cancelSignIn', { attemptId }), signOut: () => call('signOut'), - watch(listener, failed) { + watch(listener, failed, expired) { let closed = false let socket: WebSocket | undefined let retry: ReturnType | undefined const connect = (): void => { const streamId = randomUUID() + const expiryStreamId = randomUUID() void cookies().then((cookie) => { if (closed) return const url = new URL(REMOTE_STREAM_MUX_PATH, origin) url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:' socket = new WebSocket(url, { headers: { cookie, origin }, maxPayload: 65_536 }) - socket.on('open', () => socket?.send(JSON.stringify({ type: 'open', streamId, endpoint: 'account/watch', payload: { args: {} } }))) + socket.on('open', () => { + socket?.send(JSON.stringify({ type: 'open', streamId: expiryStreamId, endpoint: 'account/watchExpiry', payload: { args: {} } })) + socket?.send(JSON.stringify({ type: 'open', streamId, endpoint: 'account/watch', payload: { args: {} } })) + }) socket.on('message', (data) => { try { const bytes = Array.isArray(data) ? Buffer.concat(data) : Buffer.isBuffer(data) ? data : Buffer.from(data) const frame = parseRemoteStreamServerMessage(bytes.toString('utf8')) + if (frame.streamId === expiryStreamId && frame.type === 'item' && frame.value === 'session-expired') { expired(); return } if (frame.streamId !== streamId) throw new Error('desktop account: unexpected stream') if (frame.type === 'item') listener(accountView(frame.value)) else socket?.close() diff --git a/apps/desktop/src/client/WelcomePage.tsx b/apps/desktop/src/client/WelcomePage.tsx index 179bc4ef09..b7f4069bcb 100644 --- a/apps/desktop/src/client/WelcomePage.tsx +++ b/apps/desktop/src/client/WelcomePage.tsx @@ -1,6 +1,7 @@ /** Desktop welcome presentation; account and credential operations stay in the preload. */ import { useEffect, useRef, useState } from 'react' import type { FormEvent } from 'react' +import { Toast } from '@deepseek-ai/dsh-client-ui-primitives/src/Toast.tsx' import { StateDot } from '@deepseek-ai/dsh-client-ui-primitives/src/StateDot.tsx' import type { AccountView } from '@deepseek-ai/dsh-deepseek-account/types' import type { WelcomeApi } from '../welcome-api.ts' @@ -9,11 +10,13 @@ type Page = 'entry' | 'key' | 'account' /** * Render the standalone welcome flow using shell-owned operations and localized copy. + * Clearing the account attempt returns the sign-in status page to the initial choices. * @param props.api - isolated preload API; no account credentials reach the renderer. * @returns welcome pages with fixed bottom actions. */ export function Welcome({ api }: { api: WelcomeApi }) { const { messages: m } = api + const [expiryNotice, setExpiryNotice] = useState(false) const [page, setPage] = useState('entry') const pageRef = useRef('entry') const [attempt, setAttempt] = useState(null) @@ -42,15 +45,24 @@ export function Welcome({ api }: { api: WelcomeApi }) { setAttempt(state.attempt) setStarting(false) setCopyFeedback({ status: 'idle' }) - navigate(state.attempt?.phase === 'cancelled' ? 'entry' : 'account') + navigate(state.attempt === null || state.attempt.phase === 'cancelled' ? 'entry' : 'account') } useEffect(() => { mounted.current = true document.documentElement.lang = api.id document.title = m.welcomeTitle + const takeNotice = (): void => { + void api.takeNotice().then((notice) => { + if (mounted.current && notice === 'session-expired') setExpiryNotice(true) + }).catch((_closedChannel: unknown) => { + // A closed Welcome IPC channel must not interrupt the sign-in page. + }) + } + takeNotice() const stop = api.onAccountState((state) => { revision.current++ + takeNotice() showAccount(state) }) return () => { mounted.current = false; stop() } @@ -156,6 +168,7 @@ export function Welcome({ api }: { api: WelcomeApi }) { const heading = page === 'entry' ? 'welcome-heading' : page === 'key' ? 'key-title' : 'auth-status' return <> + {expiryNotice && { setExpiryNotice(false) }} />} {showTabs && ( - // data-conversation-tabs: ui-layout's window drag band matches this - // marker (:has) to deepen only while the tab strip adds header height. + // data-conversation-tabs: marks the tab strip, which the window-chrome + // geometry and the browser coverage lane anchor on.
{tabs.map(viewTab => (
))}
- {state.groups.map((group) => { + {groups.map((group) => { const headingId = `${id}-${group.id}` return (
-
{group.name}
+
{group.id === 'deepseek-account' ? t('provider.account') : group.name}
{group.models.map((model) => { const selected = state.current?.provider === group.id && state.current.model === model.id return ( diff --git a/packages/client/ui-model-selection/src/client/catalog.ts b/packages/client/ui-model-selection/src/client/catalog.ts index d5073d2ab0..cbc92642e7 100644 --- a/packages/client/ui-model-selection/src/client/catalog.ts +++ b/packages/client/ui-model-selection/src/client/catalog.ts @@ -1,7 +1,7 @@ /** One Host-generation model catalog shared by every Session selector. */ import type { Context as ClientContext } from '@deepseek-ai/cordis' -import type { ModelCatalog } from '@deepseek-ai/dsh-api-remotes/client' +import type { ModelCatalog, ModelSelection, ModelProviderGroup } from '@deepseek-ai/dsh-api-remotes/client' import { createSnapshotStore, type SnapshotStore } from '@deepseek-ai/dsh-client-store' /** Observable lifecycle of the shared model catalog. */ @@ -20,6 +20,17 @@ export class ModelCatalogDirectory { error: null, }) + private readonly reasoning = new Map() + + /** + * Read the last advertised reasoning metadata, including unavailable models. + * @param selection - provider and model whose effort is displayed. + * @returns reasoning metadata observed during this Host generation. + */ + reasoningFor(selection: ModelSelection): ModelProviderGroup['models'][number]['reasoning'] { + return this.reasoning.get(JSON.stringify([selection.provider, selection.model])) + } + private generation = 0 private inflight: Promise | undefined @@ -47,6 +58,11 @@ export class ModelCatalogDirectory { throw new Error(`${response.error.code}: ${response.error.message}`) } if (generation === this.generation) { + for (const group of response.value.groups) { + for (const model of group.models) { + this.reasoning.set(JSON.stringify([group.id, model.id]), model.reasoning) + } + } this.store.set({ value: response.value, status: 'ready', error: null }) } return response.value @@ -84,6 +100,7 @@ export class ModelCatalogDirectory { /** Clear Host-specific values and load the replacement Host generation. */ resetGeneration(): void { + this.reasoning.clear() this.invalidate(true) void this.load().catch(() => { /* the selector exposes the shared error */ }) } diff --git a/packages/client/ui-model-selection/src/client/directory.ts b/packages/client/ui-model-selection/src/client/directory.ts index b27811f501..856bfae24d 100644 --- a/packages/client/ui-model-selection/src/client/directory.ts +++ b/packages/client/ui-model-selection/src/client/directory.ts @@ -15,15 +15,11 @@ import type { ModelCatalogDirectory } from './catalog.ts' /** Directory snapshot both entries render from. */ export interface ModelDirectoryState { - /** Effective selection: durable next-request projection, then Host default. */ + /** Saved selection, retained even when its provider or model leaves the catalog. */ current: ModelSelection | null - /** - * Whether an adapter serves the current selection's provider, as the host reports - * it — null before the first load, which is NOT the same as blocked. Read - * this rather than "current matches no group": catalog membership is - * advisory, so a route serving a model it stopped advertising is missing - * from the groups yet perfectly usable. - */ + /** Saved effort caption retained when the selected model is unavailable. */ + retainedEffort?: string + /** Whether the current selection is present in the available catalog; null while unresolved. */ routable: boolean | null /** Successfully loaded provider groups (last good load). */ groups: readonly ModelProviderGroup[] @@ -45,7 +41,6 @@ export class ModelDirectory { /** Latest selection operation wins; an older response never overwrites a newer one. */ private generation = 0 private disposed = false - private resolved = false private readonly unsubscribeCatalog: () => void private readonly unsubscribeSelection: () => void @@ -69,7 +64,7 @@ export class ModelDirectory { } /** - * Ensure the Host generation's shared advisory catalog is loaded. + * Ensure the Host generation's shared available catalog is loaded. * @returns the fresh directory value. */ async load(): Promise { @@ -143,31 +138,30 @@ export class ModelDirectory { if (this.disposed) return const catalog = this.catalog.store.getSnapshot() const projected = modelSelectionProjection(this.projected.getSnapshot()) + const intended = projected?.next ?? catalog.value?.default + const reasoning = intended === undefined ? undefined : this.catalog.reasoningFor(intended) + const effort = intended?.reasoningEffort ?? reasoning?.defaultEffort + const retainedEffort = effort === undefined ? undefined + : reasoning?.efforts.find(level => level.id === effort)?.name ?? effort if (catalog.status !== 'ready' || catalog.value === null || projected === undefined) { - if (this.resolved) { - if (catalog.status === 'error') { - this.store.update((state) => { - state.status = 'error' - state.error = catalog.error - }) - } - return - } this.store.set({ - current: null, + current: catalog.value === null ? null : this.store.getSnapshot().current, + ...retainedEffort === undefined ? {} : { retainedEffort }, routable: null, - groups: [], - failures: [], + groups: catalog.value?.groups ?? [], + failures: catalog.value?.failures ?? [], status: catalog.status === 'error' ? 'error' : 'loading', error: catalog.error, }) return } - const current = projected.next ?? catalog.value.default - this.resolved = true + const selection = projected.next ?? catalog.value.default + const routable = catalog.value.groups.some(group => group.id === selection.provider + && group.models.some(model => model.id === selection.model)) this.store.set({ - current, - routable: catalog.value.routableProviders.includes(current.provider), + current: selection, + ...retainedEffort === undefined ? {} : { retainedEffort }, + routable, groups: catalog.value.groups, failures: catalog.value.failures, status: this.store.getSnapshot().status === 'selecting' diff --git a/packages/client/ui-model-selection/src/client/index.ts b/packages/client/ui-model-selection/src/client/index.ts index d2e25be7c0..7451f225bf 100644 --- a/packages/client/ui-model-selection/src/client/index.ts +++ b/packages/client/ui-model-selection/src/client/index.ts @@ -48,6 +48,8 @@ function rowId(providerId: string, modelId: string): string { } const BUILTIN_DESCRIPTION_KEYS: Readonly> = { + 'deepseek-account/deepseek-v4-flash': 'option.deepseekV4Flash.description', + 'deepseek-account/deepseek-v4-pro': 'option.deepseekV4Pro.description', 'deepseek-official/deepseek-v4-flash': 'option.deepseekV4Flash.description', 'deepseek-official/deepseek-v4-pro': 'option.deepseekV4Pro.description', } @@ -65,12 +67,13 @@ function descriptionOf( function optionsOf(directory: ModelDirectoryState, t: TranslateNS<'model'>): SelectOption[] { const rows: SelectOption[] = [] for (const group of directory.groups) { + const name = group.id === 'deepseek-account' ? t('provider.account') : group.name for (const model of group.models) { const description = descriptionOf(group.id, model, t) rows.push({ id: rowId(group.id, model.id), label: model.name, - detail: description !== undefined ? `${group.name} · ${description}` : group.name, + detail: description !== undefined ? `${name} · ${description}` : name, ...(directory.current !== null && directory.current.provider === group.id && directory.current.model === model.id @@ -81,7 +84,7 @@ function optionsOf(directory: ModelDirectoryState, t: TranslateNS<'model'>): Sel for (const failure of directory.failures) { rows.push({ id: `failure/${failure.id}`, - label: failure.name, + label: failure.id === 'deepseek-account' ? t('provider.account') : failure.name, detail: t('option.loadError', { message: failure.message }), }) } @@ -132,9 +135,7 @@ export function apply(ctx: ClientContext): void { // through the bound translate; the seat component reads the standard seat. const t = ctx.locale.bind(NS) - // The composer-block reason is this plugin's own copy, read at raise time so - // a locale change reaches the next publish. - ctx.plugin(ModelDirectoryResolver, { blockReason: () => t('blocked.composer') }) + ctx.plugin(ModelDirectoryResolver) // Entry 1: the /model popupSelect over the shared directory. ctx.inject(['commandUi', 'modelDirectories'], (scope: ClientContext) => { diff --git a/packages/client/ui-model-selection/src/client/locales.ts b/packages/client/ui-model-selection/src/client/locales.ts index 2e573796ea..bb61b7e931 100644 --- a/packages/client/ui-model-selection/src/client/locales.ts +++ b/packages/client/ui-model-selection/src/client/locales.ts @@ -10,14 +10,15 @@ /** Simplified Chinese dictionary (the key-set source of truth). */ export const zh = { + 'provider.account': 'DeepSeek 账号', 'command.label': '模型', 'command.description': '选择本会话使用的模型', 'option.loadError': '目录加载失败:{message}', 'option.deepseekV4Flash.description': '快速、高效且经济;适合目标明确、常规或并行任务。', 'option.deepseekV4Pro.description': '更强的自主编码、知识与复杂推理能力;适合复杂或质量优先的任务,但成本更高。', - 'trigger.fallback': '选择模型', + 'trigger.fallback': '请选择模型', 'trigger.loading': '正在加载模型…', - 'trigger.selectAria': '选择模型', + 'trigger.selectAria': '请选择模型', 'trigger.aria': '选择模型,当前 {model}', 'trigger.ariaEffort': '选择模型,当前 {model},推理等级 {effort}', 'menu.aria': '模型与推理等级', @@ -30,7 +31,6 @@ export const zh = { 'action.reload': '重新加载', 'warning.groupLoad': '{name} 加载失败:{message}', 'empty.models': '没有可用的模型。', - 'blocked.composer': '当前模型不可用,请先选择模型', 'empty.efforts': '当前模型未提供推理等级。', } satisfies Record @@ -39,6 +39,7 @@ export type ModelKey = keyof typeof zh /** English dictionary, checked complete against the zh key set. */ export const en = { + 'provider.account': 'DeepSeek Account', 'command.label': 'Model', 'command.description': 'Select the model for this conversation', 'option.loadError': 'Catalog failed to load: {message}', @@ -59,6 +60,5 @@ export const en = { 'action.reload': 'Reload', 'warning.groupLoad': '{name} failed to load: {message}', 'empty.models': 'No models available.', - 'blocked.composer': 'This model is unavailable — select one to continue', 'empty.efforts': 'This model provides no reasoning effort levels.', } satisfies Record diff --git a/packages/client/ui-model-selection/src/client/service.ts b/packages/client/ui-model-selection/src/client/service.ts index d92c2c08b3..1e8fe46c0a 100644 --- a/packages/client/ui-model-selection/src/client/service.ts +++ b/packages/client/ui-model-selection/src/client/service.ts @@ -39,16 +39,11 @@ export class ModelDirectoryResolver extends Service { private readonly live: LiveState = { directories: new WeakMapWithValues() } private readonly catalog: ModelCatalogDirectory - /** Localized composer-block copy; this plugin owns the string it raises. */ - private readonly blockReason: () => string - /** * @param ctx - owning root context (the service registers itself as `models`). - * @param config - the bound translator for this plugin's own dictionary. */ - constructor(ctx: Context, config: { blockReason: () => string }) { + constructor(ctx: Context) { super(ctx, 'modelDirectories') - this.blockReason = config.blockReason this.catalog = new ModelCatalogDirectory(ctx) void this.catalog.load().catch(() => { /* selectors expose the shared error */ }) ctx.on('connection/reset', () => { @@ -57,6 +52,7 @@ export class ModelDirectoryResolver extends Service { }) ctx.remote.$on('llm/adapters-updated', () => { this.catalog.refresh() }) ctx.remote.$on('settings/document-updated', () => { this.catalog.refresh() }) + ctx.remote.$on('credentials/record-updated', () => { this.catalog.refresh() }) ctx.remote.$on('credentials/reference-updated', () => { this.catalog.refresh() }) } @@ -83,30 +79,6 @@ export class ModelDirectoryResolver extends Service { binding.session.projections.faceOf('modelSelection'), ) live.directories.set(binding, directory) - // The composer cannot read this plugin (the dependency runs one way), so - // the block is pushed: the Host says whether an adapter serves the - // session's route, and only a definite `false` makes the input inert. - // `null` — before the first load, or after one failed — must not, or a - // slow or unreachable Host would lock a working composer. - const conversation = this.ctx.get('conversation') - if (conversation !== undefined) { - const publish = (): void => { - if (sessions.binding(sessionId) !== binding) return - conversation.blocks.set(sessionId, directory.store.getSnapshot().routable === false - ? { reason: this.blockReason() } - : undefined) - } - publish() - actx.effect(() => { - const stop = directory.store.subscribe(publish) - return () => { - stop() - const current = sessions.binding(sessionId) - if (current !== undefined && current !== binding && live.directories.get(current) !== undefined) return - conversation.blocks.set(sessionId, undefined) - } - }, 'ui-model-selection: composer block') - } actx.effect(() => () => { directory.dispose() live.directories.delete(binding) diff --git a/packages/client/ui-model-selection/tests/browser-plugin.client.spec.ts b/packages/client/ui-model-selection/tests/browser-plugin.client.spec.ts index ecae6a1281..0d035379da 100644 --- a/packages/client/ui-model-selection/tests/browser-plugin.client.spec.ts +++ b/packages/client/ui-model-selection/tests/browser-plugin.client.spec.ts @@ -71,19 +71,21 @@ async function bench(locale: 'zh' | 'en' = 'zh') { let selected = defaultSelection const calls = { models: 0, select: 0 } const projections = new Map>() - // Whether the Host reports an adapter for the current route; the composer - // block follows this, never catalog membership. + // Whether the Host advertises available models for the current route. let routable = true + let catalogFailure = false + let groups = GROUPS let selectionFailure: RemoteError<'session/writer-held'> | undefined const sessionRemote = { modelCatalog: () => { calls.models += 1 + if (catalogFailure) return Promise.reject(new Error('catalog offline')) return Promise.resolve({ ok: true as const, value: { default: defaultSelection, routableProviders: routable ? ['deepseek-official'] : [], - groups: GROUPS, + groups: routable ? groups : [], failures: [], }, }) @@ -186,6 +188,8 @@ async function bench(locale: 'zh' | 'en' = 'zh') { setHostCurrent: (selection: ModelSelection) => { defaultSelection = selection }, setProjected: (id: SessionId, value: ModelSelectionProjection) => { projections.get(id)?.set(value) }, address: (id: SessionId) => { addressed.add(id) }, + setGroups: (next: typeof GROUPS) => { groups = next }, + setCatalogFailure: (next: boolean) => { catalogFailure = next }, setRoutable: (next: boolean) => { routable = next }, blockOf: (key: string) => blocks.get(sid(key)), } @@ -281,6 +285,40 @@ describe('ui-model-selection dual entry', () => { }) }) + it.each(['en', 'zh'] as const)('localizes account provider details in the %s model popup', async (locale) => { + const b = await bench(locale) + try { + b.setGroups([{ ...GROUPS[0]!, id: 'deepseek-account', name: 'DeepSeek Account' }]) + b.remote.emit('llm/adapters-updated', []) + b.mint('s1') + const options = await b.popup().options(projection('s1'), new AbortController().signal) + expect(options[0]?.detail).toContain(locale === 'zh' ? 'DeepSeek 账号' : 'DeepSeek Account') + } finally { + await b.ctx.fiber.dispose() + } + }) + + it('removes account models from the picker after sign-out', async () => { + const b = await bench('en') + try { + b.setGroups([{ ...GROUPS[0]!, id: 'deepseek-account', name: 'DeepSeek Account' }, ...GROUPS]) + b.remote.emit('llm/adapters-updated', []) + b.mint('s1') + const before = await b.popup().options(projection('s1'), new AbortController().signal) + expect(before.some(option => option.detail?.includes('DeepSeek Account'))).toBe(true) + b.setGroups(GROUPS) + b.remote.emit('credentials/record-updated', ['deepseek-account-platform']) + await vi.waitFor(() => { + expect(b.ctx.modelDirectories.directoryFor(sid('s1')).store.getSnapshot().groups).toEqual(GROUPS) + }) + const after = await b.popup().options(projection('s1'), new AbortController().signal) + expect(after.some(option => option.detail?.includes('DeepSeek Account'))).toBe(false) + expect(after.length).toBeGreaterThan(0) + } finally { + await b.ctx.fiber.dispose() + } + }) + it('both entries share one directory instance per session, isolated across sessions', async () => { const b = await bench() b.mint('a') @@ -299,7 +337,7 @@ describe('ui-model-selection dual entry', () => { expect(b.calls.models).toBe(1) }) - it('keeps the durable projected selection while the eager catalog reconnects', async () => { + it('hides the effective selection until the reconnected catalog validates it', async () => { const b = await bench() b.mint('s1') const face = b.seat().inject!(sid('s1')) @@ -308,17 +346,17 @@ describe('ui-model-selection dual entry', () => { b.ctx.emit('connection/reset') expect(face.directory.getSnapshot()).toMatchObject({ - current: { provider: 'deepseek-official', model: 'deepseek-v4-pro' }, - status: 'ready', + current: null, + status: 'loading', }) face.load() expect(face.directory.getSnapshot()).toMatchObject({ - current: { provider: 'deepseek-official', model: 'deepseek-v4-pro' }, - status: 'ready', + current: null, + status: 'loading', }) }) - it('keeps the last complete view while a refreshed catalog catches up with projection', async () => { + it('retains the selected model while refreshing its catalog', async () => { const b = await bench() b.mint('s1') const face = b.seat().inject!(sid('s1')) @@ -332,7 +370,9 @@ describe('ui-model-selection dual entry', () => { }) expect(face.directory.getSnapshot()).toMatchObject({ current: { provider: 'deepseek-official', model: 'deepseek-v4-flash' }, - status: 'ready', + groups: GROUPS, + routable: null, + status: 'loading', }) await vi.waitFor(() => { @@ -343,6 +383,30 @@ describe('ui-model-selection dual entry', () => { }) }) + it('retains the last catalog on refresh failure and recovers on retry', async () => { + const b = await bench() + try { + b.mint('s1') + const face = b.seat().inject!(sid('s1')) + await b.ctx.modelDirectories.directoryFor(sid('s1')).load() + b.setCatalogFailure(true) + b.remote.emit('credentials/record-updated', ['DEEPSEEK_API_KEY']) + await vi.waitFor(() => { + expect(face.directory.getSnapshot()).toMatchObject({ + current: { provider: 'deepseek-official', model: 'deepseek-v4-flash' }, + groups: GROUPS, routable: null, status: 'error', error: 'catalog offline', + }) + }) + expect(b.blockOf('s1')).toBeUndefined() + b.setCatalogFailure(false) + await b.ctx.modelDirectories.directoryFor(sid('s1')).load() + expect(face.directory.getSnapshot().routable).toBe(true) + expect(b.blockOf('s1')).toBeUndefined() + } finally { + await b.ctx.fiber.dispose() + } + }) + it('scope disposal drops the directory; a reborn scope gets a fresh one', async () => { const b = await bench() const first = b.mint('s1') @@ -353,75 +417,34 @@ describe('ui-model-selection dual entry', () => { expect(face2.directory).not.toBe(face1.directory) }) - it('keeps the replacement directory block when the previous scope finishes cleanup', async () => { + it('retains saved effort for existing and new sessions after credentials disappear', async () => { const b = await bench() - const first = b.mint('s1') - const oldDirectory = b.ctx.modelDirectories.directoryFor(sid('s1')) - await oldDirectory.load() - const replacement = b.mint('s1') - replacement.projection.set({ lastUsed: null, next: { provider: 'missing', model: 'unserved' } }) - const directory = b.ctx.modelDirectories.directoryFor(sid('s1')) try { - expect(directory).not.toBe(oldDirectory) - expect(directory.store.getSnapshot().routable).toBe(false) - expect(b.blockOf('s1')?.reason).toBe(zh['blocked.composer']) - await first.fiber.dispose() - expect(b.blockOf('s1')?.reason).toBe(zh['blocked.composer']) - await replacement.fiber.dispose() - expect(b.blockOf('s1')).toBeUndefined() - } finally { - await Promise.all([first.fiber.dispose(), replacement.fiber.dispose()]) - await b.ctx.fiber.dispose() - } - }) - - it.each([false, true])('ignores late old projection publication while the replacement is routable=%s', async (routable) => { - const b = await bench() - const first = b.mint('s1') - const oldDirectory = b.ctx.modelDirectories.directoryFor(sid('s1')) - await oldDirectory.load() - const replacement = b.mint('s1') - replacement.projection.set({ lastUsed: null, - next: { provider: routable ? 'deepseek-official' : 'missing', model: 'replacement' } }) - const directory = b.ctx.modelDirectories.directoryFor(sid('s1')) - try { - expect(directory.store.getSnapshot().routable).toBe(routable) - const expected = b.blockOf('s1') - await Promise.resolve().then(() => { - first.projection.set({ lastUsed: null, - next: { provider: routable ? 'missing' : 'deepseek-official', model: 'late-old' } }) + b.setHostCurrent({ provider: 'deepseek-official', model: 'deepseek-v4-flash', reasoningEffort: 'max' }) + b.mint('existing') + const existing = b.ctx.modelDirectories.directoryFor(sid('existing')) + await existing.load() + b.setProjected(sid('existing'), { lastUsed: null, + next: { provider: 'deepseek-official', model: 'deepseek-v4-flash', reasoningEffort: 'high' } }) + b.setRoutable(false) + b.remote.emit('settings/document-updated', ['llm-deepseek', 1]) + expect(existing.store.getSnapshot().retainedEffort).toBe('High') + await vi.waitFor(() => { + expect(existing.store.getSnapshot()).toMatchObject({ current: { provider: 'deepseek-official', model: 'deepseek-v4-flash', reasoningEffort: 'high' }, routable: false, retainedEffort: 'High' }) }) - expect(oldDirectory.store.getSnapshot().routable).toBe(!routable) - expect(b.blockOf('s1')).toBe(expected) + b.mint('new') + const fresh = b.ctx.modelDirectories.directoryFor(sid('new')) + expect(fresh.store.getSnapshot()).toMatchObject({ current: { provider: 'deepseek-official', model: 'deepseek-v4-flash', reasoningEffort: 'max' }, routable: false, retainedEffort: 'Max' }) } finally { - await Promise.all([first.fiber.dispose(), replacement.fiber.dispose()]) await b.ctx.fiber.dispose() } }) - it('clears an obsolete block when the new binding has no model directory', async () => { - const b = await bench() - const first = b.mint('s1') - first.projection.set({ lastUsed: null, next: { provider: 'missing', model: 'unserved' } }) - await b.ctx.modelDirectories.directoryFor(sid('s1')).load() - const replacement = b.mint('s1') - try { - expect(b.blockOf('s1')).toBeDefined() - await first.fiber.dispose() - expect(b.blockOf('s1')).toBeUndefined() - } finally { - await Promise.all([first.fiber.dispose(), replacement.fiber.dispose()]) - await b.ctx.fiber.dispose() - } - }) - - it('blocks the composer only once the Host reports the route unservable', async () => { + it('keeps the composer usable when current catalog models disappear', async () => { const b = await bench() b.mint('s1') const face = b.seat().inject!(sid('s1')) - // Before the first load nothing is known. `null` is not `false`: a slow - // or unreachable Host must never lock a working composer. expect(b.blockOf('s1')).toBeUndefined() face.load() await Promise.resolve() @@ -433,7 +456,7 @@ describe('ui-model-selection dual entry', () => { b.remote.emit('settings/document-updated', ['llm-deepseek', 1]) await Promise.resolve() await Promise.resolve() - expect(b.blockOf('s1')?.reason).toBe(zh['blocked.composer']) + expect(b.blockOf('s1')).toBeUndefined() expect(b.calls.models).toBe(2) // Recovering clears it without a reload of the surface. @@ -445,33 +468,16 @@ describe('ui-model-selection dual entry', () => { expect(b.calls.models).toBe(3) }) - it('never blocks on catalog membership alone', async () => { + it('retains an unavailable durable selection without replacing or rewriting it', async () => { const b = await bench() b.mint('s1') const face = b.seat().inject!(sid('s1')) - // A model the route serves but no longer advertises: the seat prompts for - // a selection, the composer stays usable. Blocking here would break a - // supported configuration (a narrowed `models` list over a live route). - b.setHostCurrent({ provider: 'deepseek-official', model: 'unlisted' }) - face.load() - await Promise.resolve() - await Promise.resolve() - const snapshot = face.directory.getSnapshot() - expect(snapshot.groups.flatMap(group => group.models.map(model => model.id))).not.toContain('unlisted') - expect(b.blockOf('s1')).toBeUndefined() - }) - - it('clears its block when the session scope goes', async () => { - const b = await bench() - const scope = b.mint('s1') - b.setRoutable(false) - const face = b.seat().inject!(sid('s1')) - face.load() - b.remote.emit('llm/adapters-updated', []) - await vi.waitFor(() => { expect(b.blockOf('s1')).toBeDefined() }) - - await scope.fiber.dispose() + const intended = { provider: 'deepseek-official', model: 'unlisted' } + b.setProjected(sid('s1'), { lastUsed: intended, next: intended }) + await vi.waitFor(() => { expect(face.directory.getSnapshot().status).toBe('ready') }) + expect(face.directory.getSnapshot().current).toEqual(intended) expect(b.blockOf('s1')).toBeUndefined() + expect(b.calls.select).toBe(0) }) it('an unknown session fails loud at the seat inject', async () => { diff --git a/packages/client/ui-model-selection/tests/expected/account-first.txt b/packages/client/ui-model-selection/tests/expected/account-first.txt new file mode 100644 index 0000000000..6a8a6e2c70 --- /dev/null +++ b/packages/client/ui-model-selection/tests/expected/account-first.txt @@ -0,0 +1,8 @@ +deepseek-account-1 +deepseek-account-2 +deepseek-official-1 +deepseek-official-2 +custom-1 +custom-2 +another-1 +another-2 diff --git a/packages/client/ui-model-selection/tests/expected/unselected-model.txt b/packages/client/ui-model-selection/tests/expected/unselected-model.txt new file mode 100644 index 0000000000..2e251b01d4 --- /dev/null +++ b/packages/client/ui-model-selection/tests/expected/unselected-model.txt @@ -0,0 +1 @@ +请选择模型High diff --git a/packages/client/ui-model-selection/tests/model-select.client.spec.tsx b/packages/client/ui-model-selection/tests/model-select.client.spec.tsx index 6f1ebf1c52..2aabbf644a 100644 --- a/packages/client/ui-model-selection/tests/model-select.client.spec.tsx +++ b/packages/client/ui-model-selection/tests/model-select.client.spec.tsx @@ -1,5 +1,5 @@ // @vitest-environment jsdom -import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react' +import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react' import { afterEach, describe, expect, it, vi } from 'vitest' import { RemoteError } from '@deepseek-ai/dsh-client-test-runtime' import { SessionId } from '@deepseek-ai/dsh-session/types' @@ -8,7 +8,7 @@ import { createSnapshotStore } from '@deepseek-ai/dsh-client-store' import type { ComponentProps } from 'react' import type { ModelDirectoryState } from '../src/client/directory.ts' import { ModelSelect } from '../src/client/ModelSelect.tsx' -import { zh } from '../src/client/locales.ts' +import { en, zh } from '../src/client/locales.ts' import { zh as commonZh } from '@deepseek-ai/dsh-client-locale/src/locales/zh.ts' // The seat's key domain is model ∪ common; the stub mirrors the real lookup @@ -145,6 +145,19 @@ describe('ModelSelect reasoning effort', () => { expect(screen.queryByText('Fast catalog description')).toBeNull() }) + it.each(['model', 'provider'])('keeps the saved id and effort when the selected %s disappears', (removed) => { + const directory = createSnapshotStore(state({ retainedEffort: 'High' })) + render() + expect(screen.getByRole('button', { name: /选择模型,当前/ }).textContent).toContain('DeepSeek-V4-Flash') + act(() => { directory.update((snapshot) => { + snapshot.groups = removed === 'provider' ? [] : snapshot.groups.map(group => ({ ...group, models: [] })) + snapshot.routable = false + }) }) + expect(screen.getByRole('button', { name: /选择模型,当前/ }).textContent) + .toMatchInlineSnapshot('"deepseek-official/deepseek-v4-flashHigh"') + expect(directory.getSnapshot().current).toEqual(state().current) + }) + it('shows loading until the catalog and Session projection are both ready', async () => { const directory = createSnapshotStore(state({ current: null, @@ -464,3 +477,64 @@ describe('ModelSelect keyboard walk', () => { expect(document.activeElement).toBe(rows[0]) }) }) + +it('shows the unselected model control with the inherited effort', async () => { + const directory = createSnapshotStore(state({ current: null, routable: false, retainedEffort: 'High' })) + render() + const trigger = screen.getByRole('button', { name: '请选择模型' }) + expect(trigger.hasAttribute('disabled')).toBe(false) + await expect(`${trigger.textContent}\n`).toMatchFileSnapshot('./expected/unselected-model.txt') + expect(trigger.textContent).toContain('High') + fireEvent.click(trigger) + expect(screen.queryByRole('menuitem', { name: /模型/ })).toBeNull() + const model = screen.getByRole('menuitemradio', { name: 'DeepSeek-V4-Flash' }) + expect(document.activeElement).toBe(model) + fireEvent.keyDown(model, { key: 'Escape' }) + expect(screen.queryByRole('menu')).toBeNull() +}) + + +it('places account and official models before third-party models', async () => { + const groups = ['custom', 'deepseek-official', 'deepseek-account', 'another'].map(id => ({ + id, name: id, models: [1, 2].map(index => ({ id: `${id}-${index}`, name: `${id}-${index}` })), + })) + const directory = createSnapshotStore(state({ current: null, groups })) + render() + fireEvent.click(screen.getByRole('button', { name: '请选择模型' })) + const names = screen.getAllByRole('menuitemradio').map(row => row.textContent) + expect(names).toEqual([ + 'deepseek-account-1', 'deepseek-account-2', 'deepseek-official-1', 'deepseek-official-2', + 'custom-1', 'custom-2', 'another-1', 'another-2', + ]) + expect(groups.map(group => group.id)).toEqual(['custom', 'deepseek-official', 'deepseek-account', 'another']) + await expect(`${names.join('\n')}\n`).toMatchFileSnapshot('./expected/account-first.txt') +}) + +it.each([en, zh])('localizes the account group while preserving external names', (copy) => { + const groups = ['deepseek-account', 'custom'].map(id => ({ + id, name: id === 'deepseek-account' ? 'DeepSeek Account' : 'My Gateway', + models: [{ id: 'model', name: 'Model' }], + })) + render( key in copy ? copy[key as keyof typeof copy] : key} />) + fireEvent.click(screen.getByRole('button', { name: copy['trigger.selectAria'] })) + expect(screen.getByRole('group', { name: copy['provider.account'] })).toBeTruthy() + expect(screen.getByRole('group', { name: 'My Gateway' })).toBeTruthy() +}) + +it('restores the account model name after login without changing the saved route', () => { + const groups = [{ id: 'deepseek-account', name: 'DeepSeek Account', models: [ + { id: 'deepseek-flash', name: 'DeepSeek Flash', reasoning }, + ] }] + const selected = { provider: 'deepseek-account', model: 'deepseek-flash', reasoningEffort: 'high' } + const directory = createSnapshotStore(state({ current: selected, groups, retainedEffort: 'High' })) + render() + expect(screen.getByRole('button', { name: /选择模型,当前/ }).textContent).toBe('DeepSeek FlashHigh') + act(() => { directory.update((snapshot) => { snapshot.groups = []; snapshot.routable = false }) }) + expect(screen.getByRole('button', { name: /选择模型,当前/ }).textContent) + .toMatchInlineSnapshot('"deepseek-account/deepseek-flashHigh"') + act(() => { directory.update((snapshot) => { snapshot.groups = groups; snapshot.routable = true }) }) + expect(screen.getByRole('button', { name: /选择模型,当前/ }).textContent).toBe('DeepSeek FlashHigh') + expect(directory.getSnapshot().current).toEqual(selected) +}) diff --git a/packages/client/ui-open-in-app/README.i18n.yaml b/packages/client/ui-open-in-app/README.i18n.yaml index b0fa75db3e..5ca5ca0bce 100644 --- a/packages/client/ui-open-in-app/README.i18n.yaml +++ b/packages/client/ui-open-in-app/README.i18n.yaml @@ -1,6 +1,40 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-open-in-app/README.md -README.md: 138be128c291fc4a0611295c54768a95f33f3ae1 -README.zh.md: b81f62f9dbf8ccfbc1822b8a72df95e7169228c0 +/: + en: be11314755d8f4f9 + zh: dd75b03074eea543 +/deepseek-ai-dsh-client-ui-open-in-app: + en: 004b805ac638e884 + zh: 6ac98df58affefcf +/deepseek-ai-dsh-client-ui-open-in-app/summary: + en: e69e4c6df4ddffa1 + zh: d1ef0a722f48e9bd +/deepseek-ai-dsh-client-ui-open-in-app/table-of-contents: + en: d152484eb41ac6b4 + zh: 725b47765ee8f30b +/deepseek-ai-dsh-client-ui-open-in-app/use-this-package: + en: 056e2bd9e3c78dd8 + zh: be35d2ba53be0442 +/deepseek-ai-dsh-client-ui-open-in-app/use-this-package/what-to-expect: + en: 2332d6b555492721 + zh: fb7a4dcdfe52d80b +/deepseek-ai-dsh-client-ui-open-in-app/understand-the-implementation: + en: a33cd11b46e25367 + zh: ba9264617d3e62f1 +/deepseek-ai-dsh-client-ui-open-in-app/further-exploration: + en: 9deb509f65b6edfd + zh: d6cd63b2abc3731b +/deepseek-ai-dsh-client-ui-open-in-app/model-experience: + en: 5f9e6e0fb0438628 + zh: fc9a81185ea6cb14 +/deepseek-ai-dsh-client-ui-open-in-app/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: c2241315dc0c89c9 +/deepseek-ai-dsh-client-ui-open-in-app/known-limitations-and-deferred-work: + en: 3d77fca62d3c8e86 + zh: 3125d32a158e690a +/deepseek-ai-dsh-client-ui-open-in-app/known-limitations-and-deferred-work/dev-note: + en: 739fd95270d14d0a + zh: d5a6b59133ac6b3f diff --git a/packages/client/ui-open-in-app/README.md b/packages/client/ui-open-in-app/README.md index 138be128c2..4f8462b295 100644 --- a/packages/client/ui-open-in-app/README.md +++ b/packages/client/ui-open-in-app/README.md @@ -31,7 +31,7 @@ Mount this plugin in the Web composition beside [`dsh-host-open-in-app`](../../h The Session header and document header use the same 24px-high split button with 9px corners. Both headers show only the icon; their tooltip names the default application or the reveal action. Both show the default action’s icon, mark its application with “(default)” in the menu, disable while their own gesture runs, and report failures through a transient toast. The directory adapter uses the existing cross-platform application catalog and remembers the last successful choice in `dsh.open-in-app.choice`; a missing choice falls back to the first available application. -File menus list the discovered associated applications without a separate “Open in default app” row. “Show file location” stays in a fixed footer separated from the scrolling applications. A successful query with only one available action renders a single button without a dropdown. Initial file-association loading uses a gray skeleton icon. When no default application is identified, that row reads “Show file location (default)” and the main button reveals the file. Directory menus have no reveal row. Choosing a file application does not change the system default. An unpreviewable file uses the same menu in a 40px-high split button with an icon and action text; its label is “Open” or “Show file location” according to the default action. +File menus list the discovered associated applications without a separate “Open in default app” row. “Show file location” stays in a fixed footer separated from the scrolling applications. A successful query with only one available action renders a single button without a dropdown. Initial file-association loading uses a gray skeleton icon. When the Host identifies a default application the menu marks it “(default)” and the main button opens it; otherwise the first associated application takes that place, so the main button reveals the file only when no application is registered. Directory menus have no reveal row. Choosing a file application does not change the system default. An unpreviewable file uses the same menu in a 40px-high split button with an icon and action text; its label is “Open” or “Show file location” according to the default action. Mounted controls with the same association reader and file share one query and its results; opening either menu refreshes all of them. Releasing the last control cancels the query and discards its state. Cancelled queries cannot replace another file’s results. A failed query displays a menu message and leaves reveal available as the default action. File-association discovery follows [native-command](../../util/native-command/README.md); an empty result, including a platform without a discovery adapter, uses the same reveal fallback without platform branches in the control. diff --git a/packages/client/ui-open-in-app/README.zh.md b/packages/client/ui-open-in-app/README.zh.md index b81f62f9db..df58e83862 100644 --- a/packages/client/ui-open-in-app/README.zh.md +++ b/packages/client/ui-open-in-app/README.zh.md @@ -31,7 +31,7 @@ kind: "package-reference" 会话标题栏和文档标题栏共用同一个高 24px、圆角 9px 的分体按钮。两个标题栏都只显示图标,悬停提示显示默认应用名称或文件定位动作。两者都显示默认动作的图标,在菜单的默认应用后标注“(默认)”,仅在自己的操作执行期间禁用,并通过短暂提示报告失败。目录适配器使用已有的跨平台应用列表,将最后一次成功选择保存在 `dsh.open-in-app.choice` 中;原选择不可用时回退到第一个可用应用。 -文件菜单列出已发现的关联应用,不单列“用默认应用打开”。“显示文件位置”固定在菜单底部,通过分隔线与滚动的应用列表分开。查询成功且只有一个可用操作时显示单按钮,不再显示下拉箭头。文件关联首次加载时使用灰色骨架图标。未识别到默认应用时,该项显示为“显示文件位置(默认)”,主按钮也执行文件定位。目录菜单不包含定位项。选择文件应用不修改系统默认应用。无法预览文件时,空态使用同一菜单,按钮增大到 40px 高并显示图标和动作文字;根据默认动作显示“打开”或“显示文件位置”。 +文件菜单列出已发现的关联应用,不单列“用默认应用打开”。“显示文件位置”固定在菜单底部,通过分隔线与滚动的应用列表分开。查询成功且只有一个可用操作时显示单按钮,不再显示下拉箭头。文件关联首次加载时使用灰色骨架图标。Host 识别出默认应用时,菜单将该项标注为“(默认)”,主按钮打开该应用;否则第一个关联应用占据该位置,只有在一个关联应用都没有时主按钮才执行文件定位。目录菜单不包含定位项。选择文件应用不修改系统默认应用。无法预览文件时,空态使用同一菜单,按钮增大到 40px 高并显示图标和动作文字;根据默认动作显示“打开”或“显示文件位置”。 使用同一查询函数和文件的已挂载控件共用查询与结果,打开任一菜单会刷新所有相关控件。最后一个控件释放后取消查询并清除状态。已取消的查询不会覆盖其他文件的结果。查询失败时菜单显示提示,并以文件定位作为默认动作。文件关联查询的平台支持范围见 [native-command](../../util/native-command/README.zh.md);查询结果为空时,包括平台尚无查询适配器的情况,控件统一使用定位动作,不按操作系统分支处理。 diff --git a/packages/client/ui-open-in-app/package.json b/packages/client/ui-open-in-app/package.json index d64b4adc15..89ab47519c 100644 --- a/packages/client/ui-open-in-app/package.json +++ b/packages/client/ui-open-in-app/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-open-in-app", "description": "Web \"Open In...\" controls: the Session-header split button opening the workspace directory in an installed application, and the document preview's default-application controls for one file", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-open-in-app/src/client/OpenTargetButton.tsx b/packages/client/ui-open-in-app/src/client/OpenTargetButton.tsx index 9546c13153..3d781070e1 100644 --- a/packages/client/ui-open-in-app/src/client/OpenTargetButton.tsx +++ b/packages/client/ui-open-in-app/src/client/OpenTargetButton.tsx @@ -71,7 +71,8 @@ function ApplicationIcon({ source, size = 14 }: { source: string | null; size?: } /** - * Render identical split buttons for files and directories. File reveal always stays last and becomes the default when no app is selected. + * Render identical split buttons for files and directories. File reveal always + * stays last; it is the default only when no application is registered. * @param props - target applications, default selection, and operations. * @returns the control and its transient failure feedback. */ @@ -79,13 +80,25 @@ export function OpenTargetButton(props: OpenTargetButtonProps): ReactNode { const { applications, defaultId, kind, t } = props const [menuOpen, setMenuOpen] = useState(false) const { pending, toast, act } = useOpenTargetGesture(props.execute, t) - const preferred = applications.find(app => app.id === defaultId) + // Files open through an application whenever one is registered: the OS-marked + // default when the Host reported one, else the first entry in the Shell's + // preference order. Reveal is only promoted with no registered application, so + // a missing default marker never hides the applications behind it. + const preferred = kind === 'file' + ? applications.find(app => app.id === defaultId) ?? applications[0] + : applications.find(app => app.id === defaultId) const disabled = pending || props.busy === true || props.loading === true const hasMenu = props.loading === true || props.failed || applications.length + (kind === 'file' ? 1 : 0) > 1 const revealDefault = kind === 'file' && preferred === undefined && props.loading !== true const primaryLabel = preferred === undefined ? t('path.reveal') : t('open.title', { app: preferred.name }) const run = (operation: OpenTargetOperation): void => { setMenuOpen(false); act(operation) } - const primary = (): void => { run({ kind: revealDefault ? 'reveal' : 'default' }) } + const primary = (): void => { + if (revealDefault) { run({ kind: 'reveal' }); return } + // The Host's default marker is best effort. With none, request the application + // this control names instead of letting the OS resolve the association again. + if (preferred !== undefined && preferred.id !== defaultId) { run({ kind: 'application', id: preferred.id }); return } + run({ kind: 'default' }) + } const icon = props.loading === true && preferred === undefined ?
) } @@ -700,6 +700,10 @@ function registryOption(registry: Registry, t: Translate, resolved: string | nul */ function failureText(failure: InstallState['failure'], t: Translate, install?: Pick): string { if (failure === null) return t('installFailureGeneric') + // A compatibility refusal is the package's own answer, whatever pnpm's exit classified the run as. + if (failure.code === 'incompatible-version') { + return managementText({ code: failure.code, ...failure.incompatible === undefined ? {} : { incompatible: failure.incompatible } }, t) + } // Blocked scripts the Host could not name leave the person to allow them in the profile's pnpm settings by hand. if (failure.kind === 'build-blocked' && !failure.pendingBuilds?.length) return t('installFailureBuildBlockedManual') const host = install?.subject?.host @@ -1217,7 +1221,7 @@ export function PluginManagerPage(props: PluginManagerPageProps): ReactNode {
{showsCards ? ( -
+

{t('title')}

{t('intro')}

diff --git a/packages/client/ui-plugin-manager/src/client/locales.ts b/packages/client/ui-plugin-manager/src/client/locales.ts index bd27fb5041..139c41321d 100644 --- a/packages/client/ui-plugin-manager/src/client/locales.ts +++ b/packages/client/ui-plugin-manager/src/client/locales.ts @@ -183,6 +183,8 @@ export const zh = { reasonStopProfile: '这个 profile 没有启用 HMR,正在使用的包要停止后用 dsh plugin 卸载', reasonBundleInUse: '其他配置仍在使用这个组合包的组件,请先停用它们', reasonStaleApproval: '待允许的安装脚本列表已变化,请重新安装以刷新', + reasonIncompatibleVersion: '{plugin} 与 DSH {runtime} 不兼容(要求 {peers}),运行它可能导致崩溃或数据丢失。请安装与当前 DSH 兼容的插件版本。', + reasonIncompatibleVersionUnnamed: '这个插件与当前 DSH 版本不兼容,运行它可能导致崩溃或数据丢失', reasonOperationError: 'Host 报告了一个错误', } satisfies Record @@ -372,5 +374,7 @@ export const en = { reasonStopProfile: 'This profile runs without HMR; stop it and uninstall the package with dsh plugin.', reasonBundleInUse: 'Other configuration still uses this bundle\'s components; switch them off first.', reasonStaleApproval: 'The pending script approvals changed; install again to refresh them.', + reasonIncompatibleVersion: '{plugin} is incompatible with DSH {runtime} (requires {peers}); running it may cause crashes or data loss. Install a plugin version compatible with this DSH.', + reasonIncompatibleVersionUnnamed: 'This plugin is incompatible with the running DSH version; running it may cause crashes or data loss.', reasonOperationError: 'The Host reported an error.', } satisfies Record diff --git a/packages/client/ui-plugin-manager/src/client/manager-store.ts b/packages/client/ui-plugin-manager/src/client/manager-store.ts index 4fe666b5b6..07491140f1 100644 --- a/packages/client/ui-plugin-manager/src/client/manager-store.ts +++ b/packages/client/ui-plugin-manager/src/client/manager-store.ts @@ -11,6 +11,7 @@ import type { Context as ClientContext } from '@deepseek-ai/cordis' import type { BundleInfo, ChangeResult, + IncompatiblePlugin, ManagementError, PluginEntryId, PluginInfo, @@ -49,6 +50,8 @@ export type ManagerNotice = readonly code?: ManagementError['code'] /** The Host's diagnostic or the transport's words, shown verbatim; empty when the code says it all. */ readonly reason: string + /** The packages an `incompatible-version` refusal names. */ + readonly incompatible?: readonly IncompatiblePlugin[] readonly packageName?: string readonly seq: number } @@ -185,6 +188,8 @@ export interface InstallState { readonly failure: { readonly reason: string readonly code?: ManagementError['code'] + /** The packages an `incompatible-version` refusal names. */ + readonly incompatible?: readonly IncompatiblePlugin[] readonly kind?: PluginInstallFailureKind /** What the last failed run could not reach, as the Host attributed it: the registry, or the spec's own host. */ readonly failedAt?: 'registry' | 'spec-host' @@ -301,7 +306,9 @@ type Answer = /** A refused answer or a change the Host could not apply, carrying what it said and, for a refusal, its code. */ class RemoteAnswerError extends Error { - constructor(readonly reason: string, readonly code?: ManagementError['code']) { + constructor( + readonly reason: string, readonly code?: ManagementError['code'], readonly incompatible?: readonly IncompatiblePlugin[], + ) { super(reason) this.name = 'RemoteAnswerError' } @@ -315,6 +322,7 @@ function failureOf( return { reason: error?.diagnostic ?? '', ...error === undefined ? {} : { code: error.code }, + ...error?.incompatible === undefined ? {} : { incompatible: error.incompatible }, ...kind === undefined ? {} : { kind }, ...failedAt === undefined ? {} : { failedAt }, ...pendingBuilds === undefined || pendingBuilds.length === 0 ? {} : { pendingBuilds }, @@ -324,7 +332,11 @@ function failureOf( /** The notice a thrown failure becomes: a refusal keeps its code, anything else its words. */ function failedNotice(error: unknown, subject: { action: FailedAction; packageName?: string }, seq: number): ManagerNotice { const code = error instanceof RemoteAnswerError ? error.code : undefined - return { kind: 'failed', reason: reasonOf(error), ...code === undefined ? {} : { code }, ...subject, seq } + const incompatible = error instanceof RemoteAnswerError ? error.incompatible : undefined + return { + kind: 'failed', reason: reasonOf(error), ...code === undefined ? {} : { code }, + ...incompatible === undefined ? {} : { incompatible }, ...subject, seq, + } } /** The runs with every one still open settled at `exitCode`. */ @@ -992,7 +1004,7 @@ export class PluginManagerController { const result = answer.value switch (result.application) { case 'failed': - throw new RemoteAnswerError(result.error?.diagnostic ?? '', result.error?.code) + throw new RemoteAnswerError(result.error?.diagnostic ?? '', result.error?.code, result.error?.incompatible) case 'cancelled': this.patch({ notice: { kind: 'cancelled', seq: ++this.noticeSeq } }) return diff --git a/packages/client/ui-plugin-manager/src/client/presentation.ts b/packages/client/ui-plugin-manager/src/client/presentation.ts index b5f004b0ac..12973f0bba 100644 --- a/packages/client/ui-plugin-manager/src/client/presentation.ts +++ b/packages/client/ui-plugin-manager/src/client/presentation.ts @@ -1,6 +1,6 @@ /** Display labels and toast sentences for global plugin management. */ -import type { ManagementError, Registry } from '@deepseek-ai/dsh-api-remotes/client' +import type { IncompatiblePlugin, ManagementError, Registry } from '@deepseek-ai/dsh-api-remotes/client' import type { PropsLocale } from '@deepseek-ai/dsh-client-ui-slots' import type { PluginManagerLocaleKey } from './locales.ts' import type { FailedAction, ManagerNotice, PackageRow, PackageView, PluginManagerFace } from './manager-store.ts' @@ -53,6 +53,7 @@ const CODE_KEYS = { 'stop-profile': 'reasonStopProfile', 'bundle-in-use': 'reasonBundleInUse', 'stale-approval': 'reasonStaleApproval', + 'incompatible-version': 'reasonIncompatibleVersionUnnamed', 'operation-error': 'reasonOperationError', } satisfies Record @@ -66,13 +67,23 @@ const FAILED_KEYS = { } satisfies Record /** - * What a management error reads as: the code's sentence, or, for an - * operation error, the Host's diagnostic as it is. - * @param error - the Host's code and its diagnostic, when it has one. + * What a management error reads as: the code's sentence, one sentence per + * package an incompatibility names, or, for an operation error, the Host's diagnostic as it is. + * @param error - the Host's code, its diagnostic, and the packages an incompatibility names. * @param t - the manager's translate seat. * @returns the sentence. */ -export function managementText(error: { readonly code: ManagementError['code']; readonly diagnostic?: string }, t: Translate): string { +export function managementText(error: { + readonly code: ManagementError['code'] + readonly diagnostic?: string + readonly incompatible?: readonly IncompatiblePlugin[] +}, t: Translate): string { + if (error.code === 'incompatible-version' && error.incompatible !== undefined && error.incompatible.length > 0) { + return error.incompatible.map(plugin => t('reasonIncompatibleVersion', { + plugin: `${plugin.name}@${plugin.version}`, runtime: plugin.runtimeVersion, + peers: Object.entries(plugin.peers).map(([name, range]) => `${name} ${range}`).join(', '), + })).join(' ') + } if (error.code !== 'operation-error') return t(CODE_KEYS[error.code]) return error.diagnostic === undefined || error.diagnostic === '' ? t('reasonOperationError') : error.diagnostic } @@ -134,7 +145,9 @@ export function noticeText(notice: ManagerNotice, t: Translate): string { unconfirmed: 'installBackgroundUnconfirmed', applying: 'installBackgroundApplying', unknown: 'installBackgroundUnknown', } as const)[notice.outcome]) case 'failed': { - const reason = notice.code === undefined ? notice.reason : managementText({ code: notice.code, diagnostic: notice.reason }, t) + const reason = notice.code === undefined ? notice.reason : managementText({ + code: notice.code, diagnostic: notice.reason, ...notice.incompatible === undefined ? {} : { incompatible: notice.incompatible }, + }, t) return t(FAILED_KEYS[notice.action], { reason: reason === '' ? t('reasonOperationError') : reason }) } } diff --git a/packages/client/ui-plugin-manager/tests/components.client.spec.tsx b/packages/client/ui-plugin-manager/tests/components.client.spec.tsx index 906578bc85..75a467ca4b 100644 --- a/packages/client/ui-plugin-manager/tests/components.client.spec.tsx +++ b/packages/client/ui-plugin-manager/tests/components.client.spec.tsx @@ -42,6 +42,10 @@ function row(overrides: Partial = {}): PackageRow { return { entryId: 'include:sidebar' as PluginEntryId, rowId: 'sidebar', moduleName: 'dsh-better-sidebar', enabled: true, phase: 'active', ...overrides } } +const INCOMPATIBLE = { name: 'dsh-late', version: '2.0.0', runtimeVersion: '0.1.0', peers: { '@deepseek-ai/dsh': '^0.2.0', '@deepseek-ai/dsh-core': '^0.2.0' } } +/** The English sentence an incompatibility of {@link INCOMPATIBLE}, optionally renamed, reads as. */ +const incompatibleText = (name = INCOMPATIBLE.name): string => en.reasonIncompatibleVersion + .replace('{plugin}', `${name}@2.0.0`).replace('{runtime}', '0.1.0').replace('{peers}', '@deepseek-ai/dsh ^0.2.0, @deepseek-ai/dsh-core ^0.2.0') const MIRROR = 'https://registry.npmmirror.com/' const OFFICIAL = 'https://registry.npmjs.org/' @@ -755,6 +759,11 @@ describe('PluginManagerPage', () => { expect(within(detail).getByText(`${en.reasonLabel}: ${en.reasonNotBundle}`)).toBeTruthy() set({ packages: [pkg({ error: { code: 'operation-error' } })] }) expect(within(detail).getByText(`${en.reasonLabel}: ${en.reasonOperationError}`)).toBeTruthy() + // An incompatibility reads from its structured packages in the dictionary's words, one sentence per package. + set({ packages: [pkg({ error: { code: 'incompatible-version', incompatible: [INCOMPATIBLE, { ...INCOMPATIBLE, name: 'other' }] } })] }) + expect(within(detail).getByText(`${en.reasonLabel}: ${incompatibleText()} ${incompatibleText('other')}`)).toBeTruthy() + set({ packages: [pkg({ error: { code: 'incompatible-version' } })] }) + expect(within(detail).getByText(`${en.reasonLabel}: ${en.reasonIncompatibleVersionUnnamed}`)).toBeTruthy() fireEvent.click(within(detail).getByRole('button', { name: en.backToList })) expect(document.querySelector('[data-plugin-detail]')).toBeNull() // A bundle that leaves the list drops back to the cards. @@ -1046,6 +1055,12 @@ describe('PluginManagerPage', () => { expect(screen.getByText(en.reasonNotBundle)).toBeTruthy() set({ install: { ...IDLE_INSTALL, open: true, spec: 'x', phase: 'failed', failure: { reason: 'ERR_PNPM_ADDING_TO_ROOT', code: 'operation-error' } } }) expect(screen.getByText('ERR_PNPM_ADDING_TO_ROOT')).toBeTruthy() + // A compatibility refusal outranks the kind pnpm's exit was classified as. + set({ install: { ...IDLE_INSTALL, open: true, spec: 'x', phase: 'failed', + failure: { reason: '', code: 'incompatible-version', incompatible: [INCOMPATIBLE], kind: 'unknown' } } }) + expect(screen.getByText(incompatibleText())).toBeTruthy() + set({ install: { ...IDLE_INSTALL, open: true, spec: 'x', phase: 'failed', failure: { reason: '', code: 'incompatible-version' } } }) + expect(screen.getByText(en.reasonIncompatibleVersionUnnamed)).toBeTruthy() set({ install: { ...IDLE_INSTALL, open: true, spec: 'x', phase: 'failed', failure: { reason: 'the transport said so' } } }) expect(screen.getByText('the transport said so')).toBeTruthy() set({ install: { ...IDLE_INSTALL, open: true, spec: 'x', phase: 'failed', failure: { reason: '' } } }) @@ -1289,6 +1304,8 @@ describe('PluginManagerPage', () => { expect(screen.getByRole('alert').textContent).toContain(en.failedEnable.replace('{reason}', 'the tree rejected it')) set({ notice: { kind: 'failed', action: 'uninstall', code: 'bundle-in-use', reason: '', packageName: 'pkg-1', seq: 5 } }) expect(screen.getByRole('alert').textContent).toContain(en.failedUninstall.replace('{reason}', en.reasonBundleInUse)) + set({ notice: { kind: 'failed', action: 'enable', code: 'incompatible-version', incompatible: [INCOMPATIBLE], reason: '', packageName: 'pkg-1', seq: 5 } }) + expect(screen.getByRole('alert').textContent).toContain(en.failedEnable.replace('{reason}', incompatibleText())) set({ notice: { kind: 'failed', action: 'rowDisable', code: 'operation-error', reason: 'EACCES', packageName: 'pkg-1', seq: 6 } }) expect(screen.getByRole('alert').textContent).toContain(en.failedRowDisable.replace('{reason}', 'EACCES')) set({ notice: { kind: 'failed', action: 'disable', reason: '', packageName: 'pkg-1', seq: 7 } }) diff --git a/packages/client/ui-plugin-manager/tests/manager-store.client.spec.ts b/packages/client/ui-plugin-manager/tests/manager-store.client.spec.ts index 829d8b4fd4..6c95ea1133 100644 --- a/packages/client/ui-plugin-manager/tests/manager-store.client.spec.ts +++ b/packages/client/ui-plugin-manager/tests/manager-store.client.spec.ts @@ -10,6 +10,7 @@ import type { HostObservable } from '@deepseek-ai/dsh-client-ui-slots' import type { ConfigLedger } from '../src/client/config-ledger.ts' import { packageView, PluginManagerController, rowKey, sortPackages } from '../src/client/manager-store.ts' +const INCOMPATIBLE = { name: 'dsh-late', version: '2.0.0', runtimeVersion: '0.1.0', peers: { '@deepseek-ai/dsh': '^0.2.0' } } const ROW_ENTRY = 'include:sidebar' as PluginEntryId const BUNDLE: BundleInfo = { @@ -278,7 +279,8 @@ describe('PluginManagerController', () => { .mockRejectedValueOnce('odd') .mockResolvedValueOnce(ok(failed({ code: 'bundle-in-use' }))) .mockResolvedValueOnce(ok(failed())) - .mockResolvedValueOnce(ok({ ...failed(), application: 'cancelled' })), + .mockResolvedValueOnce(ok({ ...failed(), application: 'cancelled' })) + .mockResolvedValueOnce(ok(failed({ code: 'incompatible-version', incompatible: [INCOMPATIBLE] }))), }) await controller.load() face.setEnabled(BUNDLE.name, true) @@ -297,6 +299,13 @@ describe('PluginManagerController', () => { // A change the Host stopped is said in passing. face.setEnabled(BUNDLE.name, true) await vi.waitFor(() => { expect(state().notice).toEqual({ kind: 'cancelled', seq: 7 }) }) + // An incompatibility keeps the packages it names for the page to word. + face.setEnabled(BUNDLE.name, true) + await vi.waitFor(() => { + expect(state().notice).toEqual({ + kind: 'failed', action: 'enable', code: 'incompatible-version', incompatible: [INCOMPATIBLE], reason: '', packageName: BUNDLE.name, seq: 8, + }) + }) face.dismissNotice() expect(state().notice).toBeNull() }) @@ -973,12 +982,17 @@ describe('PluginManagerController', () => { { jobId: 'k', command: 'pnpm add x', cwd: '/p', output: 'open', exitCode: null }, ]) expect(state().install.failure).toEqual({ reason: '', code: 'not-bundle' }) + // An incompatibility keeps the packages it names. + await installing() + answer(ok(failed({ code: 'incompatible-version', incompatible: [INCOMPATIBLE] }))) + await vi.waitFor(() => { expect(state().install.phase).toBe('failed') }) + expect(state().install.failure).toEqual({ reason: '', code: 'incompatible-version', incompatible: [INCOMPATIBLE] }) // A failure the Host does not explain has neither code nor words. await installing() answer(ok(failed())) await vi.waitFor(() => { expect(state().install.phase).toBe('failed') }) expect(state().install.failure).toEqual({ reason: '' }) - expect(plugins.installBundle).toHaveBeenCalledTimes(5) + expect(plugins.installBundle).toHaveBeenCalledTimes(6) // Editing the spec after a failure starts over too. face.editInstallSpec('y') expect(state().install).toMatchObject({ phase: 'idle', spec: 'y', runs: [], failure: null }) diff --git a/packages/client/ui-primitives/README.i18n.yaml b/packages/client/ui-primitives/README.i18n.yaml index 95054a7f63..4a82ee1ce8 100644 --- a/packages/client/ui-primitives/README.i18n.yaml +++ b/packages/client/ui-primitives/README.i18n.yaml @@ -1,6 +1,61 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-primitives/README.md -README.md: 72c455c6de41df60d493d756267f47bfb66c978b -README.zh.md: 2f042677efaf9b2992756d0fa04af4e4e2b03c2f +/: + en: 6da33cc935e210c4 + zh: 752948e68a6e2c32 +/deepseek-ai-dsh-client-ui-primitives: + en: e39769cae26393b8 + zh: 8743c8cf561fec35 +/deepseek-ai-dsh-client-ui-primitives/summary: + en: a05472dce901d64f + zh: 6747ad81824a5c0d +/deepseek-ai-dsh-client-ui-primitives/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-primitives/use-this-package: + en: 9f8ec1ebc498b846 + zh: 530b7a8eea6225a0 +/deepseek-ai-dsh-client-ui-primitives/use-this-package/component-catalog: + en: 9ac2a3488424afa2 + zh: bdbc780cec8325ad +/deepseek-ai-dsh-client-ui-primitives/use-this-package/controls-and-icons: + en: 58dbadbd766eb131 + zh: e43e091ec74c7d45 +/deepseek-ai-dsh-client-ui-primitives/use-this-package/rendering-agent-output: + en: bd4126a74a28d45b + zh: 0578623548ebd71d +/deepseek-ai-dsh-client-ui-primitives/use-this-package/localizing-copy: + en: 4aef65dea11de083 + zh: abc22cd7c65cdf38 +/deepseek-ai-dsh-client-ui-primitives/understand-the-implementation: + en: b772d7e4f283a825 + zh: c6f5daf3af2c85fc +/deepseek-ai-dsh-client-ui-primitives/understand-the-implementation/source-map: + en: 44eb32370cbeafe8 + zh: 728009c66375c6bb +/deepseek-ai-dsh-client-ui-primitives/understand-the-implementation/input-modality: + en: cb61e1a37d6c27e5 + zh: 1f3fa79dd5ab2e45 +/deepseek-ai-dsh-client-ui-primitives/understand-the-implementation/streaming-markdown: + en: 8bbfa14c27f3bfd7 + zh: 88f7548ac3a114e1 +/deepseek-ai-dsh-client-ui-primitives/understand-the-implementation/geometry-and-overflow: + en: 49f6341d81ded00e + zh: cab87dc54a42ba69 +/deepseek-ai-dsh-client-ui-primitives/further-exploration: + en: e82b713cdb2f954b + zh: a877f34b148f433f +/deepseek-ai-dsh-client-ui-primitives/model-experience: + en: 3120df665299c634 + zh: 1d9f365d091d0d2a +/deepseek-ai-dsh-client-ui-primitives/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: de54f3467ef3b9be +/deepseek-ai-dsh-client-ui-primitives/known-limitations-and-deferred-work: + en: 2f14f1e9d3239316 + zh: c3fdaafc4c591dff +/deepseek-ai-dsh-client-ui-primitives/known-limitations-and-deferred-work/dev-note: + en: ae1d5d1bcc80c932 + zh: 15709ccdbfcdf26c diff --git a/packages/client/ui-primitives/package.json b/packages/client/ui-primitives/package.json index 52e29beb42..7b99cd166f 100644 --- a/packages/client/ui-primitives/package.json +++ b/packages/client/ui-primitives/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-primitives", "description": "Pure React atoms for the dsh web UI: controls, icons, markdown, and JSON inspectors (zero cordis)", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-reference/README.i18n.yaml b/packages/client/ui-reference/README.i18n.yaml index a70fa7f3f4..bc7b7c1ebc 100644 --- a/packages/client/ui-reference/README.i18n.yaml +++ b/packages/client/ui-reference/README.i18n.yaml @@ -1,6 +1,49 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-reference/README.md -README.md: 57b5ae2440cf3dd4512cf44361b334dc7f3a58c9 -README.zh.md: fa5af63c939f2bb71f371262dbbf137180c63f8e +/: + en: 891fa9f998222b74 + zh: 5eed64a6df09c534 +/deepseek-ai-dsh-client-ui-reference: + en: 78a7e99d2d912768 + zh: 0c2e12bc70916265 +/deepseek-ai-dsh-client-ui-reference/summary: + en: 35c991a0c12bf1ad + zh: 3c8a45303617cb14 +/deepseek-ai-dsh-client-ui-reference/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-reference/use-this-package: + en: 779a9a534eaad38b + zh: 3dd159a2c35702d6 +/deepseek-ai-dsh-client-ui-reference/use-this-package/what-a-pick-inserts: + en: 0b41c33743e5b422 + zh: 551896094c03f57e +/deepseek-ai-dsh-client-ui-reference/use-this-package/failure-behavior: + en: 228ee6f4b81d96a7 + zh: e1c960c3f5b25317 +/deepseek-ai-dsh-client-ui-reference/understand-the-implementation: + en: dbfe93987c800112 + zh: 200d477cc8cd8a1a +/deepseek-ai-dsh-client-ui-reference/understand-the-implementation/candidate-flow: + en: 6c77da1e946f72e1 + zh: b7b8e1e1d4f5a102 +/deepseek-ai-dsh-client-ui-reference/understand-the-implementation/serialization: + en: dce929ccd4f0e349 + zh: e68bc0f79e184057 +/deepseek-ai-dsh-client-ui-reference/further-exploration: + en: 157b1bcf84b5c11b + zh: 6b7e4f3326b19036 +/deepseek-ai-dsh-client-ui-reference/model-experience: + en: f7fa58a80d82d63a + zh: 8235157cbbbd18cf +/deepseek-ai-dsh-client-ui-reference/model-experience/kv-cache-effect: + en: ff23f8026f7c6050 + zh: 6b0841800076bcd2 +/deepseek-ai-dsh-client-ui-reference/known-limitations-and-deferred-work: + en: e79991a25b11e342 + zh: 15064e8374c8e63d +/deepseek-ai-dsh-client-ui-reference/known-limitations-and-deferred-work/dev-note: + en: 80768071dca1786f + zh: a82f1ec9dcb368bd diff --git a/packages/client/ui-reference/package.json b/packages/client/ui-reference/package.json index f3fb02b449..99a8f213a5 100644 --- a/packages/client/ui-reference/package.json +++ b/packages/client/ui-reference/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-reference", "description": "Unified Web @file and @session reference source", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-renderer/README.i18n.yaml b/packages/client/ui-renderer/README.i18n.yaml index bcca92c77d..3a8d4ac482 100644 --- a/packages/client/ui-renderer/README.i18n.yaml +++ b/packages/client/ui-renderer/README.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-renderer/README.md -README.md: a354d2e6d502d90beaad544babeed2f314e73246 -README.zh.md: 97e408bf1ab89f4823f8b9577cf15eb69d25d4b9 +/: + en: 06bd9d926c743736 + zh: 39acdcb577fd8c6d +/deepseek-ai-dsh-client-ui-renderer: + en: 9ec624489bbbdf7e + zh: 076b6a71841ea0cf +/deepseek-ai-dsh-client-ui-renderer/summary: + en: 1ba1a4112d222f62 + zh: c1b7601dfe949711 +/deepseek-ai-dsh-client-ui-renderer/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-renderer/use-this-package: + en: 39d5f36f7cb7d680 + zh: a61f0aa8b339e06f +/deepseek-ai-dsh-client-ui-renderer/use-this-package/what-mounting-does: + en: 1d5350799ce072d0 + zh: 942e543fdab51818 +/deepseek-ai-dsh-client-ui-renderer/use-this-package/for-business-plugins: + en: 15a2bfee2c0bd051 + zh: 0c5b336fc5afbbc6 +/deepseek-ai-dsh-client-ui-renderer/understand-the-implementation: + en: 0de0a8ad857b93f6 + zh: 98a0fae2d6606a7d +/deepseek-ai-dsh-client-ui-renderer/understand-the-implementation/activation-and-mount: + en: 002496a4609490f6 + zh: bab3626fbe30ff55 +/deepseek-ai-dsh-client-ui-renderer/understand-the-implementation/slot-bindings: + en: 6ab26cf5744a23d4 + zh: 84a531322a724a84 +/deepseek-ai-dsh-client-ui-renderer/understand-the-implementation/identity: + en: 2a349d500ead79cb + zh: ac49c8b1d73dcd6c +/deepseek-ai-dsh-client-ui-renderer/further-exploration: + en: 77b43b2f3d55c933 + zh: 9847b53486372aeb +/deepseek-ai-dsh-client-ui-renderer/model-experience: + en: ca4e29db08d34e6d + zh: de6ec680414b1d54 +/deepseek-ai-dsh-client-ui-renderer/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: de54f3467ef3b9be +/deepseek-ai-dsh-client-ui-renderer/known-limitations-and-deferred-work: + en: 5ebaf02736035a44 + zh: 3c04f28da7ec6c40 +/deepseek-ai-dsh-client-ui-renderer/known-limitations-and-deferred-work/dev-note: + en: e67f633dc6fe7773 + zh: 3bb0c20c93f16f98 diff --git a/packages/client/ui-renderer/package.json b/packages/client/ui-renderer/package.json index 77852c6550..c30673126f 100644 --- a/packages/client/ui-renderer/package.json +++ b/packages/client/ui-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-renderer", "description": "Browser UI renderer: React slot bindings, ctx.uiRenderer, and the assembled application root", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-schedule/README.i18n.yaml b/packages/client/ui-schedule/README.i18n.yaml index 505e8e6b35..f4555ceab2 100644 --- a/packages/client/ui-schedule/README.i18n.yaml +++ b/packages/client/ui-schedule/README.i18n.yaml @@ -1,6 +1,43 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-schedule/README.md -README.md: 689bd3fa219a5ee43ff81de7dd924e83af099c02 -README.zh.md: b868eaee032bc79ba17b4eac8ae2921a397309d1 +/: + en: af257c854bda5c00 + zh: 55426306f517d696 +/deepseek-ai-dsh-client-ui-schedule: + en: 862120984d5392eb + zh: eb3e5d5a802da592 +/deepseek-ai-dsh-client-ui-schedule/summary: + en: 8b9b3a84423f4b1d + zh: 9521ab04209deb47 +/deepseek-ai-dsh-client-ui-schedule/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-schedule/use-this-package: + en: 6e1e74b73a4eb24e + zh: ffc0fcf59a2156cd +/deepseek-ai-dsh-client-ui-schedule/use-this-package/read-and-dismiss-the-catalog: + en: 44a33487c9c18789 + zh: 5b567a9fc4c099a7 +/deepseek-ai-dsh-client-ui-schedule/understand-the-implementation: + en: 2430ec651a2a577d + zh: 6f5cad74adeaae32 +/deepseek-ai-dsh-client-ui-schedule/understand-the-implementation/source-map: + en: e89204b9b4dd3003 + zh: 3ab55a0503de4b4f +/deepseek-ai-dsh-client-ui-schedule/further-exploration: + en: 81ae5a7021733ada + zh: 54d4ec1070685345 +/deepseek-ai-dsh-client-ui-schedule/model-experience: + en: 5c6b73a7cfda0351 + zh: fa075bf6a3258a94 +/deepseek-ai-dsh-client-ui-schedule/model-experience/kv-cache-effect: + en: 47f982e326fe77fd + zh: c2241315dc0c89c9 +/deepseek-ai-dsh-client-ui-schedule/known-limitations-and-deferred-work: + en: 8efb04400a306d00 + zh: 1da6b0f94d3bd6a2 +/deepseek-ai-dsh-client-ui-schedule/known-limitations-and-deferred-work/dev-note: + en: e67f633dc6fe7773 + zh: 3bb0c20c93f16f98 diff --git a/packages/client/ui-schedule/package.json b/packages/client/ui-schedule/package.json index fd23490a2d..b02a6c84b6 100644 --- a/packages/client/ui-schedule/package.json +++ b/packages/client/ui-schedule/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-schedule", "description": "Read-only active Schedule catalog in the Web Session header", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "type": "module", "main": "lib/index.js", "types": "lib/types/index.d.ts", diff --git a/packages/client/ui-session/README.i18n.yaml b/packages/client/ui-session/README.i18n.yaml index 646ecb0d4d..9235141f7d 100644 --- a/packages/client/ui-session/README.i18n.yaml +++ b/packages/client/ui-session/README.i18n.yaml @@ -1,6 +1,28 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-session/README.md -README.md: df85bf42b0eb6507662ab4e4a26d1fde6e08872e -README.zh.md: 5f54c1db7b5daf2d113717d890dc90eeb2be87f9 +/: + en: af287bddb3c67f95 + zh: 162d447352ac8366 +/deepseek-ai-dsh-client-ui-session: + en: 22464c74746de6c2 + zh: 171a244a493a277e +/deepseek-ai-dsh-client-ui-session/summary: + en: 75428e0474a073a4 + zh: 18f1db4b4c5302e5 +/deepseek-ai-dsh-client-ui-session/table-of-contents: + en: b4683d2a53256fda + zh: 4e65ff63dc8c48fe +/deepseek-ai-dsh-client-ui-session/model-experience: + en: cb2d4451e8bf8520 + zh: 6d3adbb930d90c59 +/deepseek-ai-dsh-client-ui-session/model-experience/kv-cache-effect: + en: 209b4471032b0f9d + zh: 6c2e39ac1dedf71c +/deepseek-ai-dsh-client-ui-session/known-limitations-and-deferred-work: + en: 61ef65087e3d4ac8 + zh: 01b38db2957f9096 +/deepseek-ai-dsh-client-ui-session/known-limitations-and-deferred-work/dev-note: + en: 48d675ab370a4967 + zh: 0e22dedcf99801ad diff --git a/packages/client/ui-session/package.json b/packages/client/ui-session/package.json index 40d1884750..b3e7c1cab9 100644 --- a/packages/client/ui-session/package.json +++ b/packages/client/ui-session/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-session", "description": "Session Controller adapter for React and session-scoped slots", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-account/README.i18n.yaml b/packages/client/ui-settings-account/README.i18n.yaml index 826301b3aa..f027516868 100644 --- a/packages/client/ui-settings-account/README.i18n.yaml +++ b/packages/client/ui-settings-account/README.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-account/README.md -README.md: 6155d54643f456395f1d2d377e0446377033df43 -README.zh.md: c9dd2f3627214972842924225bb2a08bbb505a7e +/: + en: 1fcba8f273b661fb + zh: 14e1236f84ae39d7 +/deepseek-ai-dsh-client-ui-settings-account: + en: 76e18729c08888be + zh: 170a2032838071b4 +/deepseek-ai-dsh-client-ui-settings-account/summary: + en: 658929e914f98565 + zh: 879a9fbf5ff7a4af +/deepseek-ai-dsh-client-ui-settings-account/table-of-contents: + en: c26f81e8adf0128b + zh: e11ab371f51f66bc +/deepseek-ai-dsh-client-ui-settings-account/use-this-package: + en: 756b26130eca4020 + zh: d80084cdeca9dccf +/deepseek-ai-dsh-client-ui-settings-account/understand-the-implementation: + en: 95e9a3b0d75cef12 + zh: b3eb97302dd3a3ab +/deepseek-ai-dsh-client-ui-settings-account/further-exploration: + en: 23d329730557101e + zh: c7aad4fb9f8f214d +/deepseek-ai-dsh-client-ui-settings-account/model-experience: + en: ee1df7ca3467ee3f + zh: 84904a5148da3862 +/deepseek-ai-dsh-client-ui-settings-account/model-experience/kv-cache-effect: + en: ca3015e252db0114 + zh: ebca9253cf15e8e9 +/deepseek-ai-dsh-client-ui-settings-account/known-limitations-and-deferred-work: + en: b607e3190613d34f + zh: ed1e6ccc7917cef7 +/deepseek-ai-dsh-client-ui-settings-account/known-limitations-and-deferred-work/dev-note: + en: ccbb9dd4c7f43c8c + zh: 8bbbda6c72073544 diff --git a/packages/client/ui-settings-account/README.md b/packages/client/ui-settings-account/README.md index 6155d54643..b08dc6434a 100644 --- a/packages/client/ui-settings-account/README.md +++ b/packages/client/ui-settings-account/README.md @@ -7,6 +7,8 @@ kind: "package-reference" English | [中文](README.zh.md) +Server-expired account credentials clear the displayed account details and emit a localized sign-in reminder toast once; account snapshot replay does not repeat it. + ## Summary Desktop Account settings display DeepSeek login state and offer browser authorization and cancellation; the sidebar account menu provides Platform sign-out. @@ -17,12 +19,14 @@ Desktop Account settings display DeepSeek login state and offer browser authoriz - [Model Experience](#model-experience) - [Known Limitations and Deferred Work](#known-limitations-and-deferred-work) +A new account-model sign-in-required event displays “Model unavailable. Please sign in and try again.” in a toast. The notice is transient: remounting or refreshing does not replay it. + ## Use this package The client activates only inside Desktop, identified by its preload bridge. Plain Web clients keep the standard Settings launcher and API-key onboarding without account login, account settings, or an account-state subscription. -The sidebar and Account settings display the profile avatar as a circular image, with the account icon as fallback when the URL is absent or the image fails to load. The collapsed sidebar centers the avatar in a 36 × 36 px button. +The sidebar and Account settings display the profile avatar as a circular image, with the account icon as fallback when the URL is absent or the image fails to load. The collapsed sidebar centers the avatar in a 36 × 36 px button. Before sign-in the sidebar launcher shows a More row instead, leading with the ellipsis glyph. The section registers through settings.section and uses the account Remote namespace. The stream survives carrier reconnects through the shared Remote supervisor. The page renders feature-owned English and Chinese copy and keeps API keys separate from account state. @@ -32,9 +36,11 @@ Desktop usage and top-up actions open an isolated native Platform view below a 4 The account menu's Feedback entry opens the Feishu questionnaire in the system browser. It supplies the available build version, UI locale and physical screen resolution as prefill_* parameters, with hide_*=1 for every context field; the account UID, tokens and contact details are excluded. Configure contactFormUrl on the ui-settings-account plugin to select another HTTPS form. contactSource defaults to empty until the questionnaire supports a Harness source option; OS and device fields remain unfilled, matching the Web implementation. -The sidebar account menu uses the shared Menu surface, backdrop blur, spacing, and row typography; feature styles only size its launcher. +The sidebar account menu uses the shared Menu surface and backdrop blur. The signed-in menu keeps the shared row typography; the signed-out menu carries its own wider rows and its Contact us copy for the Feedback entry. -The account card’s More account information link opens `https://platform.deepseek.com` in the system browser. +The account card’s More account information link opens the root of the Host-provided Platform usage URL in the system browser, following `platformOrigin`. + +Sign out first queries running account-token tasks and opens a confirmation dialog. The warning describes interruption when such tasks exist; otherwise it explains that data is retained and the account can be signed in again. Cancel, close, and Escape dismiss without signing out. Failed impact queries still open confirmation with an explicit unknown-task warning; failed sign-out keeps the dialog available for retry. ## Understand the implementation @@ -52,6 +58,9 @@ A terminal account-state stream failure appears in the sign-in dialog or Account The balance card shows recharge funds and positive bonus credit in separate rows. Empty or nonpositive bonus wallets hide the bonus row and its divider; currencies retain their own amounts. + +A successful login selects the first available `deepseek-account` model as the default when no other provider has a configured API key, even if a previous default was saved. Configured keys preserve the existing default even when their provider has no available models. Session-specific selections remain unchanged. + ## Model Experience @@ -75,3 +84,5 @@ No model request prefix changes. The [desktop login decision](../../../.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md) records cancellation and storage ownership. Usage and top-up show a centered 24px loading indicator without visible loading text until the native document loads; the return action remains available. The loading SVG is embedded locally from Figma node 2957:72553. + +Default-model initialization runs after publishing and accepting the sign-in frame, without delaying subsequent account frames. Failures are recorded in diagnostics and do not mark the signed-in account as failed. diff --git a/packages/client/ui-settings-account/README.zh.md b/packages/client/ui-settings-account/README.zh.md index c9dd2f3627..d912a92a4d 100644 --- a/packages/client/ui-settings-account/README.zh.md +++ b/packages/client/ui-settings-account/README.zh.md @@ -7,6 +7,8 @@ kind: "package-reference" [English](README.md) | 中文 +账号凭据被服务端判定失效后,清空显示的账号详情,并弹出一次本地化的重新登录提示 toast;账号快照重放不会重复提示。 + ## 概述 Desktop 设置中的账号页面显示 DeepSeek 登录状态,并提供浏览器授权和取消;侧边栏账号菜单提供 Platform 退出登录。 @@ -17,12 +19,14 @@ Desktop 设置中的账号页面显示 DeepSeek 登录状态,并提供浏览 - [模型体验](#model-experience) - [已知限制与后续工作](#known-limitations-and-deferred-work) +新的账号模型登录要求事件会弹出“当前模型暂不可用,请登录后再试”提示。提示仅保留在当前界面,重新挂载或刷新不会重放。 + ## 使用此包 客户端仅在具有 preload 桥接的 Desktop 内启用。普通 Web 客户端保留标准设置入口和 API Key 引导,不显示账号登录和账号设置,也不订阅账号状态。 -侧边栏和账号设置以圆形图片显示账号头像;头像 URL 缺失或图片加载失败时使用账号图标兜底。折叠侧边栏将头像居中放置在 36 × 36 px 的按钮内。 +侧边栏和账号设置以圆形图片显示账号头像;头像 URL 缺失或图片加载失败时使用账号图标兜底。折叠侧边栏将头像居中放置在 36 × 36 px 的按钮内。登录前侧边栏入口改为「更多」行,以三点图标开头。 该页面通过 settings.section 注册,并使用 account Remote 命名空间。共享 Remote 管理器负责连接恢复后的流重连。页面使用功能自有的中英文文案,将 API Key 与账号状态分开。 @@ -32,9 +36,11 @@ Desktop 的用量和充值操作在 48px 返回栏下方打开隔离的原生 Pl 账号菜单的“意见反馈”入口在系统浏览器中打开飞书问卷。链接通过 prefill_* 参数填写已有的构建版本、界面语言和屏幕物理分辨率,并为所有上下文字段设置 hide_*=1;不传账号 UID、token 或联系方式。可在 ui-settings-account 插件配置 contactFormUrl,切换到另一个 HTTPS 问卷。问卷支持 Harness 来源选项前,contactSource 默认为空;OS 和设备字段沿用 Web 实现,保持未填写。 -侧边栏账号菜单使用公共 Menu 的表面、背景模糊、间距和菜单项排版;功能样式仅设置入口布局。 +侧边栏账号菜单使用公共 Menu 的表面和背景模糊。已登录菜单沿用公共菜单项排版;未登录菜单使用自己的较宽菜单项,并将“意见反馈”入口的文案改为“联系我们”。 -账号卡片的“更多账号信息”链接通过系统浏览器打开 `https://platform.deepseek.com`。 +账号卡片的“更多账号信息”链接通过系统浏览器打开 Host 提供的 Platform 用量 URL 的根路径,遵循 `platformOrigin` 配置。 + +退出登录先查询正在使用账号 token 的任务,再打开确认弹窗。有此类任务时提示执行将被打断,否则提示数据保留且可重新登录。取消、关闭和 Escape 均不退登。影响查询失败仍打开确认弹窗,并明确提示无法确认任务状态;退登失败保留弹窗以便重试。 ## 理解实现 @@ -52,6 +58,9 @@ Desktop 的用量和充值操作在 48px 返回栏下方打开隔离的原生 Pl 余额卡片分行展示充值余额与正额赠金余额。赠送钱包为空或没有正余额时,隐藏赠金行及其分隔线;不同币种分别显示。 + +登录成功时,若其他提供方均未配置 API key,则将 `deepseek-account` 的第一个可用模型设为默认值,即使此前保存过默认选择。其他提供方只要配置了 key,就保留原默认值,即使其没有可用模型。会话内的显式选择保持不变。 + ## 模型体验 @@ -75,3 +84,5 @@ Desktop 的用量和充值操作在 48px 返回栏下方打开隔离的原生 Pl [桌面登录决策](../../../.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md)记录取消和存储的职责。 用量和充值在原生页面加载完成前显示居中的 24px 加载图标,不显示加载文字;返回操作始终可用。加载 SVG 从 Figma 节点 2957:72553 内嵌到本地样式。 + +默认模型初始化在登录帧发布并确认接收后运行,不延迟后续账号帧。初始化失败会记录诊断日志,不会将已登录账号标记为失败。 diff --git a/packages/client/ui-settings-account/package.json b/packages/client/ui-settings-account/package.json index 8dd7ccb9db..ef0173ff03 100644 --- a/packages/client/ui-settings-account/package.json +++ b/packages/client/ui-settings-account/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-account", "description": "Manage DeepSeek login and open Platform billing pages", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-account/src/client/AccountMenu.module.css b/packages/client/ui-settings-account/src/client/AccountMenu.module.css index 71a1f38572..33dc01d4df 100644 --- a/packages/client/ui-settings-account/src/client/AccountMenu.module.css +++ b/packages/client/ui-settings-account/src/client/AccountMenu.module.css @@ -6,3 +6,32 @@ .avatar { display: flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border-radius: 16px; background: var(--dsw-alias-bg-skeleton); color: var(--dsw-alias-label-tertiary); } .label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .error { color: var(--dsw-alias-state-error-primary); font-size: 12px; } + +/* Signed-out launcher: a 32px More row carrying the 14px ellipsis. */ +.trigger[data-signed-out='true']:not([data-collapsed='true']) { height: 32px; padding: 6px 2px 6px 6px; line-height: 20px; } + +/* Signed-out menu card and rows; listClassName reaches the portaled card. */ +.signedOutMenu[role='menu'] { + min-width: 124px; + max-width: 280px; + padding: 4px; + border-radius: 12px; + --dsw-elevation-stroke-color: var(--dsw-alias-border-inverted); +} + +.signedOutMenu [role='menuitem'] { + min-height: 40px; + gap: 8px; + padding: 8px 10px; + border-radius: 10px; + font-size: 14px; + line-height: 22px; +} + +.signedOutMenu [role='menuitem'] > span:first-child:not(:last-child) { + width: 16px; + height: 16px; + color: var(--dsw-alias-label-primary); +} + +.signedOutMenu [role='menuitem'] > span:first-child:not(:last-child) svg { width: 16px; height: 16px; } diff --git a/packages/client/ui-settings-account/src/client/AccountMenu.tsx b/packages/client/ui-settings-account/src/client/AccountMenu.tsx index 606312ae2d..83a94ba581 100644 --- a/packages/client/ui-settings-account/src/client/AccountMenu.tsx +++ b/packages/client/ui-settings-account/src/client/AccountMenu.tsx @@ -1,8 +1,11 @@ /** Sidebar account launcher and locally authoritative sign-out action. */ -import { useState } from 'react' -import { Menu, IconPaperPlaneOutlineMedium, IconSettingsOutlineMedium, IconUserOutlineMedium } from '@deepseek-ai/dsh-client-ui-primitives' +import { useEffect, useState } from 'react' +import { + Toast, Menu, IconEllipsisOutlineMedium, IconPaperPlaneOutlineMedium, IconSettingsOutlineMedium, IconUserOutlineMedium, +} from '@deepseek-ai/dsh-client-ui-primitives' import type { InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots' import type { AccountSectionInjected } from './AccountSection.tsx' +import { SignOutDialog } from './SignOutDialog.tsx' import { SignInDialog } from './SignInDialog.tsx' import { LogoutIcon } from './LogoutIcon.tsx' import { AccountAvatar } from './AccountAvatar.tsx' @@ -16,36 +19,45 @@ export type AccountMenuProps = PropsRuntime<'settings.launcher'> & PropsLocale<' * @returns account menu launcher. */ export function AccountMenu({ - wide, openSettings, openOnboarding, useAccount, useTheme, signOut, contactUs, showLogin, start, cancel, t, + subscribeSessionExpired, subscribeModelSignInRequired, wide, openSettings, openOnboarding, useAccount, useTheme, + signOut, hasRunningAccountTasks, + contactUs, showLogin, start, cancel, t, }: AccountMenuProps) { const account = useAccount(state => state) const colorScheme = useTheme(snapshot => snapshot.active.colorScheme) const signedIn = account.view?.status === 'credential-stored' + const [signInNotice, setSignInNotice] = useState(0) + useEffect(() => subscribeModelSignInRequired?.(() => { setSignInNotice(value => value + 1) }), [subscribeModelSignInRequired]) + const [expiryNotice, setExpiryNotice] = useState(false) + useEffect(() => subscribeSessionExpired?.(() => { setExpiryNotice(true) }), [subscribeSessionExpired]) const profile = account.details?.profile const label = profile === undefined ? null : profile.status === 'ready' ? profile.value.name ?? profile.value.contact ?? t('signedIn') : t('signedIn') const [open, setOpen] = useState(false) const [busy, setBusy] = useState(false) - const [logoutFailed, setLogoutFailed] = useState(false) - const logout = async () => { + const [signOutImpact, setSignOutImpact] = useState() + const requestSignOut = async () => { setBusy(true) - setLogoutFailed(false) - try { await signOut(); setOpen(false) } - catch { setLogoutFailed(true) } + try { setSignOutImpact(await hasRunningAccountTasks()); setOpen(false) } + catch (_error) { setSignOutImpact('unknown'); setOpen(false) } finally { setBusy(false) } } // The plugin's start publishes `loginFailed` before it rejects, so the dialog owns the report. const beginSignIn = (): void => { setOpen(false); void start().catch(() => undefined) } return
- 0 && { setSignInNotice(0) }} />} + {expiryNotice && { setExpiryNotice(false) }} />} + { setOpen(value => !value) }}> - - {wide && {signedIn ? label : t('signedOut')}} + {signedIn + ? + : } + {wide && {signedIn ? label : t('more')}} } items={[ { id: 'settings', label: t('settings'), icon: }, - { id: 'contact', label: t('contactUs'), icon: }, + { id: 'contact', label: signedIn ? t('contactUs') : t('contactUsSignedOut'), icon: }, ...(signedIn ? [{ id: 'signout', label: t('signOut'), icon: , disabled: busy }] : [{ id: 'signin', label: t('signIn'), icon: }]), ]} @@ -54,11 +66,12 @@ export function AccountMenu({ if (id === 'settings') { setOpen(false); openSettings() } else if (id === 'contact') { setOpen(false); contactUs() } else if (id === 'signin') beginSignIn() - else void logout() + else void requestSignOut() }} /> {account.loginVisible && !account.onboarding && { showLogin(false) }} useApiKey={() => { showLogin(false); openOnboarding('deepseek-official') }} />} - {logoutFailed && {t('failed')}} + {signedIn && signOutImpact !== undefined && { setSignOutImpact(undefined) }} t={t} />}
} diff --git a/packages/client/ui-settings-account/src/client/AccountSection.tsx b/packages/client/ui-settings-account/src/client/AccountSection.tsx index 1b0d344bd0..701d2a775f 100644 --- a/packages/client/ui-settings-account/src/client/AccountSection.tsx +++ b/packages/client/ui-settings-account/src/client/AccountSection.tsx @@ -29,6 +29,16 @@ export interface AccountSnapshot { /** Host operations injected into the Cordis-free account component. */ export interface AccountSectionInjected { + /** Subscribe to live credential-expiry notifications. + * @param listener - callback after the current credential is removed. + * @returns listener cleanup. + */ + subscribeSessionExpired?: (listener: () => void) => () => void + /** Subscribe to live model sign-in guidance; the returned function removes the listener. + * @param listener - callback for one rejected account-model request. + * @returns listener cleanup. + */ + subscribeModelSignInRequired?: (listener: () => void) => () => void /** Desktop-only commands; absent in ordinary browsers. */ platform?: PlatformBridge @@ -50,6 +60,8 @@ export interface AccountSectionInjected { start: () => Promise /** @param id - attempt to cancel. @returns after cancellation or an already-admitted commit. */ cancel: (id: SignInAttemptId) => Promise + /** @returns whether a running task currently uses the account token. */ + hasRunningAccountTasks: () => Promise /** @returns after local account credentials are removed. */ signOut: () => Promise } @@ -109,7 +121,7 @@ export function AccountSection({ t, useAccount, useTheme, start, cancel, refresh {status}
- {signedIn && + {signedIn && {t('accountInfo')} } diff --git a/packages/client/ui-settings-account/src/client/PlatformOverlay.module.css b/packages/client/ui-settings-account/src/client/PlatformOverlay.module.css index 39f0da5deb..ff022a9136 100644 --- a/packages/client/ui-settings-account/src/client/PlatformOverlay.module.css +++ b/packages/client/ui-settings-account/src/client/PlatformOverlay.module.css @@ -13,13 +13,16 @@ padding-top: var(--dsh-windows-titlebar-height); } +/* The macOS shell's drag row: on darwin this bar IS the window's top strip, and + ui-web base.css declares the one darwin rule over the `data-window-drag` mark. + Windows keeps the native caption row as its drag surface instead — this bar + sits below that row (see above) and declares no drag of its own. */ .header { box-sizing: border-box; height: 48px; flex: none; padding: 6px 16px; border-bottom: 0.5px solid var(--dsw-alias-border-l1); - app-region: drag; } .controls { @@ -57,7 +60,6 @@ line-height: 22px; white-space: nowrap; cursor: pointer; - app-region: no-drag; } .viewport { diff --git a/packages/client/ui-settings-account/src/client/PlatformOverlay.tsx b/packages/client/ui-settings-account/src/client/PlatformOverlay.tsx index c62f4e4c4a..b580238b3c 100644 --- a/packages/client/ui-settings-account/src/client/PlatformOverlay.tsx +++ b/packages/client/ui-settings-account/src/client/PlatformOverlay.tsx @@ -57,7 +57,7 @@ export function PlatformOverlay({ bridge, page, backLabel, loadingLabel, failure } }, [bridge, page, attempt]) return createPortal(
-
+
+

{t(running === 'unknown' ? 'signOutUnknownDescription' : running ? 'signOutRunningDescription' : 'signOutDescription')}

+ {failed &&

{t('failed')}

} +
+
+ + +
+ +} diff --git a/packages/client/ui-settings-account/src/client/index.ts b/packages/client/ui-settings-account/src/client/index.ts index 84fc5600f9..5817b0d461 100644 --- a/packages/client/ui-settings-account/src/client/index.ts +++ b/packages/client/ui-settings-account/src/client/index.ts @@ -22,7 +22,7 @@ declare module '@deepseek-ai/dsh-client-ui-slots' { interface LocaleNamespaceMap { 'settings.account': AccountKey } } /** Services required by account settings. */ -export const inject = ['slots', 'locale', 'remote', 'remote.account', 'theme'] +export const inject = ['slots', 'locale', 'remote', 'remote.account', 'remote.session', 'theme'] /** Register account UI only in the Desktop renderer. @param ctx - client plugin context. */ export function apply(ctx: Context): void { if (!('dshDesktop' in globalThis)) return @@ -72,13 +72,25 @@ export function apply(ctx: Context): void { for await (const frame of stream) { revision++ refreshing = undefined + const initialize = frame.value.status === 'credential-stored' && frame.value.attempt?.phase === 'succeeded' + && snapshot.view?.attempt?.phase !== 'succeeded' publish({ ...snapshot, view: frame.value, details: undefined, failed: false }) frame.accept() + if (initialize) void (async () => { + try { + const initialized = await ctx.remote.session.initializeDefaultModel() + if (!initialized.ok) console.info('[deepseek-account] default model initialization failed', { reason: 'refused' }) + } catch (_error) { + console.info('[deepseek-account] default model initialization failed', { reason: 'disconnected' }) + } + })() void refresh() } })().catch(() => { if (!disposed) publish({ ...snapshot, failed: true }) }) const nativePlatform = (globalThis as typeof globalThis & { dshPlatform?: PlatformBridge }).dshPlatform const operations: AccountSectionInjected = { + subscribeSessionExpired: listener => ctx.remote.$on('deepseek-account/session-expired', listener), + subscribeModelSignInRequired: listener => ctx.remote.$on('deepseek-account/model-sign-in-required', listener), ...nativePlatform === undefined ? {} : { platform: nativePlatform }, refresh, contactUs() { @@ -117,6 +129,11 @@ export function apply(ctx: Context): void { } }, async cancel(id) { const result = await ctx.remote.account.cancelSignIn(id); if (!result.ok) throw new Error('account cancel failed') }, + async hasRunningAccountTasks() { + const result = await ctx.remote.account.hasRunningAccountTasks() + if (!result.ok) throw new Error('account task query failed') + return result.value + }, async signOut() { const result = await ctx.remote.account.signOut(); if (!result.ok) throw new Error('account sign-out failed') }, } ctx.slots.inject('settings.models.sign-in', () => ctx.slots.register({ diff --git a/packages/client/ui-settings-account/src/client/locales.ts b/packages/client/ui-settings-account/src/client/locales.ts index 2e4b40474d..2893f9a842 100644 --- a/packages/client/ui-settings-account/src/client/locales.ts +++ b/packages/client/ui-settings-account/src/client/locales.ts @@ -1,16 +1,21 @@ /** Account settings copy, owned by the account feature. */ export const en = { + modelSignInRequired: 'Model unavailable. Please sign in and try again.', + sessionExpired: 'You have signed out of your account, please log in again.', close: 'Close', addApiKey: 'Add API Key', retry: 'Sign in again', - loginTitle: 'Start creating', loginDescription: 'Sign in to create, edit, and share your design projects. Everything is saved locally.', + loginTitle: 'Get started', loginDescription: 'Sign in to your DeepSeek account or add an API Key to get started. Your projects and files are stored locally.', browserTitle: 'Waiting for sign in', browserPrompt: 'Page did not open automatically? ', copyLink: 'Copy sign-in link', copiedLink: 'Link copied', copyFailed: 'Copy failed', browserDescription: ', then open it in your browser to finish signing in.', timeoutTitle: 'Sign in timed out', timeoutDescription: 'Sign in again to continue.', failureTitle: 'Could not sign in', platformFailed: 'Could not complete the operation. Try again.', platformRetry: 'Retry', loading: 'Loading…', backToHarness: 'Back to DeepSeek Harness', - settings: 'Settings', contactUs: 'Feedback', menu: 'Account menu', + settings: 'Settings', contactUs: 'Feedback', contactUsSignedOut: 'Contact us', menu: 'Account menu', nav: 'Account', signedIn: 'Signed in to DeepSeek', signedOut: 'Not signed in', - signIn: 'Sign in', signOut: 'Sign out', cancel: 'Cancel', open: 'Open browser', + signIn: 'Sign in', signOut: 'Sign out', + signOutUnknownDescription: 'Could not check running tasks. Signing out may interrupt tasks using this account. Sign out now?', + signOutDescription: 'Signing out will not delete any data. You can sign in to this account again.', + signOutRunningDescription: 'Tasks are currently running. Signing out will interrupt them. Sign out now?', cancel: 'Cancel', open: 'Open browser', initializing: 'Starting sign in…', waiting: 'Continue in your browser', completing: 'Completing sign in…', expired: 'Sign in expired. Try again.', failed: 'Could not complete the operation. Try again.', @@ -25,17 +30,22 @@ export const en = { export type AccountKey = keyof typeof en /** Chinese account settings copy. */ export const zh: Record = { + modelSignInRequired: '当前模型暂不可用,请登录后再试', + sessionExpired: '登录信息已失效,请重新登录', close: '关闭', addApiKey: '添加 API Key', retry: '重新登录', - loginTitle: '开始你的创作', loginDescription: '登录后即可创建、编辑和分享你的设计项目,所有内容在本地保存。', + loginTitle: '开始使用', loginDescription: '登录 DeepSeek 账号,或添加 API Key,即可开始使用。你的项目和文件保存在本地。', browserTitle: '等待登录', browserPrompt: '没有自动打开新页面?', copyLink: '复制登录链接', copiedLink: '链接已复制', copyFailed: '复制失败', browserDescription: ',手动打开登录页完成登录。', timeoutTitle: '登录已超时', timeoutDescription: '请重新登录后继续操作。', failureTitle: '登录失败', platformFailed: '操作未完成,请重试', platformRetry: '重试', loading: '加载中…', backToHarness: '返回 DeepSeek Harness', - settings: '设置', contactUs: '意见反馈', menu: '账号菜单', + settings: '设置', contactUs: '意见反馈', contactUsSignedOut: '联系我们', menu: '账号菜单', nav: '账号与余额', signedIn: '已登录 DeepSeek', signedOut: '尚未登录', - signIn: '登录', signOut: '退出登录', cancel: '取消', open: '打开浏览器', + signIn: '登录', signOut: '退出登录', + signOutUnknownDescription: '暂时无法确认任务状态。退出登录可能会中断使用此账号的任务,是否继续?', + signOutDescription: '退出登录不会丢失任何数据,你仍可以登录此账号。', + signOutRunningDescription: '当前有进程正在执行中,点击“退出登录”,将会打断进程,是否即刻退出登录?', cancel: '取消', open: '打开浏览器', initializing: '正在发起登录…', waiting: '请在浏览器中继续', completing: '正在完成登录…', expired: '登录已过期,请重试。', failed: '操作未完成,请重试。', diff --git a/packages/client/ui-settings-account/tests/account.client.spec.tsx b/packages/client/ui-settings-account/tests/account.client.spec.tsx index 4e4351f411..e574d3a284 100644 --- a/packages/client/ui-settings-account/tests/account.client.spec.tsx +++ b/packages/client/ui-settings-account/tests/account.client.spec.tsx @@ -27,6 +27,7 @@ function operationsOf(state: Omit, details?: Partial themeOf('light'), subscribe: () => () => {} }, }, + hasRunningAccountTasks: vi.fn(async () => false), contactUs: vi.fn(), showLogin: vi.fn(), setOnboarding: vi.fn(), refresh: vi.fn(() => Promise.resolve()), start: vi.fn(() => Promise.resolve()), cancel: vi.fn(() => Promise.resolve()), signOut: vi.fn(() => Promise.resolve()), @@ -65,13 +66,14 @@ it('starts sign-in and disables cancellation during persistence', async () => { expect(screen.queryByRole('button', { name: en.signIn })).toBeNull() }) -it.each([en, zh])('opens settings and signs out from the sidebar account menu', async (copy) => { +it.each([en, zh].flatMap(copy => ([false, true, 'unknown'] as const).map(running => ({ copy, running }))))('confirms sidebar sign-out with task impact $running', async ({ copy, running }) => { const signOut = vi.fn(() => Promise.resolve()) const openSettings = vi.fn() const operations = mount({ status: 'credential-stored', attempt: null }, copy) cleanup() const { AccountMenu } = await import('../src/client/AccountMenu.tsx') render( { if (running === 'unknown') throw new Error('offline'); return running }} useAccount={selector => selector(operations.hooks.account.getSnapshot())} useTheme={selector => selector(operations.hooks.theme.getSnapshot())} wide openOnboarding={() => {}} openSettings={openSettings} t={key => key in copy ? copy[key as AccountKey] : key} />) @@ -86,10 +88,34 @@ it.each([en, zh])('opens settings and signs out from the sidebar account menu', expect(screen.queryByRole('menu')).toBeNull() fireEvent.click(screen.getByRole('button', { name: copy.menu })) await act(async () => { fireEvent.click(screen.getByRole('menuitem', { name: copy.signOut })) }) + expect(signOut).not.toHaveBeenCalled() + expect(screen.getByText(running === 'unknown' ? copy.signOutUnknownDescription : running ? copy.signOutRunningDescription : copy.signOutDescription)).toBeTruthy() + await act(async () => { fireEvent.click(screen.getByRole('button', { name: copy.signOut })) }) expect(signOut).toHaveBeenCalledOnce() expect(screen.queryByRole('menu')).toBeNull() }) +it.each([en, zh])('offers settings, contact and sign-in from the signed-out account menu', async (copy) => { + const openSettings = vi.fn() + const operations = operationsOf({ status: 'signed-out', attempt: null }) + const { AccountMenu } = await import('../src/client/AccountMenu.tsx') + render( selector(operations.hooks.account.getSnapshot())} + useTheme={selector => selector(operations.hooks.theme.getSnapshot())} wide openOnboarding={() => {}} openSettings={openSettings} + t={key => key in copy ? copy[key as AccountKey] : key} />) + const trigger = screen.getByRole('button', { name: copy.menu }) + expect(trigger.textContent).toBe(copy.more) + expect(trigger.querySelector('svg')).not.toBeNull() + fireEvent.click(trigger) + expect(screen.getAllByRole('menuitem').map(item => item.textContent)).toEqual([copy.settings, copy.contactUsSignedOut, copy.signIn]) + await expect(`${screen.getByRole('menu').textContent}\n`).toMatchFileSnapshot(`./expected/menu-signed-out-${copy === en ? 'en' : 'zh'}.txt`) + fireEvent.click(screen.getByRole('menuitem', { name: copy.settings })) + expect(openSettings).toHaveBeenCalledOnce() + fireEvent.click(screen.getByRole('button', { name: copy.menu })) + fireEvent.click(screen.getByRole('menuitem', { name: copy.contactUsSignedOut })) + expect(operations.contactUs).toHaveBeenCalledOnce() +}) + it('reports a failed start in the login dialog, not as a sidebar alert', async () => { const operations = mount({ status: 'signed-out', attempt: null }) cleanup() @@ -120,7 +146,7 @@ it('reports a failed start in the login dialog, not as a sidebar alert', async ( await expect(`${document.body.textContent}\n`).toMatchFileSnapshot('./expected/login-failed-en.txt') }) -it('keeps the sidebar alert for a failed sign-out', async () => { +it('keeps the confirmation dialog open after a failed sign-out', async () => { const operations = mount({ status: 'credential-stored', attempt: null }) cleanup() const { AccountMenu } = await import('../src/client/AccountMenu.tsx') @@ -131,6 +157,7 @@ it('keeps the sidebar alert for a failed sign-out', async () => { openOnboarding={() => {}} openSettings={() => {}} t={key => key in en ? en[key as AccountKey] : key} />) fireEvent.click(screen.getByRole('button', { name: en.menu })) await act(async () => { fireEvent.click(screen.getByRole('menuitem', { name: en.signOut })) }) + await act(async () => { fireEvent.click(screen.getByRole('button', { name: en.signOut })) }) expect(screen.getByRole('alert').textContent).toBe(en.failed) }) @@ -332,17 +359,43 @@ it.each([[], [{ currency: 'CNY' as const, balance: '0.00' }, { currency: 'USD' a }, ) -it('opens more account information externally without invoking the embedded Platform bridge', () => { +it('opens more account information at the configured Platform origin without invoking the embedded bridge', () => { const platform: PlatformBridge = { open: vi.fn(), close: vi.fn(), setBounds: vi.fn() } mount({ status: 'credential-stored', attempt: null }, en, undefined, platform) const link = screen.getByRole('link', { name: en.accountInfo }) - expect(link.getAttribute('href')).toBe('https://platform.deepseek.com') + expect(link.getAttribute('href')).toBe('http://localhost:8081/') expect(link.getAttribute('target')).toBe('_blank') expect(link.getAttribute('rel')).toBe('noopener noreferrer') fireEvent.click(link) expect(platform.open).not.toHaveBeenCalled() }) +it.each([en, zh])('shows a localized toast when the account credential expires', async (copy) => { + vi.useFakeTimers() + onTestFinished(() => { vi.useRealTimers() }) + const operations = mount({ status: 'signed-out', attempt: null }, copy) + cleanup() + const { AccountMenu } = await import('../src/client/AccountMenu.tsx') + let expire: (() => void) | undefined + const unsubscribe = vi.fn() + const element = { expire = listener; return unsubscribe }} + useAccount={selector => selector(operations.hooks.account.getSnapshot())} + useTheme={selector => selector(operations.hooks.theme.getSnapshot())} wide openOnboarding={() => {}} openSettings={() => {}} + t={key => key in copy ? copy[key as AccountKey] : key} /> + const view = render(element) + expect(screen.queryByRole('alert')).toBeNull() + act(() => { expire!() }) + expect(screen.getByRole('alert').textContent).toContain(copy.sessionExpired) + await expect(`${screen.getByRole('alert').textContent}\n`).toMatchFileSnapshot(`./expected/expired-${copy === en ? 'en' : 'zh'}.txt`) + await act(async () => { await vi.advanceTimersByTimeAsync(4000) }) + expect(screen.queryByRole('alert')).toBeNull() + view.unmount() + expect(unsubscribe).toHaveBeenCalledOnce() + render(element) + expect(screen.queryByRole('alert')).toBeNull() +}) + it.each(['initializing', 'waiting-browser', 'exchanging'] as const)('shows %s and lets the user cancel the active attempt', async (phase) => { const operations = mount({ status: 'signed-out', attempt: { id: 'attempt' as SignInAttemptId, phase, authorizeUrl: 'https://example.test/authorize' } }) expect(screen.getByRole('link', { name: en.open }).getAttribute('href')).toBe('https://example.test/authorize?theme=light') @@ -448,3 +501,31 @@ it('reports resize failure, ignores late native failures, and tolerates a remove await act(async () => { loaded.reject(new Error('late failure')); await loaded.promise.catch(() => {}) }) expect(screen.queryByRole('dialog')).toBeNull() }) + +it.each([en, zh])('shows live model sign-in guidance without replaying it after remount', async (copy) => { + vi.useFakeTimers() + onTestFinished(() => { vi.useRealTimers() }) + const operations = operationsOf({ status: 'signed-out', attempt: null }) + let listener: (() => void) | undefined + const unsubscribe = vi.fn(() => { listener = undefined }) + operations.subscribeModelSignInRequired = (next) => { listener = next; return unsubscribe } + const { AccountMenu } = await import('../src/client/AccountMenu.tsx') + const element = selector(operations.hooks.account.getSnapshot())} + useTheme={selector => selector(operations.hooks.theme.getSnapshot())} wide openOnboarding={() => {}} openSettings={() => {}} + t={key => key in copy ? copy[key as AccountKey] : key} /> + const view = render(element) + expect(screen.queryByRole('alert')).toBeNull() + act(() => { listener?.() }) + expect(screen.getByRole('alert').textContent).toBe(copy.modelSignInRequired) + act(() => { listener?.() }) + expect(screen.getAllByRole('alert')).toHaveLength(1) + await act(async () => { await vi.advanceTimersByTimeAsync(4000) }) + expect(screen.queryByRole('alert')).toBeNull() + act(() => { listener?.() }) + expect(screen.getByRole('alert').textContent).toBe(copy.modelSignInRequired) + view.unmount() + expect(unsubscribe).toHaveBeenCalledOnce() + render(element) + expect(screen.queryByRole('alert')).toBeNull() +}) diff --git a/packages/client/ui-settings-account/tests/apply.client.spec.ts b/packages/client/ui-settings-account/tests/apply.client.spec.ts index 0d3a17ec98..89230b1e9f 100644 --- a/packages/client/ui-settings-account/tests/apply.client.spec.ts +++ b/packages/client/ui-settings-account/tests/apply.client.spec.ts @@ -175,3 +175,38 @@ it('ignores a terminal stream error when plugin disposal already owns teardown', await disposal expect(actions.hooks.account.getSnapshot().failed).toBe(false) }, 60_000) + +it('reads the account task impact and reports a refused query', async ({ start, mock }) => { + vi.stubGlobal('dshDesktop', {}) + const c = await start() + const actions = operations(c) + mock.remote.account.hasRunningAccountTasks.mockResolvedValueOnce(ok(true)) + expect(await actions.hasRunningAccountTasks()).toBe(true) + mock.remote.account.hasRunningAccountTasks.mockResolvedValueOnce({ ok: false, error: new RemoteError('gateway/internal', 'offline', {}) }) + await expect(actions.hasRunningAccountTasks()).rejects.toThrow('account task query failed') +}, 60_000) + + +it('forwards live account notices and removes their subscriptions', async ({ start }) => { + vi.stubGlobal('dshDesktop', {}) + const c = await start() + const actions = operations(c) + const expired = vi.fn() + const unavailable = vi.fn() + const offExpired = actions.subscribeSessionExpired!(expired) + const offUnavailable = actions.subscribeModelSignInRequired!(unavailable) + for (const event of ['deepseek-account/session-expired', 'deepseek-account/model-sign-in-required']) { + c.mock.streams.push('$events', { type: 'emit', event, args: [] }) + } + await c.flush() + expect(expired).toHaveBeenCalledOnce() + expect(unavailable).toHaveBeenCalledOnce() + offExpired() + offUnavailable() + for (const event of ['deepseek-account/session-expired', 'deepseek-account/model-sign-in-required']) { + c.mock.streams.push('$events', { type: 'emit', event, args: [] }) + } + await c.flush() + expect(expired).toHaveBeenCalledOnce() + expect(unavailable).toHaveBeenCalledOnce() +}) diff --git a/packages/client/ui-settings-account/tests/expected/expired-en.txt b/packages/client/ui-settings-account/tests/expected/expired-en.txt new file mode 100644 index 0000000000..4187486bfe --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/expired-en.txt @@ -0,0 +1 @@ +You have signed out of your account, please log in again. diff --git a/packages/client/ui-settings-account/tests/expected/expired-zh.txt b/packages/client/ui-settings-account/tests/expected/expired-zh.txt new file mode 100644 index 0000000000..7995f21137 --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/expired-zh.txt @@ -0,0 +1 @@ +登录信息已失效,请重新登录 diff --git a/packages/client/ui-settings-account/tests/expected/login-en.txt b/packages/client/ui-settings-account/tests/expected/login-en.txt index 342e89587c..ce50b4cb46 100644 --- a/packages/client/ui-settings-account/tests/expected/login-en.txt +++ b/packages/client/ui-settings-account/tests/expected/login-en.txt @@ -1 +1 @@ -Start creatingSign in to create, edit, and share your design projects. Everything is saved locally.Add API KeySign in +Get startedSign in to your DeepSeek account or add an API Key to get started. Your projects and files are stored locally.Add API KeySign in diff --git a/packages/client/ui-settings-account/tests/expected/login-failed-en.txt b/packages/client/ui-settings-account/tests/expected/login-failed-en.txt index bc8b5ad67b..3d89b41c4f 100644 --- a/packages/client/ui-settings-account/tests/expected/login-failed-en.txt +++ b/packages/client/ui-settings-account/tests/expected/login-failed-en.txt @@ -1 +1 @@ -Not signed inCould not sign inCould not complete the operation. Try again.Add API KeySign in again +MoreCould not sign inCould not complete the operation. Try again.Add API KeySign in again diff --git a/packages/client/ui-settings-account/tests/expected/login-zh.txt b/packages/client/ui-settings-account/tests/expected/login-zh.txt index 5cea375430..f06257b241 100644 --- a/packages/client/ui-settings-account/tests/expected/login-zh.txt +++ b/packages/client/ui-settings-account/tests/expected/login-zh.txt @@ -1 +1 @@ -开始你的创作登录后即可创建、编辑和分享你的设计项目,所有内容在本地保存。添加 API Key登录 +开始使用登录 DeepSeek 账号,或添加 API Key,即可开始使用。你的项目和文件保存在本地。添加 API Key登录 diff --git a/packages/client/ui-settings-account/tests/expected/menu-signed-out-en.txt b/packages/client/ui-settings-account/tests/expected/menu-signed-out-en.txt new file mode 100644 index 0000000000..9875291a51 --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/menu-signed-out-en.txt @@ -0,0 +1 @@ +SettingsContact usSign in diff --git a/packages/client/ui-settings-account/tests/expected/menu-signed-out-zh.txt b/packages/client/ui-settings-account/tests/expected/menu-signed-out-zh.txt new file mode 100644 index 0000000000..fa5c8d7512 --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/menu-signed-out-zh.txt @@ -0,0 +1 @@ +设置联系我们登录 diff --git a/packages/client/ui-settings-account/tests/expected/sign-out-idle-en.txt b/packages/client/ui-settings-account/tests/expected/sign-out-idle-en.txt new file mode 100644 index 0000000000..9e7ca254e0 --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/sign-out-idle-en.txt @@ -0,0 +1 @@ +Sign outSigning out will not delete any data. You can sign in to this account again.CancelSign out diff --git a/packages/client/ui-settings-account/tests/expected/sign-out-idle-zh.txt b/packages/client/ui-settings-account/tests/expected/sign-out-idle-zh.txt new file mode 100644 index 0000000000..9ad80dfc63 --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/sign-out-idle-zh.txt @@ -0,0 +1 @@ +退出登录退出登录不会丢失任何数据,你仍可以登录此账号。取消退出登录 diff --git a/packages/client/ui-settings-account/tests/expected/sign-out-running-en.txt b/packages/client/ui-settings-account/tests/expected/sign-out-running-en.txt new file mode 100644 index 0000000000..005841b323 --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/sign-out-running-en.txt @@ -0,0 +1 @@ +Sign outTasks are currently running. Signing out will interrupt them. Sign out now?CancelSign out diff --git a/packages/client/ui-settings-account/tests/expected/sign-out-running-zh.txt b/packages/client/ui-settings-account/tests/expected/sign-out-running-zh.txt new file mode 100644 index 0000000000..b3effa3b49 --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/sign-out-running-zh.txt @@ -0,0 +1 @@ +退出登录当前有进程正在执行中,点击“退出登录”,将会打断进程,是否即刻退出登录?取消退出登录 diff --git a/packages/client/ui-settings-account/tests/expected/sign-out-unknown-en.txt b/packages/client/ui-settings-account/tests/expected/sign-out-unknown-en.txt new file mode 100644 index 0000000000..d8b1fd328b --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/sign-out-unknown-en.txt @@ -0,0 +1 @@ +Sign outCould not check running tasks. Signing out may interrupt tasks using this account. Sign out now?CancelSign out diff --git a/packages/client/ui-settings-account/tests/expected/sign-out-unknown-zh.txt b/packages/client/ui-settings-account/tests/expected/sign-out-unknown-zh.txt new file mode 100644 index 0000000000..3578b1f9bf --- /dev/null +++ b/packages/client/ui-settings-account/tests/expected/sign-out-unknown-zh.txt @@ -0,0 +1 @@ +退出登录暂时无法确认任务状态。退出登录可能会中断使用此账号的任务,是否继续?取消退出登录 diff --git a/packages/client/ui-settings-account/tests/initialization.client.spec.ts b/packages/client/ui-settings-account/tests/initialization.client.spec.ts new file mode 100644 index 0000000000..4f3c287799 --- /dev/null +++ b/packages/client/ui-settings-account/tests/initialization.client.spec.ts @@ -0,0 +1,78 @@ +// @vitest-environment jsdom +/** Account state updates continue after default-model initialization refuses. */ +import { expect, it, vi, afterEach } from 'vitest' +import type { AccountView, SignInAttemptId } from '@deepseek-ai/dsh-deepseek-account/types' +import { apply, type AccountSectionInjected } from '../src/client/index.ts' + +afterEach(() => vi.unstubAllGlobals()) + +it.each(['accepted', 'refused', 'disconnected', 'pending'] as const)('initializes account models and keeps reading account state: %s', async (outcome) => { + vi.stubGlobal('dshDesktop', {}) + const log = vi.spyOn(console, 'info').mockImplementation(() => {}) + const observed: { status: string | undefined; failed: boolean | undefined }[] = [] + const abort = new AbortController() + const done = Promise.withResolvers() + const release = Promise.withResolvers() + const initialization = Promise.withResolvers() + const initializeDefaultModel = vi.fn(async () => { + if (outcome === 'pending') await initialization.promise + if (outcome === 'disconnected') throw new Error('connection lost') + return { ok: outcome === 'accepted' || outcome === 'pending', value: undefined } + }) + const links = { usageUrl: 'https://example.test/usage', topUpUrl: 'https://example.test/top_up' } + const signedIn: AccountView = { + status: 'credential-stored', links, attempt: { id: 'login' as SignInAttemptId, phase: 'succeeded' }, + } + const frames: AccountView[] = [signedIn, signedIn, { status: 'signed-out', links, attempt: null }] + const disposers: (() => void)[] = [] + let operations: AccountSectionInjected | undefined + const ctx = { + effect: (install: () => (() => void) | undefined) => { const dispose = install(); if (dispose) disposers.push(dispose) }, + locale: { register: () => () => {}, bind: () => (key: string) => key }, + slots: { + inject: (_name: string, install: () => (() => void) | undefined) => { + const dispose = install() + if (dispose) disposers.push(dispose) + }, + register: (entry: { inject?: () => AccountSectionInjected }) => { + if (entry.inject) operations = entry.inject() + return () => {} + }, + }, + remote: { + session: { initializeDefaultModel }, + account: { getProfile: async () => ({ ok: true, value: null }), getBalance: async () => ({ ok: true, value: null }) }, + $stream: () => ({ + signal: abort.signal, dispose: () => { abort.abort(); release.resolve(undefined) }, + async *[Symbol.asyncIterator]() { + for (const value of frames) yield { value, accept: () => { + const snapshot = operations?.hooks.account.getSnapshot() + observed.push({ status: snapshot?.view?.status, failed: snapshot?.failed }) + if (value.status === 'signed-out') done.resolve(undefined) + } } + await release.promise + }, + }), + }, + } + try { + apply(ctx as never) + await done.promise + expect(initializeDefaultModel).toHaveBeenCalledExactlyOnceWith() + expect(observed).toEqual([ + { status: 'credential-stored', failed: false }, + { status: 'credential-stored', failed: false }, + { status: 'signed-out', failed: false }, + ]) + if (outcome === 'accepted' || outcome === 'pending') expect(log).not.toHaveBeenCalled() + else expect(log).toHaveBeenCalledWith('[deepseek-account] default model initialization failed', { + reason: outcome === 'refused' ? 'refused' : 'disconnected', + }) + expect(operations?.hooks.account.getSnapshot()).toMatchObject({ view: { status: 'signed-out' }, failed: false }) + } finally { + initialization.resolve(undefined) + await Promise.resolve() + for (const dispose of disposers.reverse()) dispose() + log.mockRestore() + } +}) diff --git a/packages/client/ui-settings-account/tests/onboarding.client.spec.tsx b/packages/client/ui-settings-account/tests/onboarding.client.spec.tsx index 7cc8eb0067..5bec17cde5 100644 --- a/packages/client/ui-settings-account/tests/onboarding.client.spec.tsx +++ b/packages/client/ui-settings-account/tests/onboarding.client.spec.tsx @@ -25,6 +25,7 @@ it('claims onboarding while loading, offers API key fallback, and completes afte } const props = { ...globals, + hasRunningAccountTasks: vi.fn(async () => false), complete: vi.fn(), useApiKey: vi.fn(), setOnboarding: vi.fn(), showLogin: vi.fn(), useAccount: (select: (snapshot: AccountSnapshot) => T) => select(account), useTheme: (select: (snapshot: ThemeSnapshot) => T) => select(theme), diff --git a/packages/client/ui-settings-account/tests/sign-out-dialog.client.spec.tsx b/packages/client/ui-settings-account/tests/sign-out-dialog.client.spec.tsx new file mode 100644 index 0000000000..d2fbb29028 --- /dev/null +++ b/packages/client/ui-settings-account/tests/sign-out-dialog.client.spec.tsx @@ -0,0 +1,45 @@ +// @vitest-environment jsdom +/** Sign-out impact copy and explicit confirmation. */ +import { cleanup, fireEvent, render, screen, act } from '@testing-library/react' +import { afterEach, expect, it, vi } from 'vitest' +import { SignOutDialog } from '../src/client/SignOutDialog.tsx' +import { en, zh } from '../src/client/locales.ts' + +afterEach(cleanup) +function mount(running: boolean | 'unknown', copy: typeof en | typeof zh = en, signOut = vi.fn(async () => {})) { + const close = vi.fn() + render( copy[key]} />) + return { signOut, close } +} +it.each([en, zh].flatMap(copy => ([false, true, 'unknown'] as const).map(running => ({ copy, running }))))( + 'confirms sign-out with localized task impact: $running', async ({ copy, running }) => { + const props = mount(running, copy) + await expect(`${screen.getByRole('dialog').textContent}\n`) + .toMatchFileSnapshot(`./expected/sign-out-${running === 'unknown' ? 'unknown' : running ? 'running' : 'idle'}-${copy === en ? 'en' : 'zh'}.txt`) + expect(props.signOut).not.toHaveBeenCalled() + await act(async () => { fireEvent.click(screen.getByRole('button', { name: copy.signOut })) }) + expect(props.signOut).toHaveBeenCalledOnce() + expect(props.close).toHaveBeenCalledOnce() + }, +) +it.each(['cancel', 'close', 'escape'] as const)('dismisses with %s without signing out', (action) => { + const props = mount(true) + if (action === 'escape') fireEvent.keyDown(document, { key: 'Escape' }) + else fireEvent.click(screen.getByRole('button', { name: en[action] })) + expect(props.close).toHaveBeenCalledOnce() + expect(props.signOut).not.toHaveBeenCalled() +}) +it('keeps failures open for retry and blocks dismissal during sign-out', async () => { + const pending = Promise.withResolvers() + const signOut = vi.fn(() => pending.promise).mockRejectedValueOnce(new Error('offline')) + const props = mount(true, en, signOut) + await act(async () => { fireEvent.click(screen.getByRole('button', { name: en.signOut })) }) + expect(screen.getByRole('alert').textContent).toBe(en.failed) + expect(props.close).not.toHaveBeenCalled() + await act(async () => { fireEvent.click(screen.getByRole('button', { name: en.signOut })) }) + fireEvent.keyDown(document, { key: 'Escape' }) + expect(props.close).not.toHaveBeenCalled() + expect(screen.getByRole('button', { name: en.signOut }).hasAttribute('disabled')).toBe(true) + await act(async () => { pending.resolve(undefined) }) + expect(props.close).toHaveBeenCalledOnce() +}) diff --git a/packages/client/ui-settings-agent-loop/README.i18n.yaml b/packages/client/ui-settings-agent-loop/README.i18n.yaml index 67c29d8665..937134f596 100644 --- a/packages/client/ui-settings-agent-loop/README.i18n.yaml +++ b/packages/client/ui-settings-agent-loop/README.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-agent-loop/README.md -README.md: 46e74fdf286c5a498cb7e1a0e885fed12912e7dd -README.zh.md: 5381d3f40c52cf72231a111a4fd37c019461efad +/: + en: 12adb999b01b035a + zh: 15ac17dd70c78e07 +/deepseek-ai-dsh-client-ui-settings-agent-loop: + en: 375e454589cac6c8 + zh: 7d609e69bc62fa77 +/deepseek-ai-dsh-client-ui-settings-agent-loop/summary: + en: 42fc4bae4890b0f7 + zh: b11cbdc801aefb56 +/deepseek-ai-dsh-client-ui-settings-agent-loop/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings-agent-loop/use-this-package: + en: 189a3f8d22570043 + zh: 6bda29a5eff7d4bd +/deepseek-ai-dsh-client-ui-settings-agent-loop/understand-the-implementation: + en: 6412d65e7c17da6a + zh: 530d8b53c355efba +/deepseek-ai-dsh-client-ui-settings-agent-loop/further-exploration: + en: 14267229f22a17b0 + zh: e59359820f0c2c2f +/deepseek-ai-dsh-client-ui-settings-agent-loop/model-experience: + en: 6b7c6f82ab6c8435 + zh: 4517689c899abcbe +/deepseek-ai-dsh-client-ui-settings-agent-loop/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: 6e1c9a8fdde89577 +/deepseek-ai-dsh-client-ui-settings-agent-loop/known-limitations-and-deferred-work: + en: 2696c3c3a1328b84 + zh: 10274e668ec7ea02 +/deepseek-ai-dsh-client-ui-settings-agent-loop/known-limitations-and-deferred-work/dev-note: + en: e67f633dc6fe7773 + zh: e88aeb617ffb74ea diff --git a/packages/client/ui-settings-agent-loop/package.json b/packages/client/ui-settings-agent-loop/package.json index 3d97598629..03054980a4 100644 --- a/packages/client/ui-settings-agent-loop/package.json +++ b/packages/client/ui-settings-agent-loop/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-agent-loop", "description": "Settings page of the agent loop on the dsh web client's Plugins page: the parallel tool-call cap of the agent-loop namespace", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-general/README.i18n.yaml b/packages/client/ui-settings-general/README.i18n.yaml index d0491ebef3..1f4cbb4659 100644 --- a/packages/client/ui-settings-general/README.i18n.yaml +++ b/packages/client/ui-settings-general/README.i18n.yaml @@ -1,6 +1,58 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-general/README.md -README.md: 36d3fd7b260f95cffb67977e5a6f37852bf195aa -README.zh.md: 9df8fe8bc3a39fceeccfc8b08a8e18cc5eeaf752 +/: + en: b12def981d836df5 + zh: 9d813c1937f22c61 +/deepseek-ai-dsh-client-ui-settings-general: + en: 1017c980d55e1945 + zh: d3febd2062fce20f +/deepseek-ai-dsh-client-ui-settings-general/summary: + en: 56ad6c35c1c4745c + zh: 1911baf2e1ebddab +/deepseek-ai-dsh-client-ui-settings-general/table-of-contents: + en: aeb9c4bfdb19bc56 + zh: 45a29bea90cff239 +/deepseek-ai-dsh-client-ui-settings-general/use-this-package: + en: 5e87c5fd61442960 + zh: 12262f4a836f8912 +/deepseek-ai-dsh-client-ui-settings-general/use-this-package/the-general-section: + en: de484a8406f3fc17 + zh: a3831774d457c49a +/deepseek-ai-dsh-client-ui-settings-general/use-this-package/opening-the-configuration-file: + en: ca2b4f5ccfbe2705 + zh: bd1dc1d9879d0f0e +/deepseek-ai-dsh-client-ui-settings-general/use-this-package/onboarding-steps: + en: 27f0f6ec55f00228 + zh: 69b47ff1efd81c17 +/deepseek-ai-dsh-client-ui-settings-general/understand-the-implementation: + en: e5f7882975944e7d + zh: ee946b54cc737b6f +/deepseek-ai-dsh-client-ui-settings-general/understand-the-implementation/ledger-projections: + en: 3e3c2c72f87e8b23 + zh: 12b10ba2d37c9077 +/deepseek-ai-dsh-client-ui-settings-general/understand-the-implementation/connection-recovery: + en: e37fb7df883ea356 + zh: c972524e56c6d6c2 +/deepseek-ai-dsh-client-ui-settings-general/understand-the-implementation/document-availability: + en: 474168eef3339de0 + zh: 254ea21415082dae +/deepseek-ai-dsh-client-ui-settings-general/understand-the-implementation/host-half: + en: 5d722d055516f905 + zh: e7a236f0ff84f7ff +/deepseek-ai-dsh-client-ui-settings-general/further-exploration: + en: 21348b768f60f587 + zh: 0c3c5b6a682ae267 +/deepseek-ai-dsh-client-ui-settings-general/model-experience: + en: 3120df665299c634 + zh: 1d9f365d091d0d2a +/deepseek-ai-dsh-client-ui-settings-general/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: de54f3467ef3b9be +/deepseek-ai-dsh-client-ui-settings-general/known-limitations-and-deferred-work: + en: eb93fe357edc777a + zh: e9f1bb38af42de90 +/deepseek-ai-dsh-client-ui-settings-general/known-limitations-and-deferred-work/dev-note: + en: b36039e49a66b8e0 + zh: 306682cd90cce1db diff --git a/packages/client/ui-settings-general/README.md b/packages/client/ui-settings-general/README.md index 36d3fd7b26..22fa9c364b 100644 --- a/packages/client/ui-settings-general/README.md +++ b/packages/client/ui-settings-general/README.md @@ -22,7 +22,7 @@ Use this package to give the dsh web client a Settings panel, connection-recover ----- -The Settings panel uses a shared 760 × 500 layout, bounded by the viewport. Longer sections scroll inside the content column; the Account entry uses the account icon. +The Settings panel uses a shared 760 × 500 layout, bounded by the viewport. Longer sections scroll inside the content column; the Account entry uses the account icon. The panel portals beside `#root` rather than inside it, so a macOS window drag region a chrome row declares later in document order cannot swallow its controls. ## Use this package diff --git a/packages/client/ui-settings-general/README.zh.md b/packages/client/ui-settings-general/README.zh.md index 9df8fe8bc3..732b85a0f4 100644 --- a/packages/client/ui-settings-general/README.zh.md +++ b/packages/client/ui-settings-general/README.zh.md @@ -22,7 +22,7 @@ kind: "package-reference" ----- -设置面板采用各页面共享的 760 × 500 布局,并受视口大小约束。较长的页面在内容栏内部滚动;账号入口使用账号图标。 +设置面板采用各页面共享的 760 × 500 布局,并受视口大小约束。较长的页面在内容栏内部滚动;账号入口使用账号图标。面板挂载在 `#root` 之外而不是其内部,这样在文档序上更靠后的 chrome 行所声明的 macOS 窗口拖拽区不会吞掉它的控件。 ## 使用本包 diff --git a/packages/client/ui-settings-general/package.json b/packages/client/ui-settings-general/package.json index c8430e7058..c6dee4a50f 100644 --- a/packages/client/ui-settings-general/package.json +++ b/packages/client/ui-settings-general/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-general", "description": "Settings ownerless-copy and product onboarding plugin: the General section, shell trigger/header chrome content, settings dictionaries, and the versioned welcome notice", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, @@ -66,8 +66,10 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:*", "@deepseek-ai/dsh-remote-mock": "workspace:*", "@types/react": "~18.3.1", + "@types/react-dom": "~18.3.0", "clsx": "^2.0.0", "react": "^18.2.0", + "react-dom": "^18.2.0", "@deepseek-ai/dsh-settings": "workspace:*" }, "files": [ diff --git a/packages/client/ui-settings-general/src/client/SettingsRoot.module.css b/packages/client/ui-settings-general/src/client/SettingsRoot.module.css index 2aff6dc924..9336290072 100644 --- a/packages/client/ui-settings-general/src/client/SettingsRoot.module.css +++ b/packages/client/ui-settings-general/src/client/SettingsRoot.module.css @@ -238,8 +238,7 @@ white-space: nowrap; } -/* macOS: overlays covering the window drag bands must subtract themselves - (Electron app-regions are geometry, not stacking). */ -:global([data-platform='darwin']) .overlay { - -webkit-app-region: no-drag; -} +/* No app-region rule here: the overlay portals beside #root (SettingsRoot), so + ui-web base.css's `body > :not(#root)` subtraction covers it wherever it + overlaps a chrome row's drag — including above every column, which an in-root + overlay could not promise once a chrome row declares drag itself. */ diff --git a/packages/client/ui-settings-general/src/client/SettingsRoot.tsx b/packages/client/ui-settings-general/src/client/SettingsRoot.tsx index 7a1f4fb920..f304f5a0aa 100644 --- a/packages/client/ui-settings-general/src/client/SettingsRoot.tsx +++ b/packages/client/ui-settings-general/src/client/SettingsRoot.tsx @@ -11,6 +11,7 @@ * to the step, so a mounted-but-deciding step paints nothing here. */ import { useCallback, useEffect, useId, useLayoutEffect, useRef, useState } from 'react' +import { createPortal } from 'react-dom' import clsx from 'clsx' import { ConnectionIndicator, @@ -68,7 +69,11 @@ function SettingsPanel({ rows, renderSlot, activeId, onSelect, onClose }: PanelP const closeButton = useRef(null) useEffect(() => { closeButton.current?.focus() }, []) - return ( + // Portalled beside #root like the Modal primitive: a covering surface mounted + // inside the root would precede the columns' chrome in document order, so a + // chrome row that declares window drag after it would override its subtraction. + // Beside the root, base.css's `body > :not(#root)` rule subtracts it instead. + return createPortal((
- ) + ), document.body) } /** @@ -164,6 +169,16 @@ export function SettingsRoot(props: SettingsRootComponentProps) { setCompletedOnboarding(new Set()) }, [onboardingActive]) + const onboardingStepSeen = useRef(onboardingStep) + // An onboarding step owns the viewport and marks `#root` inert. The panel portals + // beside `#root`, outside that mark, so a step that appears while the panel is open + // takes the panel down rather than leaving it focusable behind the onboarding mask. + useEffect(() => { + const appeared = onboardingStepSeen.current === undefined && onboardingStep !== undefined + onboardingStepSeen.current = onboardingStep + if (appeared && open) close() + }, [onboardingStep, open, close]) + useLayoutEffect(() => { const previous = previousConnectionState.current previousConnectionState.current = connectionState diff --git a/packages/client/ui-settings-general/tests/settings-root.client.spec.tsx b/packages/client/ui-settings-general/tests/settings-root.client.spec.tsx index 70e518736a..b6c0779080 100644 --- a/packages/client/ui-settings-general/tests/settings-root.client.spec.tsx +++ b/packages/client/ui-settings-general/tests/settings-root.client.spec.tsx @@ -139,7 +139,14 @@ function mount({ desktopUpdate = next view.rerender() } - return { view, renderSlot, bump, listeners, reconnect, setConnectionState, setDesktopUpdate } + /** Turn the mounted Session blank, which is what makes an onboarding step appear. */ + const setOnboardingActive = (next: boolean) => { + const session = sessions.byId[activeId] + if (session === undefined) throw new Error('expected the mounted Session') + act(() => { sessions.byId[activeId] = { ...session, blank: next } }) + view.rerender() + } + return { view, renderSlot, bump, listeners, reconnect, setConnectionState, setDesktopUpdate, setOnboardingActive } } function openPanel() { @@ -388,6 +395,16 @@ describe('SettingsPanel navigation', () => { expect(inactive).toHaveLength(0) }) + it('takes the panel down when an onboarding step appears beneath it', () => { + const { setOnboardingActive } = mount({ onboardingActive: false }) + openPanel() + expect(screen.getByRole('dialog')).toBeDefined() + + // The step's overlay marks only #root inert, and the panel is portalled beside it. + setOnboardingActive(true) + expect(screen.queryByRole('dialog')).toBeNull() + }) + it('keeps onboarding active before a main Session is retained', () => { const { renderSlot } = mount({ mainView: false }) diff --git a/packages/client/ui-settings-models/README.i18n.yaml b/packages/client/ui-settings-models/README.i18n.yaml index 29a2070e75..97f1360d4c 100644 --- a/packages/client/ui-settings-models/README.i18n.yaml +++ b/packages/client/ui-settings-models/README.i18n.yaml @@ -1,6 +1,61 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-models/README.md -README.md: 52a8e91c158db912a5c7a4f84ff2892de2bd4a7d -README.zh.md: 9470c9c0f1e80136e31e6e656b09c5fd17f7c691 +/: + en: d1bc4d9ef67bfb19 + zh: d095e4dc76f1c5e0 +/deepseek-ai-dsh-client-ui-settings-models: + en: 65e1e8a17a23e576 + zh: 01de4e98a002d376 +/deepseek-ai-dsh-client-ui-settings-models/summary: + en: 53301a5d29936f69 + zh: 9ac408a33571dbdd +/deepseek-ai-dsh-client-ui-settings-models/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings-models/use-this-package: + en: a4a5b605e9b554bf + zh: 763fc2559eedc240 +/deepseek-ai-dsh-client-ui-settings-models/use-this-package/api-keys: + en: 8cd8de6f1992d290 + zh: db54a6c6e27e8ea4 +/deepseek-ai-dsh-client-ui-settings-models/use-this-package/editing-a-provider: + en: ec0ba62a4e7185b4 + zh: 37d1e1e7a3817d12 +/deepseek-ai-dsh-client-ui-settings-models/use-this-package/adding-and-deleting-providers: + en: 9d533c65c82cd4a4 + zh: 0a5da334e127c035 +/deepseek-ai-dsh-client-ui-settings-models/use-this-package/first-run-dialogs: + en: 589397a35f82244e + zh: 342fbceee2c173a2 +/deepseek-ai-dsh-client-ui-settings-models/use-this-package/extension-slots: + en: 6979796f0332268f + zh: 00896a005cc4f4e2 +/deepseek-ai-dsh-client-ui-settings-models/understand-the-implementation: + en: a87afbec5e339b36 + zh: 6348c81af7e650e1 +/deepseek-ai-dsh-client-ui-settings-models/understand-the-implementation/validation: + en: 74948a88fe1f9aac + zh: 8ad2200fa74c12c9 +/deepseek-ai-dsh-client-ui-settings-models/understand-the-implementation/concurrency-and-credentials: + en: 670b8c066aed9b7a + zh: 2bedba9a2e0e3fee +/deepseek-ai-dsh-client-ui-settings-models/understand-the-implementation/onboarding-coordinator: + en: 5b18ec5319a96cfa + zh: 0eaa3078e7d87cad +/deepseek-ai-dsh-client-ui-settings-models/further-exploration: + en: 20abd8b98b6c20e2 + zh: 6dfda7955ce5f33f +/deepseek-ai-dsh-client-ui-settings-models/model-experience: + en: 3120df665299c634 + zh: 1d9f365d091d0d2a +/deepseek-ai-dsh-client-ui-settings-models/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: 9779c98fff4c949a +/deepseek-ai-dsh-client-ui-settings-models/known-limitations-and-deferred-work: + en: cc69c9934bf22302 + zh: 4ea896f4b54aa203 +/deepseek-ai-dsh-client-ui-settings-models/known-limitations-and-deferred-work/dev-note: + en: 4f6749870e661a48 + zh: 4953f3ea814546a4 diff --git a/packages/client/ui-settings-models/README.md b/packages/client/ui-settings-models/README.md index 52a8e91c15..809d7407ed 100644 --- a/packages/client/ui-settings-models/README.md +++ b/packages/client/ui-settings-models/README.md @@ -25,7 +25,11 @@ English | [中文](README.zh.md) ## Use this package -Open the Models page from the Settings navigation to see every configured provider as a row. The official DeepSeek provider (`deepseek-official`) always appears first; other providers retain their directory order. A whole-section provider whose key is not configured anywhere renders as its open setup card instead, but only in the first-run posture and only until the user closes that card. Each card kind owns its own open state, so closing one never discards a draft in another. +Saving credentials or a custom provider preserves the selected model. The user can select an available model from the composer. + +DeepSeek Account appears first and DeepSeek second in the provider list; third-party providers retain their directory order. + +Open the Models page from the Settings navigation to see every configured provider as a row. A whole-section provider whose key is not configured anywhere renders as its open setup card instead, but only in the first-run posture and only until the user closes that card. Each card kind owns its own open state, so closing one never discards a draft in another. A provider with a stored catalog error remains visible with its diagnostic and edit/delete actions. Add actions are offered only for registered settings namespaces, so an unavailable namespace cannot leave a button that opens no editor. A rejected save leaves the editor open and displays the Host diagnostic. @@ -55,6 +59,8 @@ After the versioned notice step completes, the DeepSeek step projects first-run The section declares two seats for plugins distributed outside this repository, typed in [`src/client/slot-contract.ts`](src/client/slot-contract.ts) and exported from `./client`. `settings.models.provider-card` (keyed) renders inside every card that shows a directory row — a saved row's card, its first-run setup posture, and the add-provider draft — dispatched with `entryKey = settingsNs` and owner props carrying the row's `ConfigurableProviderView`, its configured state, and its confirmed api-key credential state, so one registration under an adapter family's namespace receives every card of that family, hand-declared routes included; the hand-declared draft card has no directory row yet and dispatches nothing until saved. `settings.models.footer` (list) renders after the rows and the add controls. A registrant activates through `ctx.slots.inject` with a type-only import of this package's `/client` entry; without registrants both seats render nothing. +The Models page includes **DeepSeek Account** (`deepseek-account`, **DeepSeek 账号** in Chinese). Its editor exposes the shared DeepSeek model catalog without API-key or base-URL inputs. The account row is hidden when its available model catalog is empty, including before sign-in and after sign-out; it returns when account models become available. + ----- diff --git a/packages/client/ui-settings-models/README.zh.md b/packages/client/ui-settings-models/README.zh.md index 9470c9c0f1..9d5154cde5 100644 --- a/packages/client/ui-settings-models/README.zh.md +++ b/packages/client/ui-settings-models/README.zh.md @@ -25,7 +25,11 @@ kind: "package-reference" ## 使用本包 -从设置导航打开 Models 页面,即可看到每个已配置的提供商都有一行。官方 DeepSeek 提供商(`deepseek-official`)始终排在第一位,其他提供商保持目录中的原有顺序。其配置键未在任何位置配置的整分节提供商会渲染为其展开的设置卡片而非一行,但仅限首次运行姿态,且仅持续到用户关闭该卡片为止。每一类卡片各自持有自己的展开状态,因此关掉其中一张绝不会丢弃另一张里的草稿。 +保存凭据或自定义提供方时保留已选模型。用户可在 composer 中选择可用模型。 + +提供方列表中 DeepSeek 账号排第一,DeepSeek 排第二;第三方提供方保留目录中的相对顺序。 + +从设置导航打开 Models 页面,即可看到每个已配置的提供方都有一行。其配置键未在任何位置配置的整分节提供方会渲染为其展开的设置卡片而非一行,但仅限首次运行姿态,且仅持续到用户关闭该卡片为止。每一类卡片各自持有自己的展开状态,因此关掉其中一张绝不会丢弃另一张里的草稿。 存在已存储目录错误的提供商仍显示诊断以及编辑、删除入口。添加操作只面向已注册的 settings 命名空间,因此不可用的命名空间不会留下无法打开编辑器的按钮。保存被拒绝时,编辑器保持打开并展示 Host 诊断。 @@ -55,6 +59,8 @@ Host 配置 `credentialOnboarding` 默认为 `true`。Electron preload 标记会 本分区为仓库外分发的插件声明两个席位,类型定义在 [`src/client/slot-contract.ts`](src/client/slot-contract.ts) 并从 `./client` 导出。`settings.models.provider-card`(keyed)渲染在每张展示目录行的卡片内部——已保存行的卡片、其首次运行 setup 形态、以及「添加提供商」草稿卡——以 `entryKey = settingsNs` 分发,owner props 携带该行的 `ConfigurableProviderView`、其 configured 状态与已确认的 api-key 凭据状态,因此以某适配器家族的 namespace 注册一次即可收到该家族的全部卡片,含手工声明的路由;手工声明的草稿卡尚无目录行,保存之前不分发。`settings.models.footer`(list)渲染在行列表与新增控件之后。注册方通过 `ctx.slots.inject` 激活,并以 type-only import 引入本包 `/client` 入口;没有注册方时两个席位均不渲染任何内容。 +Models 页面包含 **DeepSeek 账号**(`deepseek-account`,英文为 **DeepSeek Account**)。其编辑器展示共享的 DeepSeek 模型目录,不提供 API Key 或 Base URL 输入框。账号可用模型目录为空时隐藏账号行,包括登录前和退登后;账号模型恢复可用时重新显示。 + ----- diff --git a/packages/client/ui-settings-models/package.json b/packages/client/ui-settings-models/package.json index 93959d0734..587093b505 100644 --- a/packages/client/ui-settings-models/package.json +++ b/packages/client/ui-settings-models/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-models", "description": "Models settings and shared product-onboarding dialogs over existing settings and credential joins", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-models/src/client/ModelsSection.tsx b/packages/client/ui-settings-models/src/client/ModelsSection.tsx index d5743645b2..dc43ad98d0 100644 --- a/packages/client/ui-settings-models/src/client/ModelsSection.tsx +++ b/packages/client/ui-settings-models/src/client/ModelsSection.tsx @@ -1,8 +1,8 @@ /** * Models settings section: the provider rows joined from the configurable * directory, settings namespaces, and credential states, with one editor - * card at a time. The official DeepSeek provider appears first; other rows - * retain directory order. Rows expose only confirmed API-key state through accessible + * card at a time. Rows retain the account-first order supplied by the store + * and expose only confirmed API-key state through accessible * solid configured or missing dots. A whole-section provider without a * configured key renders as its open setup card instead of a row, but only in * the first-run posture — no provider on the page can serve requests yet — and @@ -167,7 +167,7 @@ export async function removeProviderProfile( * @returns whether to render the setup card. */ export function needsSetup(row: ProviderRow, anyUsable: boolean): boolean { - if (anyUsable) return false + if (anyUsable || row.entry.provider === 'deepseek-account') return false if (row.entry.settingsPath.length > 0) return false return row.credential?.configured !== true } @@ -231,7 +231,9 @@ export function ModelsSection(props: ModelsSectionProps): ReactNode { function Loaded({ injected, renderSlot }: { injected: ModelsSectionFace; renderSlot: ModelsRenderSlot }): ReactNode { const { controller, operations, schema, t } = injected - const state = injected.useSnapshot(snapshot => snapshot) + const snapshot = injected.useSnapshot(value => value) + const state = { ...snapshot, rows: snapshot.rows.map(row => row.entry.provider === 'deepseek-account' + ? { ...row, entry: { ...row.entry, displayName: t('deepSeekAccount') } } : row) } const [editing, setEditing] = useState(undefined) const [addOpen, setAddOpen] = useState(false) const [addMode, setAddMode] = useState('catalog') @@ -336,9 +338,7 @@ function Loaded({ injected, renderSlot }: { injected: ModelsSectionFace; renderS // One fact decides both first-run postures on this page and the onboarding // step: whether the user already has a provider to talk to. const anyUsable = state.rows.some(providerUsable) - const configured = state.rows.filter(row => row.configured).sort((left, right) => ( - Number(right.entry.provider === 'deepseek-official') - Number(left.entry.provider === 'deepseek-official') - )) + const configured = state.rows.filter(row => row.configured) const configurable = state.rows.filter(row => state.namespaces.has(row.entry.settingsNs)) const addable: AddableRow[] = state.rows.flatMap((row) => { const namespace = state.namespaces.get(row.entry.settingsNs) diff --git a/packages/client/ui-settings-models/src/client/ProviderEditor.tsx b/packages/client/ui-settings-models/src/client/ProviderEditor.tsx index b4df6a7124..3ed7b42d87 100644 --- a/packages/client/ui-settings-models/src/client/ProviderEditor.tsx +++ b/packages/client/ui-settings-models/src/client/ProviderEditor.tsx @@ -183,6 +183,7 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode { const fallback = schema.getPath(namespace.value, settingsPath) const disabled = props.readOnly || busy const layout = layoutOf(namespace.ns) + const accountProvider = props.provider === 'deepseek-account' const keyRef = refFor(schema, namespace, settingsPath, props.provider) // The same schema read the create card makes, so the choices offered here // and there cannot drift apart: both come from the adapter's own `Config`. @@ -194,6 +195,7 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode { ) useEffect(() => { + if (accountProvider) return let stale = false setKeyState(undefined) // The key state is a placeholder hint, not a precondition for editing: a @@ -203,7 +205,7 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode { setKeyState(described) }) return () => { stale = true } - }, [operations, keyRef]) + }, [operations, keyRef, accountProvider]) const stringAt = (source: unknown, key: string): string | undefined => { const value = schema.getPath(source, [key]) @@ -368,6 +370,9 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode { }, onReset: () => { setDraft(current => schema.deletePath(current, ['models'])) }, } + if (accountProvider) return return ( <>
diff --git a/packages/client/ui-settings-models/src/client/index.ts b/packages/client/ui-settings-models/src/client/index.ts index df55037650..ff6870b572 100644 --- a/packages/client/ui-settings-models/src/client/index.ts +++ b/packages/client/ui-settings-models/src/client/index.ts @@ -64,7 +64,7 @@ export function refreshIfLoaded(controller: ModelsSettingsStore): void { * constrained; registration depends on each slot through `slots.inject()`. */ export const inject = [ - 'slots', 'locale', 'remote', 'remote.credentials', 'remote.llm', 'remote.settings', + 'slots', 'locale', 'remote', 'remote.credentials', 'remote.llm', 'remote.settings', 'remote.session', 'configForms', 'settingsSchema', ] @@ -122,6 +122,7 @@ export function apply(ctx: ClientContext): void { const refreshModels = (): void => { refreshIfLoaded(controller) } const disposers = [ ctx.remote.$on('settings/document-updated', () => { refreshModels() }), + ctx.remote.$on('credentials/record-updated', refreshModels), ctx.remote.$on('credentials/reference-updated', refreshModels), ctx.remote.$on('llm/adapters-updated', refreshModels), ctx.on('connection/reset', refreshModels), diff --git a/packages/client/ui-settings-models/src/client/locales.ts b/packages/client/ui-settings-models/src/client/locales.ts index 9c8a44d9e0..bba0b85288 100644 --- a/packages/client/ui-settings-models/src/client/locales.ts +++ b/packages/client/ui-settings-models/src/client/locales.ts @@ -3,6 +3,7 @@ /** English strings (the key-set source of truth for this pair). */ export const en = { nav: 'Models', + deepSeekAccount: 'DeepSeek Account', title: 'Models', intro: 'Enter your API keys to use models from the following providers.', edit: 'Edit', @@ -122,6 +123,7 @@ export type ModelsKey = keyof typeof en /** Chinese strings (same keys as {@link en}). */ export const zh: { [Key in keyof typeof en]: string } = { nav: '模型', + deepSeekAccount: 'DeepSeek 账号', title: '模型', intro: '填入各提供商的 API 密钥即可使用其模型。', edit: '编辑', diff --git a/packages/client/ui-settings-models/src/client/store.ts b/packages/client/ui-settings-models/src/client/store.ts index 2af1d54d5c..34a20107e3 100644 --- a/packages/client/ui-settings-models/src/client/store.ts +++ b/packages/client/ui-settings-models/src/client/store.ts @@ -37,7 +37,7 @@ export interface ProviderDirectoryEntry { * Join declared configurable providers with the currently registered routes. * @param registered - live provider routes in registration order. * @param directory - declared configurable providers in declaration order. - * @returns declared rows followed by live routes with no declaration. + * @returns account and official routes first, then other routes in their original order. */ export function joinProviderDirectory( registered: readonly LlmProviderInfo[], @@ -64,11 +64,15 @@ export function joinProviderDirectory( active: true, }) } - return rows + return rows.toSorted((left, right) => + (left.provider === 'deepseek-account' ? 0 : left.provider === 'deepseek-official' ? 1 : 2) + - (right.provider === 'deepseek-account' ? 0 : right.provider === 'deepseek-official' ? 1 : 2)) } /** One provider row the page renders. */ export interface ProviderRow { + /** Account route has usable credentials for the configured inference origin. */ + accountAvailable?: boolean /** The directory entry (route id, display name, settings address, live state). */ entry: ProviderDirectoryEntry /** Whether any layer configures this provider (its profile resolves). */ @@ -208,11 +212,18 @@ export class ModelsSettingsStore { entry, configured, removable, - apiKeyEnv: apiKeyEnvOf(namespace, entry.settingsPath, this.schema), + apiKeyEnv: entry.provider === 'deepseek-account' ? undefined : apiKeyEnvOf(namespace, entry.settingsPath, this.schema), credential: undefined, } }) - const refs = [...new Set(rows.map(row => row.apiKeyEnv ?? deriveKeyRef(row.entry.provider)))] + if (rows.some(row => row.entry.provider === 'deepseek-account')) { + const catalog = await this.ctx.remote.session.modelCatalog() + for (const row of rows) { + if (row.entry.provider === 'deepseek-account') row.accountAvailable = catalog.ok + && catalog.value.groups.some(group => group.id === 'deepseek-account' && group.models.length > 0) + } + } + const refs = [...new Set(rows.filter(row => row.entry.provider !== 'deepseek-account').map(row => row.apiKeyEnv ?? deriveKeyRef(row.entry.provider)))] let credentials: Record = {} let credentialError: string | null = null if (refs.length > 0) { @@ -229,7 +240,8 @@ export class ModelsSettingsStore { s.error = null s.credentialError = credentialError s.writable = writable - s.rows = rows.map((row) => { + s.rows = rows.filter(row => row.entry.provider !== 'deepseek-account' || row.accountAvailable === true).map((row) => { + if (row.entry.provider === 'deepseek-account') return row const named = row.apiKeyEnv === undefined ? undefined : credentials[row.apiKeyEnv] const derived = row.apiKeyEnv !== undefined ? undefined : credentials[deriveKeyRef(row.entry.provider)] return { @@ -264,6 +276,7 @@ export class ModelsSettingsStore { */ export function providerUsable(row: ProviderRow): boolean { if (!row.entry.active) return false + if (row.entry.provider === 'deepseek-account') return row.accountAvailable === true if (row.apiKeyEnv === undefined) return true return row.credential?.configured === true } diff --git a/packages/client/ui-settings-models/tests/apply.client.spec.ts b/packages/client/ui-settings-models/tests/apply.client.spec.ts index 3c6b1b903f..62196478f7 100644 --- a/packages/client/ui-settings-models/tests/apply.client.spec.ts +++ b/packages/client/ui-settings-models/tests/apply.client.spec.ts @@ -47,6 +47,7 @@ async function bench(isLoopback = true, mock = RemoteMock.create().load(remoteDe ...services, }, settings: mock.remote.settings, + session: { initializeDefaultModel: vi.fn(async () => ({ ok: true, value: undefined })) }, }) // The fixed Host facts the settings provider reads its persistence from. remote.$host = { home: undefined, isLoopback } @@ -109,7 +110,7 @@ describe('ui-settings-models apply', () => { it('declares the services it uses', () => { expect(inject).toEqual([ - 'slots', 'locale', 'remote', 'remote.credentials', 'remote.llm', 'remote.settings', + 'slots', 'locale', 'remote', 'remote.credentials', 'remote.llm', 'remote.settings', 'remote.session', 'configForms', 'settingsSchema', ]) }) diff --git a/packages/client/ui-settings-models/tests/components.client.spec.tsx b/packages/client/ui-settings-models/tests/components.client.spec.tsx index 3335ddaa2d..1a2398bd2a 100644 --- a/packages/client/ui-settings-models/tests/components.client.spec.tsx +++ b/packages/client/ui-settings-models/tests/components.client.spec.tsx @@ -3,6 +3,7 @@ import { act, cleanup, fireEvent, render, screen, waitFor, within } from '@testing-library/react' import { afterEach, describe, expect, it, vi } from 'vitest' import Schema from '@deepseek-ai/schemastery' +import { Context } from '@deepseek-ai/cordis' import { bindSnapshotSelector, RemoteError } from '@deepseek-ai/dsh-client-test-runtime' import type { CredentialInfo, RemoteResult, SettingsNamespaceView, @@ -12,7 +13,7 @@ import { ModelsSection, needsSetup, providerCopy, providerTargetLabel, removeProviderProfile, } from '../src/client/ModelsSection.tsx' import type { ModelsSectionInjected, ModelsSectionProps } from '../src/client/ModelsSection.tsx' -import { pathOps } from '../src/client/ProviderEditor.tsx' +import { ProviderEditor, pathOps } from '../src/client/ProviderEditor.tsx' import { DeepSeekModelsEditor, formatCapacity, modelDrafts, parseCapacity, validateDeepSeekModels, } from '../src/client/DeepSeekModelsEditor.tsx' @@ -22,7 +23,7 @@ import { deriveKeyRef, ModelsSettingsStore } from '../src/client/store.ts' import { createModelsOperations } from '../src/client/operations.ts' import type { ModelsOperations } from '../src/client/operations.ts' import type { ProviderRow } from '../src/client/store.ts' -import { en } from '../src/client/locales.ts' +import { en, zh } from '../src/client/locales.ts' import { settingsSchema } from './settings-schema.client.ts' afterEach(cleanup) @@ -219,7 +220,9 @@ const contexts = new WeakMap() function ctxWith(face: object): PageContext { const existing = contexts.get(face) if (existing !== undefined) return existing - const ctx = { remote: face } as unknown as PageContext + const ctx = Object.assign(new Context(), { remote: { ...face, + session: { initializeDefaultModel: async () => ({ ok: true, value: undefined }) }, + } }) contexts.set(face, ctx) return ctx } @@ -1111,6 +1114,16 @@ describe('ModelsSection', () => { expect(baseURL.value).toBe('') }) + it('saves credentials without changing the default model', async () => { + const { ctx, set } = await mountDeepSeekCard() + const initialize = vi.spyOn(ctx.remote.session, 'initializeDefaultModel') + fireEvent.change(await screen.findByLabelText(en.keyInput), { target: { value: 'test-key' } }) + fireEvent.click(screen.getByText(en.apply)) + await waitFor(() => { expect(screen.queryByText(en.apply)).toBeNull() }) + expect(set).toHaveBeenCalledOnce() + expect(initialize).not.toHaveBeenCalled() + }) + it('rejects an invalid draft before writing', async () => { const { mutate } = await mountDeepSeekCard() fireEvent.click(screen.getByText(en.customized)) @@ -1869,3 +1882,34 @@ describe('apiKeyFailure', () => { expect(apiKeyFailure('"a')).toBeUndefined() }) }) + +it.each([en, zh])('edits the account model catalog without credential or endpoint fields', async (copy) => { + const scripted = scriptedFace({}) + const ops = operationsWith(scripted.face) + const describe = vi.spyOn(ops, 'describeCredential') + render( copy[key]} readOnly={false} onClose={() => {}} />) + expect(screen.queryByLabelText(copy.keyInput)).toBeNull() + expect(screen.queryByLabelText(copy.baseUrl)).toBeNull() + expect(describe).not.toHaveBeenCalled() + expect(screen.getByDisplayValue('deepseek-v4-flash')).toBeTruthy() + await expect(`${document.body.textContent}\n`) + .toMatchFileSnapshot(`./expected/deepseek-account-${copy === en ? 'en' : 'zh'}.txt`) +}) + +it('renders the localized account row and supports catalogs without capacity defaults', async () => { + const scripted = scriptedFace({}) + const { controller, view } = await mountFace(scripted) + const row = controller.store.getSnapshot().rows[0]! + await act(async () => { controller.store.update((state) => { + state.rows = [{ ...row, accountAvailable: true, entry: { ...row.entry, provider: 'deepseek-account' } }] + }) }) + expect(screen.getByText(en.deepSeekAccount)).toBeTruthy() + view.unmount() + const namespace = wireNamespaces()[0]! + render( {}} />) + expect(screen.queryByLabelText(en.keyInput)).toBeNull() +}) diff --git a/packages/client/ui-settings-models/tests/expected/deepseek-account-en.txt b/packages/client/ui-settings-models/tests/expected/deepseek-account-en.txt new file mode 100644 index 0000000000..c9841889a6 --- /dev/null +++ b/packages/client/ui-settings-models/tests/expected/deepseek-account-en.txt @@ -0,0 +1 @@ +DeepSeek Accountdeepseek-accountModelsUsing the adapter defaultsAdd modelCancelApply diff --git a/packages/client/ui-settings-models/tests/expected/deepseek-account-zh.txt b/packages/client/ui-settings-models/tests/expected/deepseek-account-zh.txt new file mode 100644 index 0000000000..e11c2e1969 --- /dev/null +++ b/packages/client/ui-settings-models/tests/expected/deepseek-account-zh.txt @@ -0,0 +1 @@ +DeepSeek 账号deepseek-account模型目录正在使用适配器默认模型添加模型取消保存 diff --git a/packages/client/ui-settings-models/tests/onboarding-dialog.client.spec.tsx b/packages/client/ui-settings-models/tests/onboarding-dialog.client.spec.tsx index 9eec2d8dcd..f04b8853b4 100644 --- a/packages/client/ui-settings-models/tests/onboarding-dialog.client.spec.tsx +++ b/packages/client/ui-settings-models/tests/onboarding-dialog.client.spec.tsx @@ -136,7 +136,7 @@ function harness(options: { }, } // The page plugin's context, scripted down to the namespaces it reaches. - const ctx = { remote: face } as never + const ctx = { remote: { ...face, session: { initializeDefaultModel: async () => ({ ok: true, value: undefined }) } } } as never const operations = createModelsOperations(ctx) const controller = new ModelsSettingsStore(ctx, settingsSchema, new SettingsDescribeMirror(ctx)) const openSection = vi.fn() diff --git a/packages/client/ui-settings-models/tests/provider-form.client.spec.tsx b/packages/client/ui-settings-models/tests/provider-form.client.spec.tsx index 16af464c77..eb0e920fbc 100644 --- a/packages/client/ui-settings-models/tests/provider-form.client.spec.tsx +++ b/packages/client/ui-settings-models/tests/provider-form.client.spec.tsx @@ -3,6 +3,7 @@ import { within, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react' import { afterEach, describe, expect, it, vi } from 'vitest' import Schema from '@deepseek-ai/schemastery' +import { Context } from '@deepseek-ai/cordis' import { bindSnapshotSelector, RemoteError } from '@deepseek-ai/dsh-client-test-runtime' import type { SettingsNamespaceView } from '@deepseek-ai/dsh-api-remotes/client' import type { JsonValue } from '@deepseek-ai/dsh-util-values' @@ -153,7 +154,9 @@ const contexts = new WeakMap() function ctxWith(face: object): PageContext { const existing = contexts.get(face) if (existing !== undefined) return existing - const ctx = { remote: face } as unknown as PageContext + const ctx = Object.assign(new Context(), { remote: { ...face, + session: { initializeDefaultModel: async () => ({ ok: true, value: undefined }) }, + } }) contexts.set(face, ctx) return ctx } @@ -858,6 +861,21 @@ describe('hand-declared providers', () => { return { ...scripted, onClose } } + it('creates a custom provider without changing the default model', async () => { + const { face, mutate, set, onClose } = mountCard() + const initialize = vi.spyOn(ctxWith(face).remote.session, 'initializeDefaultModel') + fireEvent.change(screen.getByLabelText(en.customRoute), { target: { value: 'acme-gateway' } }) + fireEvent.change(screen.getByLabelText(en.baseUrl), { target: { value: 'https://gateway.example/v1' } }) + fireEvent.change(screen.getByLabelText(en.keyInput), { target: { value: 'test-key' } }) + fireEvent.click(screen.getByRole('button', { name: en.addModel })) + fireEvent.change(screen.getByLabelText(`${en.modelId} 1`), { target: { value: 'model' } }) + fireEvent.click(screen.getByText(en.create)) + await waitFor(() => { expect(onClose).toHaveBeenCalledWith(true) }) + expect(mutate).toHaveBeenCalledOnce() + expect(set).toHaveBeenCalledOnce() + expect(initialize).not.toHaveBeenCalled() + }) + it('writes the whole profile and the key under the derived reference', async () => { const { mutate, set, onClose } = mountCard() diff --git a/packages/client/ui-settings-models/tests/store.client.spec.ts b/packages/client/ui-settings-models/tests/store.client.spec.ts index 3e3e3dd5dc..79905b4441 100644 --- a/packages/client/ui-settings-models/tests/store.client.spec.ts +++ b/packages/client/ui-settings-models/tests/store.client.spec.ts @@ -4,7 +4,7 @@ import type { RpcResponse } from '@deepseek-ai/dsh-api-remotes/client' import { RemoteError } from '@deepseek-ai/dsh-client-test-runtime' import { SettingsDescribeMirror } from '@deepseek-ai/dsh-client-ui-settings/src/client/settings-mirror.ts' import { settingsSchema } from './settings-schema.client.ts' -import { joinProviderDirectory, ModelsSettingsStore } from '../src/client/store.ts' +import { joinProviderDirectory, ModelsSettingsStore, providerUsable } from '../src/client/store.ts' it.each([false, true])('retains configuration diagnostics when the route is active: %s', (active) => { expect(joinProviderDirectory(active ? [{ id: 'openai', name: 'openai' }] : [], [{ @@ -16,6 +16,16 @@ it.each([false, true])('retains configuration diagnostics when the route is acti }]) }) +it('places account and official before third-party providers', () => { + const providers = ['custom', 'deepseek-official', 'deepseek-account', 'openai'] + const directory = providers.map(provider => ({ + provider, displayName: provider, settingsNs: 'fixture', settingsPath: [], + })) + expect(joinProviderDirectory([], directory).map(row => row.provider)) + .toEqual(['deepseek-account', 'deepseek-official', 'custom', 'openai']) + expect(directory.map(row => row.provider)).toEqual(providers) +}) + let nextRpc = 0 function ok(value: T): RpcResponse { return { rpcId: `r-${nextRpc++}` as never, result: { ok: true, value } } @@ -64,6 +74,7 @@ const NAMESPACES = [ ] function api(overrides: { + accountAvailable?: boolean providers?: () => Promise> describeSettings?: () => Promise> describeCredentials?: (refs: readonly string[]) => Promise>> @@ -88,6 +99,8 @@ function api(overrides: { : remoteFail(response.result.error.message) } const face = { + session: { modelCatalog: async () => remoteOk({ groups: overrides.accountAvailable + ? [{ id: 'deepseek-account', models: [{ id: 'deepseek-flash' }] }] : [] }) }, llm: { listProviders: () => mapProviderBatch(rows => rows .filter(row => row.active) @@ -329,3 +342,36 @@ describe('edge joins', () => { expect(store.store.getSnapshot().rows).toHaveLength(4) }) }) + + +it.each([false, true])('uses account availability without asking for an API key: %s', async (accountAvailable) => { + const { ctx, mirror, seenRefs } = api({ accountAvailable, providers: async () => ok({ providers: [{ + provider: 'deepseek-account', displayName: 'DeepSeek Account', settingsNs: 'llm-deepseek', settingsPath: [], active: true, + }] }) }) + const store = new ModelsSettingsStore(ctx, settingsSchema, mirror) + await store.load() + const rows = store.store.getSnapshot().rows + expect(rows).toHaveLength(accountAvailable ? 1 : 0) + if (accountAvailable) { + expect(rows[0]).toMatchObject({ accountAvailable: true, apiKeyEnv: undefined, credential: undefined }) + expect(providerUsable(rows[0]!)).toBe(true) + } + expect(seenRefs).toEqual([]) +}) + +it('removes the account row after sign-out and restores it after sign-in', async () => { + const overrides = { accountAvailable: true, providers: async () => ok({ providers: [{ + provider: 'deepseek-account', displayName: 'DeepSeek Account', settingsNs: 'llm-deepseek', settingsPath: [], active: true, + }, ...DIRECTORY] }) } + const { ctx, mirror } = api(overrides) + const store = new ModelsSettingsStore(ctx, settingsSchema, mirror) + await store.load() + expect(store.store.getSnapshot().rows[0]?.entry.provider).toBe('deepseek-account') + overrides.accountAvailable = false + await store.load() + expect(store.store.getSnapshot().rows.map(row => row.entry.provider)).not.toContain('deepseek-account') + expect(store.store.getSnapshot().rows).toHaveLength(DIRECTORY.length) + overrides.accountAvailable = true + await store.load() + expect(store.store.getSnapshot().rows[0]?.entry.provider).toBe('deepseek-account') +}) diff --git a/packages/client/ui-settings-plugin-inventory/README.i18n.yaml b/packages/client/ui-settings-plugin-inventory/README.i18n.yaml index 46d1797a0c..6b7ff6a2bf 100644 --- a/packages/client/ui-settings-plugin-inventory/README.i18n.yaml +++ b/packages/client/ui-settings-plugin-inventory/README.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-plugin-inventory/README.md -README.md: 7353f14d111aa1c89c3331a3d4977ddfbf950294 -README.zh.md: 9078f8074a10688cb7370ec7ee5fd8af16ca48c1 +/: + en: 9121298d88fe8ea6 + zh: 5da705491f951d0e +/deepseek-ai-dsh-client-ui-settings-plugin-inventory: + en: 463eecf002ec0f54 + zh: b8dc6003ddccd14a +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/summary: + en: 56f5349b6e502525 + zh: 691a0fe90b739e9d +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/use-this-package: + en: 67637808e7940157 + zh: d4d0716ea4d33e4a +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/use-this-package/reading-a-card: + en: e615aaa891b5055f + zh: 38769e763c8e54ca +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/use-this-package/the-preset-switcher: + en: 84e5938329199a22 + zh: 6f5cfaac56433e8b +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/use-this-package/retrying-a-failed-read: + en: 2859449aaae5ab59 + zh: 06380059ae429026 +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/understand-the-implementation: + en: cab883d26642c932 + zh: 54e7321bd781b400 +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/understand-the-implementation/registration: + en: e4792880c5916ce0 + zh: 4c8171a446dd153f +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/understand-the-implementation/rendering: + en: b9aa850e5f101b68 + zh: 8a29025f19f6ce37 +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/further-exploration: + en: ae3819f0c5da95bd + zh: 40972ab96d5c95e2 +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/model-experience: + en: 69fb187ac2361233 + zh: d4d3ec4ed3e3d98d +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: de54f3467ef3b9be +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/known-limitations-and-deferred-work: + en: 3d3343d97eb73762 + zh: 5fc9d1c1f0c4055d +/deepseek-ai-dsh-client-ui-settings-plugin-inventory/known-limitations-and-deferred-work/dev-note: + en: 7516b7e39304e5b3 + zh: 8961c0cefb89ee12 diff --git a/packages/client/ui-settings-plugin-inventory/package.json b/packages/client/ui-settings-plugin-inventory/package.json index 0948468ce4..c3dc2d4643 100644 --- a/packages/client/ui-settings-plugin-inventory/package.json +++ b/packages/client/ui-settings-plugin-inventory/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-plugin-inventory", "description": "Read-only Cordis Loader inventory tab in Web Plugins settings", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-plugins/README.i18n.yaml b/packages/client/ui-settings-plugins/README.i18n.yaml index 043c8a60bb..77a7c3d9ce 100644 --- a/packages/client/ui-settings-plugins/README.i18n.yaml +++ b/packages/client/ui-settings-plugins/README.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-plugins/README.md -README.md: b4b3d37bd9da0fa6d1e3dcefd4d26394d4dde161 -README.zh.md: d22a9ec3f142bd7c11b27b1cb08e0a8a56ce6ead +/: + en: 06bd505cb0147b05 + zh: 8d7646e22faac71b +/deepseek-ai-dsh-client-ui-settings-plugins: + en: 3ceabe2cdb5492f6 + zh: 6ea0cb3f93e5bdf5 +/deepseek-ai-dsh-client-ui-settings-plugins/summary: + en: d9b27f1dd9713b4f + zh: 3ec674429179ae7d +/deepseek-ai-dsh-client-ui-settings-plugins/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings-plugins/use-this-package: + en: b4deec821244f970 + zh: 49b3afedc992b7fe +/deepseek-ai-dsh-client-ui-settings-plugins/understand-the-implementation: + en: c5cfef002b32c7c1 + zh: 0249b45a28c16b61 +/deepseek-ai-dsh-client-ui-settings-plugins/further-exploration: + en: 54ba782a2b26f615 + zh: fee9148d9658d83f +/deepseek-ai-dsh-client-ui-settings-plugins/model-experience: + en: 6b7c6f82ab6c8435 + zh: 4517689c899abcbe +/deepseek-ai-dsh-client-ui-settings-plugins/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: 6e1c9a8fdde89577 +/deepseek-ai-dsh-client-ui-settings-plugins/known-limitations-and-deferred-work: + en: 262d3dac53b5aff1 + zh: 3ac7a4d5c0d0f70f +/deepseek-ai-dsh-client-ui-settings-plugins/known-limitations-and-deferred-work/dev-note: + en: e67f633dc6fe7773 + zh: e88aeb617ffb74ea diff --git a/packages/client/ui-settings-plugins/package.json b/packages/client/ui-settings-plugins/package.json index 745ff32976..b295c4ace7 100644 --- a/packages/client/ui-settings-plugins/package.json +++ b/packages/client/ui-settings-plugins/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-plugins", "description": "Built-in plugins settings section for the dsh web client: the Settings navigation entry and the tab chrome feature-owned tabs register into", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-shell/README.i18n.yaml b/packages/client/ui-settings-shell/README.i18n.yaml index 58d0af3ff1..c7173c8d55 100644 --- a/packages/client/ui-settings-shell/README.i18n.yaml +++ b/packages/client/ui-settings-shell/README.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-shell/README.md -README.md: 057cc6d268d28752ac50a2f7cc9f631211e27e6f -README.zh.md: 04016f9dd495c49c36d9677f379a327ee9ec70dd +/: + en: f6377310e46f34e5 + zh: 55f00c64a61fb235 +/deepseek-ai-dsh-client-ui-settings-shell: + en: d38072750be19799 + zh: 8e2a7f9aacf2d61d +/deepseek-ai-dsh-client-ui-settings-shell/summary: + en: 4a6764083793412e + zh: f177136090ceee7e +/deepseek-ai-dsh-client-ui-settings-shell/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings-shell/use-this-package: + en: caaab79a5e1a76f6 + zh: 31dbcaaef71d4a0e +/deepseek-ai-dsh-client-ui-settings-shell/understand-the-implementation: + en: 2c58855d6b1dfaa6 + zh: 6e5546f2edb07687 +/deepseek-ai-dsh-client-ui-settings-shell/further-exploration: + en: 89337b623b8bf2f5 + zh: c73362e199061864 +/deepseek-ai-dsh-client-ui-settings-shell/model-experience: + en: 6b7c6f82ab6c8435 + zh: 4517689c899abcbe +/deepseek-ai-dsh-client-ui-settings-shell/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: 6e1c9a8fdde89577 +/deepseek-ai-dsh-client-ui-settings-shell/known-limitations-and-deferred-work: + en: 51c2778fb17f8d1d + zh: 6425a598ba93833e +/deepseek-ai-dsh-client-ui-settings-shell/known-limitations-and-deferred-work/dev-note: + en: e67f633dc6fe7773 + zh: e88aeb617ffb74ea diff --git a/packages/client/ui-settings-shell/package.json b/packages/client/ui-settings-shell/package.json index e3551daa21..519a5babee 100644 --- a/packages/client/ui-settings-shell/package.json +++ b/packages/client/ui-settings-shell/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-shell", "description": "Settings page of the shell executor on the dsh web client's Plugins page: the command timeout and the per-stream output cap of the shell namespace", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-subagent/README.i18n.yaml b/packages/client/ui-settings-subagent/README.i18n.yaml index 15d072c2cc..c779c93ac1 100644 --- a/packages/client/ui-settings-subagent/README.i18n.yaml +++ b/packages/client/ui-settings-subagent/README.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-subagent/README.md -README.md: 66761cc1ca16ecd26e33e84d402a2de186ef1e4f -README.zh.md: 5ab125b02f1650a6c4a87159ba5ffc685f82bbf6 +/: + en: 91ac9c71d17a231a + zh: 0e18ebe47ff01aed +/deepseek-ai-dsh-client-ui-settings-subagent: + en: d1fc570c45a5f42e + zh: 01eabcac395bca62 +/deepseek-ai-dsh-client-ui-settings-subagent/summary: + en: 4b6bf8db1752b902 + zh: 5bdba2bfe06234b4 +/deepseek-ai-dsh-client-ui-settings-subagent/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings-subagent/use-this-package: + en: 09ac65efa3352ef4 + zh: 3eda3d453764fdff +/deepseek-ai-dsh-client-ui-settings-subagent/understand-the-implementation: + en: 5124ebc1880ba9fa + zh: 89c2eb2d483962a7 +/deepseek-ai-dsh-client-ui-settings-subagent/further-exploration: + en: 9b43ebcd30efbdea + zh: e6ec50d755fb5e24 +/deepseek-ai-dsh-client-ui-settings-subagent/model-experience: + en: 6b7c6f82ab6c8435 + zh: 4517689c899abcbe +/deepseek-ai-dsh-client-ui-settings-subagent/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: 6e1c9a8fdde89577 +/deepseek-ai-dsh-client-ui-settings-subagent/known-limitations-and-deferred-work: + en: ea92269b6c36cbcc + zh: ec43fdf5c47a4906 +/deepseek-ai-dsh-client-ui-settings-subagent/known-limitations-and-deferred-work/dev-note: + en: e67f633dc6fe7773 + zh: e88aeb617ffb74ea diff --git a/packages/client/ui-settings-subagent/package.json b/packages/client/ui-settings-subagent/package.json index 4c2fd80f37..af69574a11 100644 --- a/packages/client/ui-settings-subagent/package.json +++ b/packages/client/ui-settings-subagent/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-subagent", "description": "Settings page of Subagent delegation on the dsh web client's Plugins page: recursion depth, parallel capacity, and the models agents may choose for subagents", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-web-search/README.i18n.yaml b/packages/client/ui-settings-web-search/README.i18n.yaml index 8c55625fac..76a8d25bce 100644 --- a/packages/client/ui-settings-web-search/README.i18n.yaml +++ b/packages/client/ui-settings-web-search/README.i18n.yaml @@ -1,6 +1,37 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-web-search/README.md -README.md: 21c21e736ee0e7288a01198072d1983fb58767a4 -README.zh.md: 257d1eddaaeca1cd7fe3e88793a15313fe635e33 +/: + en: e262010771f02430 + zh: 5fbff0286b858486 +/deepseek-ai-dsh-client-ui-settings-web-search: + en: 968c0f6ba2415331 + zh: aaf9e2aa22eafc98 +/deepseek-ai-dsh-client-ui-settings-web-search/summary: + en: c84451c5b4641b9f + zh: 3197ee34071fcb27 +/deepseek-ai-dsh-client-ui-settings-web-search/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings-web-search/use-this-package: + en: b9c740855d0886d8 + zh: f6e14f6bd01ffd23 +/deepseek-ai-dsh-client-ui-settings-web-search/understand-the-implementation: + en: 90a3d55da6722763 + zh: 8fc0463c6543f100 +/deepseek-ai-dsh-client-ui-settings-web-search/further-exploration: + en: 0514f11276497599 + zh: 044c633542332cd4 +/deepseek-ai-dsh-client-ui-settings-web-search/model-experience: + en: 6b7c6f82ab6c8435 + zh: 4517689c899abcbe +/deepseek-ai-dsh-client-ui-settings-web-search/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: 6e1c9a8fdde89577 +/deepseek-ai-dsh-client-ui-settings-web-search/known-limitations-and-deferred-work: + en: 3fb1d37ebc9bf37a + zh: d6ac7929cb19ff55 +/deepseek-ai-dsh-client-ui-settings-web-search/known-limitations-and-deferred-work/dev-note: + en: e67f633dc6fe7773 + zh: e88aeb617ffb74ea diff --git a/packages/client/ui-settings-web-search/package.json b/packages/client/ui-settings-web-search/package.json index e21ca4aaa7..63cdd8bf31 100644 --- a/packages/client/ui-settings-web-search/package.json +++ b/packages/client/ui-settings-web-search/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-web-search", "description": "Settings page of the DeepSeek web-search provider on the dsh web client's Plugins page: its API key, endpoint, and per-request search budget", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings/README.i18n.yaml b/packages/client/ui-settings/README.i18n.yaml index 526c93c320..49ceb34c3a 100644 --- a/packages/client/ui-settings/README.i18n.yaml +++ b/packages/client/ui-settings/README.i18n.yaml @@ -1,6 +1,58 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings/README.md -README.md: 67b094993acbff92917594aafd0731818b5daa1b -README.zh.md: eec972705e9113594b06aca0ee5b8b149b5c62ca +/: + en: a68df653048eed14 + zh: 2b117acaec0165a8 +/deepseek-ai-dsh-client-ui-settings: + en: 720600abd76a4a91 + zh: 822bda08efbfc3e4 +/deepseek-ai-dsh-client-ui-settings/summary: + en: 0404ff8b4ec867e0 + zh: 9c3f03dfd1306cc9 +/deepseek-ai-dsh-client-ui-settings/table-of-contents: + en: d152484eb41ac6b4 + zh: 09388d293f9be9cb +/deepseek-ai-dsh-client-ui-settings/use-this-package: + en: 2417d8409aad6ca7 + zh: 449eee623a2f334b +/deepseek-ai-dsh-client-ui-settings/use-this-package/configuration-forms: + en: 4aee5cd02d22d2d3 + zh: be90194b2c975f1d +/deepseek-ai-dsh-client-ui-settings/use-this-package/following-served-namespaces: + en: 2edd420502bebce1 + zh: 6624abe01110c012 +/deepseek-ai-dsh-client-ui-settings/use-this-package/filling-the-settings-slots: + en: 28e4230a0675edf8 + zh: b91c095ec2c0dd42 +/deepseek-ai-dsh-client-ui-settings/use-this-package/observable-success-and-failures: + en: 9767f17ca0f02ae3 + zh: 8e475d6d3d670702 +/deepseek-ai-dsh-client-ui-settings/understand-the-implementation: + en: 7dcac350b5bf7d1e + zh: d8fc21641f2784e7 +/deepseek-ai-dsh-client-ui-settings/understand-the-implementation/the-describe-mirror: + en: ea274a9480884a7f + zh: bbaf650e04646c04 +/deepseek-ai-dsh-client-ui-settings/understand-the-implementation/shared-entry-writes: + en: 11a73ab8e9280b81 + zh: f0e72a05959e3f32 +/deepseek-ai-dsh-client-ui-settings/understand-the-implementation/schema-service: + en: 34872bda24dc50c6 + zh: dcccef423906c408 +/deepseek-ai-dsh-client-ui-settings/further-exploration: + en: 57e3fe18940ecc83 + zh: 165bd696250de5dc +/deepseek-ai-dsh-client-ui-settings/model-experience: + en: 3120df665299c634 + zh: 1d9f365d091d0d2a +/deepseek-ai-dsh-client-ui-settings/model-experience/kv-cache-effect: + en: ca75c51c89c2c9b0 + zh: de54f3467ef3b9be +/deepseek-ai-dsh-client-ui-settings/known-limitations-and-deferred-work: + en: 5315511eb8650c68 + zh: c9b4f825a82e4447 +/deepseek-ai-dsh-client-ui-settings/known-limitations-and-deferred-work/dev-note: + en: 26f0b742de49074e + zh: ee7321bad1101bf1 diff --git a/packages/client/ui-settings/package.json b/packages/client/ui-settings/package.json index 90ae1eb92b..26e74c5ce5 100644 --- a/packages/client/ui-settings/package.json +++ b/packages/client/ui-settings/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings", "description": "Settings domain base plugin: shared configuration forms and the canonical settings slot-type contract", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-sidebar-browser/README.i18n.yaml b/packages/client/ui-sidebar-browser/README.i18n.yaml index 0fb7063909..2d1201ab84 100644 --- a/packages/client/ui-sidebar-browser/README.i18n.yaml +++ b/packages/client/ui-sidebar-browser/README.i18n.yaml @@ -1,6 +1,52 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-sidebar-browser/README.md -README.md: 3fc359efc0b26ecfa006f92a094e6408781c2155 -README.zh.md: b3a452b0e53695ef08aa5ceced432d2710c170e3 +/: + en: aceaa4f1e64f54b1 + zh: 0f43a543e01f0778 +/deepseek-ai-dsh-client-ui-sidebar-browser: + en: a84cb48a92ad07c9 + zh: 8c87b76cbe4c2f53 +/deepseek-ai-dsh-client-ui-sidebar-browser/summary: + en: 6da22559ff372e95 + zh: 8ad8f2b4ed655878 +/deepseek-ai-dsh-client-ui-sidebar-browser/table-of-contents: + en: d152484eb41ac6b4 + zh: de4a2a92773d135e +/deepseek-ai-dsh-client-ui-sidebar-browser/use-this-package: + en: 8cf8739a3e4c3504 + zh: a893ba17036fd8f7 +/deepseek-ai-dsh-client-ui-sidebar-browser/use-this-package/when-to-choose-it: + en: fb79cb7d59bc01af + zh: 5f6202d8b0b62d7d +/deepseek-ai-dsh-client-ui-sidebar-browser/use-this-package/minimal-configuration: + en: 8f568da45495c3ea + zh: 240c5a95ebd31dc2 +/deepseek-ai-dsh-client-ui-sidebar-browser/understand-the-implementation: + en: 42b15ac6321706aa + zh: e15901d8462ec7c7 +/deepseek-ai-dsh-client-ui-sidebar-browser/understand-the-implementation/protocol-policy: + en: dfcf047442eaa96e + zh: a1fc57195f4c2425 +/deepseek-ai-dsh-client-ui-sidebar-browser/understand-the-implementation/iframe-carrier: + en: e535f7330bb62a79 + zh: 485932298fdabaa3 +/deepseek-ai-dsh-client-ui-sidebar-browser/understand-the-implementation/controller: + en: 4a1b3a9a0c62b809 + zh: 9309d1c581957411 +/deepseek-ai-dsh-client-ui-sidebar-browser/further-exploration: + en: 4ebd881b4ade9d8f + zh: 715f2553210c08e6 +/deepseek-ai-dsh-client-ui-sidebar-browser/model-experience: + en: 69e711858e7d9ebc + zh: d84610491e69a35b +/deepseek-ai-dsh-client-ui-sidebar-browser/model-experience/kv-cache-effect: + en: e17a5fd3d5405745 + zh: db957a16dddce770 +/deepseek-ai-dsh-client-ui-sidebar-browser/known-limitations-and-deferred-work: + en: 307604babbe74f38 + zh: 7d7a5aa4b99964d0 +/deepseek-ai-dsh-client-ui-sidebar-browser/known-limitations-and-deferred-work/dev-note: + en: 945685f7066eda81 + zh: da888e0d3f785bd5 diff --git a/packages/client/ui-sidebar-browser/package.json b/packages/client/ui-sidebar-browser/package.json index 276edca457..13babc5551 100644 --- a/packages/client/ui-sidebar-browser/package.json +++ b/packages/client/ui-sidebar-browser/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-sidebar-browser", "description": "Sandboxed Web browser tabs for the right Sidebar", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-sidebar-documentpreview/README.i18n.yaml b/packages/client/ui-sidebar-documentpreview/README.i18n.yaml index 5f16c0fdaa..b5fd2d50c4 100644 --- a/packages/client/ui-sidebar-documentpreview/README.i18n.yaml +++ b/packages/client/ui-sidebar-documentpreview/README.i18n.yaml @@ -1,6 +1,46 @@ -# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each -# side as of the last confirmed-consistent state. Both languages carry equal authority; -# after editing either side, bring the other along and re-record with: +# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading +# section, a hash of its English and Chinese blocks outside code blocks and generated regions. +# After editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-sidebar-documentpreview/README.md -README.md: a0c08803fd13b32cb968f3415dec522a95937da3 -README.zh.md: 7ba9b4397fd34a43a0d399ca0cf4c16df10dc808 +/: + en: ef50065f5ff17aa1 + zh: ee5d2b7986739fca +/deepseek-ai-dsh-client-ui-sidebar-documentpreview: + en: 5168e03d461318f5 + zh: 7ad97d70ee331bfd +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/summary: + en: a74c16667d0baada + zh: 4fd709ff9f98b84f +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/table-of-contents: + en: 0dd8c3a22e28aacf + zh: c27c11bf4b5cceba +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/what-it-registers: + en: a8eaf01a3a3390ee + zh: ddea36dbcc4a0159 +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/addresses: + en: 949156aa02ec8b07 + zh: d3675754e2a37b5d +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/how-it-reads: + en: 7009d93302da168f + zh: b31d78c144c0fc57 +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/excel-preview: + en: d21b1c3d95ba48e4 + zh: 501fc3b5e04ee9cd +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/office-preview: + en: a6eccd94913000de + zh: 1ede588c7083f2a3 +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/navigation: + en: 5cd81a7b3cdc83bd + zh: 4cdd1b7ede497925 +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/model-experience: + en: ca1deb99d0e44755 + zh: f285fc56cee669ec +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/model-experience/kv-cache-effect: + en: 7edb4c0bb5f13847 + zh: ae5d0bbebe4aa563 +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/known-limitations-and-deferred-work: + en: 7be2ad2e198131f8 + zh: 21b35eae72a49ad2 +/deepseek-ai-dsh-client-ui-sidebar-documentpreview/known-limitations-and-deferred-work/dev-note: + en: 3d8904cb970145a3 + zh: a0c0cddcfedf9e42 diff --git a/packages/client/ui-sidebar-documentpreview/README.md b/packages/client/ui-sidebar-documentpreview/README.md index a0c08803fd..03e25deb27 100644 --- a/packages/client/ui-sidebar-documentpreview/README.md +++ b/packages/client/ui-sidebar-documentpreview/README.md @@ -59,7 +59,7 @@ When Developer tools is enabled, HTML fills the body edge to edge in a Blob ifra PNG, JPEG, GIF, WebP, BMP, ICO, and SVG render through Blob URLs in an `` static-image context, rounded inside a 12px inset. Images default to fit width without enlarging content smaller than the pane; 100% uses the image's intrinsic CSS-pixel width. The shared zoom controls can produce horizontal and vertical scrolling, but do not provide drag-to-pan. Zoom changes retain the same `` and Blob URL, so animated images continue playing. Raster formats can soften above their intrinsic size, while SVG remains on the browser's vector rendering path. SVG markup never enters the application DOM or an iframe, so its scripts cannot execute or reach the parent page. Replacing or unmounting the image revokes its Blob URL. -Shared copy comes from `sidebarDocumentPreview`; each builtin renderer owns its localized labels. PDF and converted Office previews use a graphite background in light mode and a matte-black background in dark mode, with subtle page shadows and original document colors. PDF and image previews share a floating control with **Fit width**, 25%, 50%, 100%, 150%, and 200% choices plus 25% incremental zoom across the 25%–400% fixed range. Fit width is the default and tracks pane resizing; 100% means the PDF's 96-DPI page size or the image's intrinsic CSS-pixel size. On fine pointers, the control starts hidden, slides up when the pointer enters the bottom 72 CSS pixels, and slides down after a 420 ms leave delay; hover, keyboard focus, an open menu, and an active gesture keep it visible, while devices without hover keep it visible continuously. Chromium maps a macOS trackpad pinch to the same live, pointer-anchored path as Ctrl+wheel; the control displays the gesture percentage, and the settled value survives body remounts until the tab closes. HTML previews do not expose zoom controls. +Shared copy comes from `sidebarDocumentPreview`; each builtin renderer owns its localized labels. PDF and converted Office previews use a graphite background in light mode and a matte-black background in dark mode, with subtle page shadows and original document colors. PDF and image previews share a floating control with **Fit width**, 25%, 50%, 100%, 150%, and 200% choices plus 25% incremental zoom across the 25%–400% fixed range. Fit width is the default and tracks pane resizing; 100% means the PDF's 96-DPI page size or the image's intrinsic CSS-pixel size. On fine pointers, the control starts hidden, slides up when the pointer enters the bottom 72 CSS pixels, and slides down after a 420 ms leave delay; hover, keyboard focus, an open menu, and an active gesture keep it visible, while devices without hover keep it visible continuously. Chromium maps a macOS trackpad pinch to the same live, pointer-anchored path as Ctrl+wheel; the control displays the gesture percentage, and the settled value survives body remounts until the tab closes. HTML previews do not expose zoom controls. After zoom settles or fit width changes, nearby PDF pages redraw at the resolved scale multiplied by the device pixel ratio. The previous bitmap and selectable text stay visible until the replacement bitmap is ready; offscreen pages refresh when they approach the viewport. Initial reads, additional pages, and HTML/PDF/image preparation share the ongoing `StateDot` loader, which exposes its label to assistive technology and respects reduced-motion preferences; every wait before content exists centres the loader in the pane, so opening a file shows one indicator in one position until the body appears. Loaded pages stay visible while another page loads. The PDF body loads its package-local `client.pdf.js` chunk only when a PDF preview mounts; PDF.js, its Worker source, and embedded support data stay out of the startup `client.js`. PDF pages fill the pane's width edge to edge as one vertical sequence and render lazily near the viewport; an unrendered page holds its place as a quiet 3:4 placeholder block. PDF.js’s official TextLayerBuilder manages selection boundaries and normalized copying over an aligned text layer. Its companion styles keep blank line breaks unhighlighted; alignment accounts for PDF page units, page rotation, and viewport resizing, and page disposal cancels both layers. Image-only PDFs contain no selectable text. Code previews show a tertiary-colored language label and a copy icon with a tooltip; wrapping remains in the document toolbar. They show source line numbers by default without including them in copied text; plain text uses the same font size and line height as code. Code sits on the pane's own background rather than the chat card's fill; its banner is adjacent to a full-height inner scrollport, so both scrollbars begin below the copy control. @@ -134,7 +134,7 @@ No direct effect; what the user reads here never enters a model request. - **Preview, not editing.** The viewers provide no file editing or shared search interface; a directory address fails with `not-regular-file`. Unknown extensions use the plain-text reader and remain subject to its UTF-8/NUL checks. - **Office conversion limits.** The preview does not launch native Office editors or download an engine. Binary `.doc` and `.ppt` files return no missing-font diagnostics. Conversion fidelity and resource limits belong to the [LibreOffice provider](../../document/office-to-pdf/README.md). - **Sequential text and bounded complete files.** Deep source lines require the preceding pages; PDF, HTML, and images require a complete result within the Host's `maxFileBytes` cap. -- **PDF zoom does not increase raster resolution.** PDF pages render at 96 DPI times the device pixel ratio, subject to the existing 16-million-pixel canvas limit, and fixed zoom enlarges that bitmap. High percentages can therefore soften page text; viewport-near rerendering at the settled zoom remains deferred. +- **PDF raster allocation is bounded.** Each page bitmap is capped at 16,777,216 pixels; very large pages or high zoom on high-density displays can still render below device resolution. - **Byte-view scroll state is not restored.** PDF, HTML, and images can return to the top when their renderer remounts or reloads; fixed PDF and image zoom can overflow horizontally, and HTML iframe scrolling belongs to its opaque browsing context. - **Finite local HTML dependencies.** Only direct classic `.js` and stylesheet `.css` references are packed. Browser-resolved resources retain browser origin and network restrictions; no runtime file-read bridge is exposed to the iframe. - **Scroll writes are unthrottled.** Every scroll event records its offset in the store; the line blocks are memoized so the resulting re-render hands React the same elements back. diff --git a/packages/client/ui-sidebar-documentpreview/README.zh.md b/packages/client/ui-sidebar-documentpreview/README.zh.md index 7ba9b4397f..d90d4932f2 100644 --- a/packages/client/ui-sidebar-documentpreview/README.zh.md +++ b/packages/client/ui-sidebar-documentpreview/README.zh.md @@ -59,7 +59,7 @@ Web 和桌面端均通过开发者工具选择 HTML 预览策略。渲染器从 PNG、JPEG、GIF、WebP、BMP、ICO 和 SVG 通过 Blob URL 在 `` 静态图片上下文中渲染,带 12px 内边距和圆角。图片默认适应宽度,但不会放大小于面板的内容;100% 使用图片的固有 CSS 像素宽度。共享缩放控件可产生横向和纵向滚动,但不提供拖拽平移。缩放不会替换 `` 或 Blob URL,因此动画图片会继续播放。位图超过固有尺寸后可能变虚,SVG 则继续使用浏览器的矢量渲染路径。SVG 标记绝不进入应用 DOM 或 iframe,因此其中的脚本无法执行,也无法访问父页面。替换或卸载图片会撤销其 Blob URL。 -共享文案来自 `sidebarDocumentPreview`;各内置渲染器拥有自己的本地化标签。PDF 与转换后的 Office 预览在浅色模式下使用石墨灰底色,在深色模式下使用哑黑底色,页面带有轻微阴影并保留文档原色。PDF 与图片预览共用浮动控件,提供**适应宽度**、25%、50%、100%、150% 和 200% 选项,并在 25%–400% 固定范围内按 25% 逐级缩放。适应宽度是默认模式并跟随面板尺寸;100% 表示 PDF 的 96 DPI 页面尺寸或图片的固有 CSS 像素尺寸。在精细指针设备上,控件初始隐藏;指针进入底部 72 个 CSS 像素时向上滑入,离开 420 ms 后向下退出;控件悬停、键盘焦点、菜单展开和手势进行期间保持显示,无 hover 的设备则始终显示。Chromium 将 macOS 触控板捏合映射到与 Ctrl+滚轮相同的实时指针锚定路径;控件同步显示手势比例,静止后的值在正文重新挂载后继续保留,直至 tab 关闭。HTML 预览不显示缩放控件。 +共享文案来自 `sidebarDocumentPreview`;各内置渲染器拥有自己的本地化标签。PDF 与转换后的 Office 预览在浅色模式下使用石墨灰底色,在深色模式下使用哑黑底色,页面带有轻微阴影并保留文档原色。PDF 与图片预览共用浮动控件,提供**适应宽度**、25%、50%、100%、150% 和 200% 选项,并在 25%–400% 固定范围内按 25% 逐级缩放。适应宽度是默认模式并跟随面板尺寸;100% 表示 PDF 的 96 DPI 页面尺寸或图片的固有 CSS 像素尺寸。在精细指针设备上,控件初始隐藏;指针进入底部 72 个 CSS 像素时向上滑入,离开 420 ms 后向下退出;控件悬停、键盘焦点、菜单展开和手势进行期间保持显示,无 hover 的设备则始终显示。Chromium 将 macOS 触控板捏合映射到与 Ctrl+滚轮相同的实时指针锚定路径;控件同步显示手势比例,静止后的值在正文重新挂载后继续保留,直至 tab 关闭。HTML 预览不显示缩放控件。缩放稳定或适应宽度发生变化后,视口附近的 PDF 页面按最终缩放比例乘以设备像素比重绘。新位图完成前保留原有画面和可选文字层;屏幕外的页面在接近视口时更新。 首次读取、追加页及 HTML/PDF/图片准备共用 ongoing `StateDot` loading,其标签暴露给辅助技术,并遵循减少动态效果偏好;内容出现前的每个等待都把 loading 居中在面板中,打开文件到正文出现始终是同一位置的一个标记。下一页加载期间保留已显示的内容。PDF 正文仅在 PDF 预览挂载时加载包内 `client.pdf.js` chunk;PDF.js、Worker 源码和内嵌支持数据不会进入启动 `client.js`。PDF 页面贴边占满面板宽度,组成一个纵向连续序列并在接近视口时惰性渲染;未渲染的页以安静的 3:4 占位块保持位置。PDF.js 官方 TextLayerBuilder 在与画面重合的文字层上管理选区边界和复制文本规范化。配套样式不高亮空白换行;对齐同时考虑 PDF 页面单位、页面旋转与视口宽度变化,页面释放时取消两层渲染。纯图片 PDF 不包含可选取的文字。代码预览使用 tertiary 色的语言名称和带提示的复制图标;换行仍由文档工具栏控制。默认显示源码行号,但复制文本不包含行号;纯文本与代码使用相同字号和行高。代码直接坐在分栏自身的背景上,而不是会话卡片的填充色;复制条与占满剩余高度的内部滚动区相邻,因此横纵滚动条都从复制控件下方开始。 @@ -134,7 +134,7 @@ Office Remote 通过 Connection 的 multipart 二进制传输返回原生 `Uint8 - **预览而非编辑。** 查看器不提供文件编辑或共享搜索接口;目录地址以 `not-regular-file` 失败。未知扩展名使用纯文本读取,仍受其 UTF-8/NUL 检查限制。 - **Office 转换限制。** 预览不启动原生 Office 编辑器,也不下载引擎。二进制 `.doc` 和 `.ppt` 文件不返回缺失字体诊断。转换保真度与资源限制由 [LibreOffice 提供方](../../document/office-to-pdf/README.zh.md)负责。 - **文本顺序分页,完整文件受限。** 定位到较深处的源码行需要先加载此前各页;PDF、HTML 和图片必须取得 Host `maxFileBytes` 上限内的完整结果。 -- **PDF 缩放不会提高栅格分辨率。** PDF 页面按 96 DPI 乘以设备像素比绘制,并受现有 1600 万像素 Canvas 上限约束;固定缩放会放大这张位图,因此高比例下页面文字可能变虚。按稳定缩放比例重绘视口附近页面仍属于延期工作。 +- **PDF 栅格分配有上限。** 每页位图最多为 16,777,216 像素;超大页面或高像素密度屏幕上的高比例缩放仍可能低于设备分辨率。 - **字节视图不恢复滚动位置。** PDF、HTML 与图片的渲染器重新挂载或重新载入时可能回到顶部;固定 PDF 与图片缩放可产生横向滚动,HTML iframe 的滚动属于其不透明浏览上下文。 - **本地 HTML 依赖集合有限。** 只打包直接引用的经典 `.js` 脚本和 `.css` 样式表。浏览器解析的资源仍受浏览器源与网络规则限制;iframe 不获得运行时文件读取桥接。 - **滚动写入未节流。** 每次滚动事件都把偏移记进 store;行块已 memo 化,于是由此引发的重渲染交还给 React 的是同一批元素。 diff --git a/packages/client/ui-sidebar-documentpreview/package.json b/packages/client/ui-sidebar-documentpreview/package.json index bae13db1d5..457be7ba2f 100644 --- a/packages/client/ui-sidebar-documentpreview/package.json +++ b/packages/client/ui-sidebar-documentpreview/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-sidebar-documentpreview", "description": "Extensible Sidebar previews for Office documents, spreadsheets, Markdown, code, images, PDF, HTML, and plain text", - "version": "0.1.7-alpha.2", + "version": "0.1.7-rc.1", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-sidebar-documentpreview/src/client/pdf/document.ts b/packages/client/ui-sidebar-documentpreview/src/client/pdf/document.ts index 460bac419d..4415793c21 100644 --- a/packages/client/ui-sidebar-documentpreview/src/client/pdf/document.ts +++ b/packages/client/ui-sidebar-documentpreview/src/client/pdf/document.ts @@ -35,7 +35,7 @@ export type RenderPdfText = (page: PDFPageProxy, viewport: PageViewport) => { * @param pageNumber - 1-based selected page. * @param canvas - canvas owned by this render only. * @param signal - render lifetime. - * @param pixelRatio - display pixel ratio. + * @param pixelRatio - device pixel ratio multiplied by the settled document zoom. * @param renderText - optional selectable text layer sharing this page and viewport. * @returns the page's CSS dimensions after rendering completes. */ diff --git a/packages/client/ui-sidebar-documentpreview/src/client/pdf/pdf.tsx b/packages/client/ui-sidebar-documentpreview/src/client/pdf/pdf.tsx index fc11b38254..34c43074bb 100644 --- a/packages/client/ui-sidebar-documentpreview/src/client/pdf/pdf.tsx +++ b/packages/client/ui-sidebar-documentpreview/src/client/pdf/pdf.tsx @@ -49,6 +49,7 @@ export function PdfBody(props: PdfBodyProps): ReactNode { const [load, setLoad] = useState() const [attempt, setAttempt] = useState(0) const [pageWidth, setPageWidth] = useState() + const [renderZoom, setRenderZoom] = useState(1) const { retainTab, actions, t, ZoomViewport, zoomSurfaceClass } = props const preference = view.zoom ?? FIT_WIDTH const labels: ZoomLabels = { @@ -97,22 +98,23 @@ export function PdfBody(props: PdfBodyProps): ReactNode { {Array.from({ length: load.document.numPages }, (_, index) => ( + onWidth={index === 0 ? setPageWidth : undefined} zoom={renderZoom} zoomSurfaceClass={zoomSurfaceClass} t={t} /> ))}
return + signal={tab.signal} scrollportRef={props.scrollportRef} onPreference={setPreference} onRenderZoom={setRenderZoom}> {pages} } -function PdfPage({ document, page, requested: initiallyRequested, onVisible, signal, onWidth, zoomSurfaceClass, t }: { +function PdfPage({ document, page, requested: initiallyRequested, onVisible, signal, onWidth, zoom, zoomSurfaceClass, t }: { readonly document: PdfDocument readonly page: number readonly requested: boolean readonly onVisible: (page: number) => void readonly signal: AbortSignal readonly onWidth: ((width: number) => void) | undefined + readonly zoom: number readonly zoomSurfaceClass: string } & PropsLocale<'sidebarPdf'>): ReactNode { const host = useRef(null) @@ -120,47 +122,78 @@ function PdfPage({ document, page, requested: initiallyRequested, onVisible, sig const text = useRef(null) const [width, setWidth] = useState() const [requested, setRequested] = useState(initiallyRequested) + const [visible, setVisible] = useState(initiallyRequested) + const renderedZoom = useRef() + const pendingRender = useRef(Promise.resolve()) + const textTask = useRef>>() const [state, setState] = useState<'loading' | 'ready'>('loading') const [failure, setFailure] = useState<{ readonly error: unknown }>() const [attempt, setAttempt] = useState(0) useEffect(() => { - const node = host.current as HTMLDivElement + // A zoomed canvas can remain visible after its narrower page wrapper has + // scrolled out horizontally. Observe the displayed page once it is ready. + const node = state === 'ready' ? canvas.current as HTMLCanvasElement : host.current as HTMLDivElement if (typeof IntersectionObserver === 'undefined') { setRequested(true) + setVisible(true) return } let disposed = false const observer = new IntersectionObserver((entries) => { - if (disposed || !entries.some(entry => entry.isIntersecting)) return + if (disposed) return + const intersects = entries.some(entry => entry.isIntersecting) + setVisible(intersects) + if (!intersects) return setRequested(true) onVisible(page) - observer.disconnect() }, { rootMargin: '100% 0px' }) observer.observe(node) return () => { disposed = true observer.disconnect() } - }, [page, onVisible]) + }, [page, onVisible, state]) + useEffect(() => () => { textTask.current?.cancel() }, []) useEffect(() => { if (!requested) return - // The canvas is unconditional; this effect runs after its ref is committed. + setFailure(undefined) + if (renderedZoom.current !== undefined && (!visible || renderedZoom.current === zoom)) return const node = canvas.current as HTMLCanvasElement const lifetime = new AbortController() const renderSignal = AbortSignal.any([lifetime.signal, signal]) - setState('loading') - setFailure(undefined) - const createText = pdfTextRenderer(text.current as HTMLDivElement) - let textTask: ReturnType | undefined - void renderPdfPage(document, page, node, renderSignal, window.devicePixelRatio, (pdfPage, viewport) => { - textTask = createText(pdfPage, viewport) - return textTask - }).then( - (size) => { if (!renderSignal.aborted) { setWidth(size.width); onWidth?.(size.width); setState('ready') } }, - (error: unknown) => { if (!renderSignal.aborted) setFailure({ error }) }, - ) - return () => { lifetime.abort(); textTask?.cancel() } - }, [document, page, requested, signal, attempt, onWidth]) + let newText: typeof textTask.current + // PDF.js shares a page proxy across renders; its cancelled task must finish + // cleanup before another render starts. The displayed bitmap stays intact. + pendingRender.current = pendingRender.current.then(async () => { + renderSignal.throwIfAborted() + const buffer = node.ownerDocument.createElement('canvas') + try { + const size = await renderPdfPage(document, page, buffer, renderSignal, window.devicePixelRatio * zoom, + textTask.current === undefined ? (pdfPage, viewport) => { + newText = pdfTextRenderer(text.current as HTMLDivElement)(pdfPage, viewport) + return newText + } : undefined) + renderSignal.throwIfAborted() + const context = node.getContext('2d') + if (context === null) throw new Error('PDF canvas has no 2D context') + node.width = buffer.width + node.height = buffer.height + node.style.setProperty('--pdf-page-width', `${size.width}px`) + node.style.setProperty('--pdf-page-height', `${size.height}px`) + context.drawImage(buffer, 0, 0) + textTask.current ??= newText + newText = undefined + renderedZoom.current = zoom + setWidth(size.width) + onWidth?.(size.width) + setState('ready') + } finally { + buffer.width = buffer.height = 0 + newText?.cancel() + } + }).catch((error: unknown) => { if (!renderSignal.aborted) setFailure({ error }) }) + return () => { lifetime.abort(); newText?.cancel() } + }, [document, page, requested, visible, zoom, signal, attempt, onWidth]) return
{failure === undefined && state !== 'ready' && (requested ?
@@ -171,7 +204,7 @@ function PdfPage({ document, page, requested: initiallyRequested, onVisible, sig
}