Skip to content

Step B.3 (shared half): v0.2.0 — Plugin/Events/Auth/Hub#1

Merged
detain merged 1 commit into
masterfrom
b.3-shared-v0.2
May 17, 2026
Merged

Step B.3 (shared half): v0.2.0 — Plugin/Events/Auth/Hub#1
detain merged 1 commit into
masterfrom
b.3-shared-v0.2

Conversation

@detain
Copy link
Copy Markdown
Owner

@detain detain commented May 17, 2026

Implements the shared half of Step B.3 of PHLEX_EXPANSION_PLAN.md.

Adds the framework-neutral interfaces, value objects, and protocol DTOs that
phlex-server and phlex-hub will consume:

  • Phlex\Shared\Plugin\LifecycleInterface (moved from Phlex\Plugins\Contract\LifecycleInterface in phlex-server).
  • Phlex\Shared\Plugin\{Manifest, ManifestType, ManifestValidationError, EventNameMap} (moved from Phlex\Plugins\*). Validator stays in phlex-server (Phlex\Plugins\Manifest\ManifestSchema).
  • Phlex\Shared\Events\{AbstractEvent, Playback\*, Library\*, Auth\*} — 12 readonly event DTOs (moved from Phlex\Common\Events\*). PSR-14 dispatcher wiring stays in phlex-server.
  • Phlex\Shared\Auth\JwtClaims — new value object capturing the Phlex JWT payload shape; consumed by phlex-hub starting Phase C.5.
  • Phlex\Shared\Hub\{ClaimRequest, ClaimResponse, ServerInfoDto, HeartbeatDto} — new placeholder DTOs for the hub claim/heartbeat protocol; consumed by phlex-hub starting Phase C.1.
  • Phlex\Shared\Arr\.gitkeep — namespace reserved for Phase K.1.

Manifest is non-final so phlex-server's deprecated wrapper can extend it for one release; documented in the class docblock.

Verification (all green):

  • 104 tests / 200 assertions
  • PHPStan level 9: [OK] No errors
  • Psalm: No errors found!
  • PHPCS PSR-12: clean
  • composer validate --strict: clean
  • composer audit --no-dev: no advisories

The companion phlex-server PR consumes this release via Composer once v0.2.0 is tagged.

…o v0.2.0

Implements Step B.3 of PHLEX_EXPANSION_PLAN.md (shared half). Adds the
framework-neutral interfaces, value objects, and protocol DTOs the
phlex-server and phlex-hub repositories will consume:

- Phlex\Shared\Plugin\LifecycleInterface (moved from
  Phlex\Plugins\Contract\LifecycleInterface in phlex-server)
- Phlex\Shared\Plugin\{Manifest, ManifestType, ManifestValidationError,
  EventNameMap} (moved from Phlex\Plugins\* in phlex-server). Validator
  logic stays in phlex-server (Phlex\Plugins\Manifest\ManifestSchema).
- Phlex\Shared\Events\{AbstractEvent, Playback\*, Library\*, Auth\*}
  (12 readonly event DTOs moved from Phlex\Common\Events\* in phlex-server).
  PSR-14 dispatcher wiring stays in phlex-server.
- Phlex\Shared\Auth\JwtClaims (new value object capturing the Phlex JWT
  payload shape; consumed by phlex-hub starting Phase C.5).
- Phlex\Shared\Hub\{ClaimRequest, ClaimResponse, ServerInfoDto, HeartbeatDto}
  (new placeholder DTOs for the hub claim/heartbeat protocol; consumed
  by phlex-hub starting Phase C.1).
- Phlex\Shared\Arr\.gitkeep (namespace reserved for Phase K.1).

Manifest is intentionally non-final so phlex-server's deprecated wrapper
can extend it for one release; documented in the class docblock.

Tests: 104 tests / 200 assertions green. PHPStan level 9, Psalm,
PHPCS PSR-12, composer validate --strict all clean.

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

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@detain detain merged commit 4e06d6d into master May 17, 2026
6 checks passed
@detain detain deleted the b.3-shared-v0.2 branch May 17, 2026 07:00
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