Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
1685bcd
facade-documenter: preserve precise generated types
binaryfire Aug 5, 2026
c0949d4
cache: align repository contracts and facade metadata
binaryfire Aug 5, 2026
8773f40
filesystem: expose the complete filesystem surface
binaryfire Aug 5, 2026
4f8be6f
bus: standardize batch identifiers as strings
binaryfire Aug 5, 2026
b0f3600
support: regenerate facade docblocks
binaryfire Aug 5, 2026
6c6a0f2
support: detect stale facade docblocks
binaryfire Aug 5, 2026
4766572
docs: document facade docblock generation
binaryfire Aug 5, 2026
1973b37
coordinator: remove timer test races
binaryfire Aug 5, 2026
422aeea
Clarify repository verification checkpoints
binaryfire Aug 6, 2026
313805f
docs: plan facade documenter correctness work
binaryfire Aug 6, 2026
2df724a
tests: clean up facade documenter fixtures
binaryfire Aug 6, 2026
3c1bb9c
tests: complete facade documenter method signatures
binaryfire Aug 6, 2026
1379d4d
facade-documenter: generate complete and accurate facade metadata
binaryfire Aug 6, 2026
b0893ce
inertia: refresh generated facade metadata
binaryfire Aug 6, 2026
e3e4ebb
sentry: refresh generated facade metadata
binaryfire Aug 6, 2026
0fe85f4
socialite: refresh generated facade metadata
binaryfire Aug 6, 2026
2391e26
facade-documenter: validate every first-party facade
binaryfire Aug 6, 2026
27eea2c
composer: align component package metadata
binaryfire Aug 6, 2026
3e9ca24
composer: enforce split package metadata consistency
binaryfire Aug 6, 2026
48aa9f1
Merge remote-tracking branch 'origin/0.4' into facade-documenter-audit
binaryfire Aug 6, 2026
1c97921
facade-documenter: correct conditional and Redis metadata
binaryfire Aug 6, 2026
585e7c6
facade-documenter: type rendered string helpers
binaryfire Aug 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 15 additions & 14 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,24 +91,25 @@ Anything found follows When to Stop and Report — "the task didn't ask me to fi
5. Fix the underlying defect — never add a workaround for incorrect framework code.
6. Add a regression test for the bug and run that test file immediately.
7. Check types, API parity, coroutine isolation, and worker-lifetime state around the changed code.
8. Complete the verification order below.
8. Complete the verification workflow below.

### Framework enhancements

1. Read the related Hypervel APIs and tests. Check Laravel or the package upstream for an established public API and behavior.
2. Decide which state is local, coroutine-scoped, or worker-scoped before writing code — see Coroutine and Worker-Lifetime State.
3. Preserve Laravel API parity by default. If parity conflicts with Hypervel's architecture, preserves a verified defect or deprecated upstream API, or would require worse code or a workaround, STOP, recommend the cleanest design, and obtain user approval before planning or editing. Never make Hypervel code worse merely to preserve parity.
4. Test the public behavior, failure paths, coroutine isolation, and cleanup the feature needs.
5. Complete the verification order below.
5. Complete the verification workflow below.

### Verification order
### Verification

1. Run each changed or new test file immediately after working on it — never defer.
2. Run the package or focused tests the change affects.
3. Run phpstan on source changes (see Static Analysis).
4. Run php-cs-fixer.
5. Run `composer test:parallel` for the full suite.
6. Run `composer test:testbench` after Testbench changes.
During implementation, run new or changed test files immediately. After completing a coherent implementation slice, run the affected package or focused test suite.

At a meaningful checkpoint—such as before code review or after completing a substantial slice—run `composer fix` once. It runs the full formatter, PHPStan, parallel test suite, and Testbench tests, so do not run those full checks separately at the same checkpoint.

After review fixes, run the relevant targeted tests. Repeat `composer fix` only when the changes warrant another full-repository check.

If `composer fix` fails, use targeted checks while correcting the issue. Afterwards, inspect the `fix` script in `composer.json` and run the failed check plus each remaining entry. Rerun an earlier check only if the correction could affect it.

## Development Conventions

