Inaugural public release — the kendo report-submission client library.
Added
- Repository scaffold: PHP 8.4/8.5 CI matrix (audit → format → phpstan → test), Pint config, PHPStan level-max self-analysis, Pest/Testbench harness, tag-push release workflow.
- Auto-discovered
KendoReportToolServiceProvidermerging and publishingconfig/report-tool.php(kendo_url,project,token,connect_timeout,timeout,swallow; env defaultsREPORT_TOOL_*). KendoReports::submit(string $title, string $description, ?string $authorName = null, array $files = []): ?array— the public client surface. Synchronous multipart POST to{kendo_url}/api/projects/{project}/reportswith the Bearerreport:createtoken; returns the decoded201report body.- Multipart image upload:
files[]acceptsIlluminate\Http\UploadedFileinstances or local file paths, sent as form parts alongside the scalartitle/description/author_namefields (a null author is omitted). - Bearer auth with bounded
connect_timeout/timeout(a non-positive value floors to the default so a hung host never blocks the caller). - Surfaced-failure-by-default: a non-
201status or transport failure throwsReportSubmissionException(carrying the HTTP status, or0for a transport failure), unlessreport-tool.swallow(REPORT_TOOL_SWALLOW=true) is set — then the failure logs to the local PHPerror_logandnullis returned. No PII scrubbing (report content is intentional user input, sent verbatim).