Cross-spec interop validation between ietf-act and ietf-ect: - new packages/interop/ sibling package (ietf-act-ect-interop) - 32 tests pass: shared claims, algorithm matrix, DAG structure, divergence handling, anti-goals - documents ES256 raw signature wire-compatibility - documents airtight typ separation (act+jwt vs exec+jwt) Hazards surfaced: - ACTLedger.append() silently accepts ECT Payload via duck-typing (both have .jti) — documented in interop README as a production hazard requiring external isinstance checks Session handoff: - SESSION-2026-04-12.md — snapshot of decisions, artifacts, open actions, and next-session starting points Also: session-end commit of hash-format fix propagation to packages/ect/ (the fix was applied to the old refimpl location but did not propagate through the parallel package-move agent).
8.5 KiB
Session Handoff — 2026-04-12 (ACT / ECT IETF Strategy)
Purpose: Cold-start snapshot for the next session. Read this plus
workspace/STRATEGY.md to pick up without re-discovery.
1. Session Date & Context
- Date: 2026-04-12
- Trigger: Between 2026-04-07 and 2026-04-11, 14+ competing IETF individual drafts and 7+ high-relevance arXiv papers appeared in the agent-authorization / execution-accountability space. The window to plant ACT + ECT as the standards-track home for this family is now narrow. IETF 123 (July 2026) is the landing target.
- Work mode: Strategic consolidation — renames, restructure, diff documents, outreach drafts, interop plan. No new normative content added beyond what the existing drafts already carried.
2. Key Decisions Made This Session
-
par→predclaim rename (ACT). Aligns the ACT predecessor claim with ECT's identicalpredclaim so both specs use the same wire token for DAG parent references. Applied across draft text, refimpl, tests. -
"Agent Compact Token" → "Agent Context Token" rename (ACT). Preserves the "ACT" acronym. "Context" better describes what the token carries (invocation context — DAG refs, task metadata, capabilities, delegation chain, oversight) and creates a clean semantic pair with ECT (Execution Context Token).
-
Package split into sibling packages
ietf-act+ietf-ect(no shared core). Moved from monorepo with shared module toworkspace/packages/act/andworkspace/packages/ect/as independent packages. Decision: do not build a shared-core library — the two specs have intentionally different scope, and forcing shared abstractions obscures that. Cross-spec guarantees are documented and tested via a separatepackages/interop/plan. -
Position Option B chosen: ECT is a WIMSE profile that normatively references ACT. ACT is the general-purpose primitive, ECT is the WIMSE-identity-bound execution profile. This lets ECT be submitted for WIMSE WG adoption while ACT stays on the independent-submission path (no WG dependency), and they cite each other cleanly.
-
inp_hash/out_hashformat divergence acknowledged, not unified this session. ACT emits plain base64url; ECT validator requiressha-256:<b64url>prefix. Documented as expected-xfail in the interop test plan rather than forced into alignment — spec-level decision deferred.
3. Artifacts Produced / Updated This Session
Path (relative to workspace/) |
Purpose |
|---|---|
STRATEGY.md |
Master strategy doc — landscape, positioning, phased action plan, risk register, success criteria |
packages/act/draft-nennemann-act-01.md |
ACT -01 draft; new §1.4.1 Related Work (concurrent proposals), new §1.5 Applicability (MCP/OpenAI/LangGraph/A2A/CrewAI/ECT), new §7.3 DAG vs Linear Delegation Chains |
packages/act/ (ietf-act refimpl) |
103 tests passing after pred and Context rename |
packages/ect/ (ietf-ect refimpl) |
56 tests passing; inp_hash bug fixed (removed stale sha-256: transformation in emitter path) |
packages/INTEROP-TEST-PLAN.md |
Planned packages/interop/tests/test_interop.py structure — shared-claim consistency, algorithm matrix, DAG cross-reference, claim divergence, anti-goals; user-facing compatibility matrix |
drafts/ietf-wimse-ect/draft-nennemann-wimse-ect.md |
ECT -02 (docname draft-nennemann-wimse-ect-02); normative ref to I-D.nennemann-act added |
drafts/ietf-wimse-ect/DIFF-vs-txn-tokens-for-agents.md |
~1235-word factual diff doc vs draft-oauth-transaction-tokens-for-agents-06 — claim-level matrix, lifecycle comparison, composition scenarios |
drafts/ietf-wimse-ect/wimse-intro-email.md |
~390-word introduction email for wimse@ietf.org |
drafts/ietf-wimse-ect/ietf123-slides-outline.md |
10-minute WIMSE slot outline: 10 slides, pacing plan, Mermaid diagrams for WIT/WPT/ECT layering and DAG-vs-linear, speaker notes, timing-discipline cuts |
drafts/outreach/emirdag-liaison-email.md |
Liaison email to Dr. Emirdag on SCITT-AI-agent-execution overlap; proposes cross-citation, claim alignment, possible joint IETF 123 slot |
drafts/outreach/oauth-ml-response.md |
Short oauth@ietf.org response to Txn-Tokens-for-Agents-06; frames ACT pred DAG as generalization of Raut et al.'s linear actchain |
4. Open Action Items (what the user does next)
Phase A items from STRATEGY.md still require execution:
- A1: Update ECT HTTP header section — replace
Wimse-Audienceheader withwimse-audsignature metadata parameter perdraft-ietf-wimse-http-signature-03(breaking change upstream, published 2026-04-07). - A2: Update SCITT refs in ACT to
draft-ietf-scitt-architecture-22(AUTH48); note "to be RFC-XXXX upon publication". - A3: Lock Txn-Tokens refs in ACT/ECT to
draft-ietf-oauth-transaction-tokens-08. - A7: Commit workspace +
research.ietfsubrepo changes.
Phase B outreach items (drafted but not sent):
- B1: Send Emirdag liaison email (
drafts/outreach/emirdag-liaison-email.md). - B2: Submit ACT -01 to datatracker.
- B3: Submit ECT -02 to datatracker.
- B4: Post ECT intro email to wimse@ietf.org, link DIFF doc.
- B5: Post OAuth ML response to oauth@ietf.org.
- B6: Request 10-min WIMSE slot at IETF 123.
- B7: Watch DAWN WG charter formation.
5. Pending Decisions (need user input)
- Emirdag engagement depth: liaison citation only, co-authorship offer on a joint anchoring section, or just passive cross-citation? The drafted email leaves all three doors open — pick one before sending.
- Refimpl publication to PyPI: package names
ietf-actandietf-ectare reserved but not published. User approval required before anytwine upload. - Repo strategy: single monorepo for both drafts, or split into separate Git repos so each draft has its own "home" for kramdown-rfc / datatracker watchers? Current state is monorepo.
- IETF 123 travel: in person (Madrid) or remote? Affects slide-prep cadence and whether to plan side meetings with Emirdag / Bertocci.
- Hash encoding alignment (ACT plain b64url vs ECT
sha-256:prefix): decide which spec moves, or keep divergence documented. Interop plan currently pins it as xfail.
6. Known Landscape Threats (top 3)
draft-oauth-transaction-tokens-for-agents-06(Raut / Amazon, 2026-04-11). Linearactchainat OAuth AS layer — directly in the same conceptual neighborhood as ACT. If this gets OAuth WG adoption before ACT is visible, ACT has to position as "DAG generalization / no-AS variant" instead of the default.draft-emirdag-scitt-ai-agent-execution-00(VERIDIC, 2026-04-07). AIR (AgentInteractionRecord) as SCITT payload. Not a direct competitor but overlapping on input/output hashing, reasoning capture, causality. Risk: if adopted first, ACT looks redundant unless positioned as the lifecycle that AIR anchors.- arXiv 2603.24775 (AIP / IBCTs). Closest technical competitor — JWT + Biscuit/Datalog, exposes auth gap on ~2000 MCP servers, same peer-to-peer-without-AS story. Not an IETF draft so no WG adoption risk, but could become the citation of record in academic / industry press if ACT is not visible fast.
(Full landscape table: STRATEGY.md §3.)
7. Next Session Starting Points (first 3 things)
- Read
docs/control-center.md(workspace root) andworkspace/STRATEGY.md; confirm Phase A is still the active phase. - Execute A1 — patch ECT's HTTP header section to the
wimse-audsignature parameter form. This is the most urgent technical fix; it's a breaking upstream change fromdraft-ietf-wimse-http-signature-03and blocks ECT -02 submission. - Execute A2 + A3 — refresh SCITT and Txn-Tokens reference versions in both drafts so the submission snapshot is current. After A1–A3, move to Phase B (submissions + outreach sends).
8. Reference State Snapshot
- ACT refimpl:
packages/act/— 103 tests pass,pred+ Context rename done, EdDSA + ES256 both supported. - ECT refimpl:
packages/ect/— 56 tests pass,inp_hashfix applied, ES256 only,exec+jwttyp (legacywimse-exec+jwtstill accepted). - Interop package: not yet created; plan is in
packages/INTEROP-TEST-PLAN.md. - Draft versions: ACT at
-01, ECT at-02(docname: draft-nennemann-wimse-ect-02). - No submissions on datatracker yet this session (pending Phase A completion).