Skip to content

feat(protocol): AXP Session schemas + optional session_id linkage (D-030)#38

Merged
George-iam merged 1 commit into
mainfrom
feat/axp-session-schemas-20260519
May 19, 2026
Merged

feat(protocol): AXP Session schemas + optional session_id linkage (D-030)#38
George-iam merged 1 commit into
mainfrom
feat/axp-session-schemas-20260519

Conversation

@George-iam
Copy link
Copy Markdown
Contributor

What

Adds the Session entity to the AXP protocol (anti-messenger MVP, plan stage A1).

New protocol schemas

  • session.envelope.v1.json, session.lifecycle.v1.json, session.event.v1.json

Session is a first-class orchestrator, separate from Intent. Its lifecycle is bidirectional (OPEN/WAITING_OWNER/RESOLVED/CLOSED/PRUNED, RESOLVED→OPEN on visitor return) and deliberately does not reuse the forward-only Intent enum (D-031).

Additive, backward-compatible (v1 line unchanged)

  • optional session_id on intent.lifecycle/intent.event/intent.envelope + message.envelope.v3
  • optional parent_intent_id on intent.lifecycle
  • No required field added, no enum value changed/removed → existing valid payloads stay valid.

New public API schemas

api.sessions.{create.request,create.response,get.response,events.list.response,messages.append.request,list.response}.v1.json

Docs / tests

  • docs/schema-versioning-rules.md + docs/public-api-schema-index.md updated
  • tests/test_schema_contracts.py: new Session structural + additive-linkage contract tests

Verification

  • python scripts/validate_schemas.py → passed
  • pytest tests/test_schema_contracts.py tests/test_validate_schemas.py107 passed
  • control-plane validate_schemas.py + test_schema_contracts.py/test_public_api_schema_contracts.py run against this branch → passed

Merge order (coordinated PR train)

Merge this PR first. A companion axme-control-plane PR extends the protocol filename regex to accept session.* and adds payload contract tests; its CI stays red until this merges (it validates against axp-spec main).

… (D-030)

New protocol schemas: session.envelope/lifecycle/event v1. Session is a
first-class orchestrator separate from Intent; its lifecycle is bidirectional
(RESOLVED->OPEN), deliberately NOT the forward-only Intent enum (D-031).

Additive, backward-compatible (v1 line unchanged): optional session_id on
intent.lifecycle/event/envelope + message.envelope.v3; parent_intent_id on
intent.lifecycle. No required field added, no enum changed.

New public_api: api.sessions.{create.request,create.response,get.response,
events.list.response,messages.append.request,list.response} v1.

Contract tests + schema-versioning-rules + public-api-schema-index updated.
Coordinated with axme-control-plane PR (protocol filename regex accepts
session.*). Merge this PR first.
@George-iam George-iam merged commit 3daf853 into main May 19, 2026
1 check passed
@George-iam George-iam deleted the feat/axp-session-schemas-20260519 branch May 19, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant