TenantAtlas/apps/platform/.pnpm-store/v10/files/de/16037b2b575a136d2c4b4a6e6191f5a9125f5276bbff8137b58242a72bd50d1d521d820e2b7901ab41aeccb57c44e248c3f257460eb33cdd49d791989ba58a
ahmido 1fec9c6f9d
Some checks failed
Main Confidence / confidence (push) Failing after 45s
feat: compress governance operator outcomes (#253)
## Summary
- introduce surface-aware compressed governance outcomes and reuse the shared truth/explanation seams for operator-first summaries
- apply the compressed outcome hierarchy across baseline, evidence, review, review-pack, canonical review/evidence, and artifact-oriented operation-run surfaces
- expand spec 214 fixtures and Pest coverage, and fix tenant-panel route assertions by generating explicit tenant-panel URLs in the affected Filament tests

## Validation
- `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`
- focused governance compression suite from `specs/214-governance-outcome-compression/quickstart.md` passed (`68` tests, `445` assertions)
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/InventoryItemResourceTest.php tests/Feature/Filament/BackupSetUiEnforcementTest.php tests/Feature/Filament/RestoreRunUiEnforcementTest.php` passed (`18` tests, `81` assertions)

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #253
2026-04-19 12:30:36 +00:00

28 lines
949 B
Plaintext

import { Observable } from '../Observable';
import { SchedulerLike } from '../types';
export function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {
return new Observable<T>((subscriber) => {
// The current array index.
let i = 0;
// Start iterating over the array like on a schedule.
return scheduler.schedule(function () {
if (i === input.length) {
// If we have hit the end of the array like in the
// previous job, we can complete.
subscriber.complete();
} else {
// Otherwise let's next the value at the current index,
// then increment our index.
subscriber.next(input[i++]);
// If the last emission didn't cause us to close the subscriber
// (via take or some side effect), reschedule the job and we'll
// make another pass.
if (!subscriber.closed) {
this.schedule();
}
}
});
});
}