Expand Down Expand Up @@ -692,7 +693,7 @@ See the existing entries for database, Redis, Meilisearch, and Typesense as exam

The `tests/` directory is excluded from phpstan. Do not run phpstan on tests.

Run `./vendor/bin/phpstan` and `./vendor/bin/php-cs-fixer fix` without flags — the repository config files control levels and rules.
Full PHPStan runs through `composer fix` at checkpoints. During implementation, use targeted PHPStan only when investigating or validating a specific type issue.

**When fixing phpstan errors:**

Expand Down Expand Up @@ -762,9 +763,9 @@ Search **both `src/` and `tests/`** for any `use` statements or references to th

After porting is complete, run phpstan on the newly ported package and fix errors. Investigate each error properly — don't reach for ignores without thinking it through. See the Static Analysis section.

#### 5. Run the full test suite
#### 5. Complete verification

Run `composer test:parallel` (and `composer test:testbench` after Testbench changes), completing the verification order under Change Workflow. For failures, follow When to Stop and Report: straightforward fixes (e.g. a missed namespace update) go ahead; anything more complex gets stopped and explained.
Complete the verification workflow under Change Workflow. For failures, follow When to Stop and Report: straightforward fixes (e.g. a missed namespace update) go ahead; anything more complex gets stopped and explained.

### Provider and listener reminder

Expand Down Expand Up @@ -832,9 +833,9 @@ Use this exact cadence for each test class:
4. If any failure exposes a source code bug, missing functionality, or unclear behavioral difference, STOP and report the root cause with your recommended fix.
5. Once the test class is green, move to the next test class. Work serially on one test class at a time.

#### 6. Run the full test suite
#### 6. Complete verification

After all test files are ported, run the full test suite with `composer test:parallel`. Same rules as the source workflow — straightforward fixes go ahead, anything complex gets stopped and explained.
After all test files are ported, complete the verification workflow under Change Workflow. Same rules as the source workflow — straightforward fixes go ahead, anything complex gets stopped and explained.

## Porting Laravel Tests

Expand Down
8 changes: 6 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
"Hypervel\\ApiClient\\": "src/api-client/src/",
"Hypervel\\Contracts\\": "src/contracts/src/",
"Hypervel\\Auth\\": "src/auth/src/",
"Hypervel\\Boost\\": "src/boost/src/",
"Hypervel\\Broadcasting\\": "src/broadcasting/src/",
"Hypervel\\Bus\\": "src/bus/src/",
"Hypervel\\Cache\\": "src/cache/src/",
Expand Down Expand Up @@ -134,6 +133,7 @@
],
"require": {
"php": ">=8.4",
"ext-ctype": "*",
"ext-dom": "*",
"ext-fileinfo": "*",
"ext-filter": "*",
Expand All @@ -147,6 +147,7 @@
"ext-posix": "*",
"ext-redis": "^6.1",
"ext-session": "*",
"ext-sockets": "*",
"ext-swoole": "^6.2",
"ext-tokenizer": "*",
"ext-zlib": "*",
Expand Down Expand Up @@ -178,9 +179,11 @@
"nunomaduro/termwind": "^2.0",
"nyholm/psr7": "^1.0",
"paragonie/constant_time_encoding": "^3.1",
"phpoption/phpoption": "^1.9",
"phpseclib/phpseclib": "^3.0",
"psr/clock": "^1.0",
"psr/container": "^2.0.1",
"psr/http-client": "^1.0",
"psr/http-message": "^2.0",
"psr/log": "^3.0",
"psr/simple-cache": "^3.0",
Expand All @@ -189,12 +192,13 @@
"spomky-labs/otphp": "^11.0",
"symfony/console": "^8.1",
"symfony/error-handler": "^8.1",
"symfony/event-dispatcher": "^8.1",
"symfony/finder": "^8.1",
"symfony/http-foundation": "^8.1",
"symfony/http-kernel": "^8.1",
"symfony/mailer": "^8.1",
"symfony/mime": "^8.1",
"symfony/polyfill-php85": "^1.33",
"symfony/polyfill-php85": "^1.36",
"symfony/polyfill-php86": "^1.36",
"symfony/process": "^8.1",
"symfony/property-access": "^8.1",
Expand Down
Loading