Hi guys, I spent the last two days working over the Ajax codebase, however, I used AI tooling starting from the typescript 5 to 6 transition and ending up with about 100 testcases added and fixed one smaller bug after ai analysis in the XHR Response processing and several severe lifecycle bugs in the Websocket area!
According to the ASL, AI tooling is allowed as long as there are disclosure markers and a disclosure file and as long as the changes stem from human prompts (Then it is seen as software tooling https://www.apache.org/legal/generative-tooling.html) I additionally despite having the code reviewed manually also ran two different AIs for GPL.. etc... breaches, but they came to the same conclusion, as I did this is original code based on what I already did before and based on my prompts. So from an ASF legal perspective this code would be clean. The added disclosure file would be (note substantial changes mostly are code cleanup after having the test coverage in place) and newly generated files have an ai marker # AI Contributions Disclosure In accordance with the [Apache Software Foundation policy on generative AI tooling](https://www.apache.org/legal/generative-tooling.html), this file discloses that portions of this project were created or substantially modified with assistance from generative AI tools. ## Tool used **Claude** (Anthropic) — conversational AI coding assistant ## Scope All new source files and substantial modifications introduced from the TypeScript 6 migration onwards (starting with commit `d609321`) were produced with AI assistance. This covers both production source code and test code. ### Newly created files (AI-generated) - `src/main/typescript/@types/definitions/modules.d.ts` - `src/main/typescript/test/api/JsfPushShimTest.spec.ts` - `src/main/typescript/test/api/PushTypeCompatibility.ts` - `src/main/typescript/test/impl/AssertionsTest.spec.ts` - `src/main/typescript/test/impl/FileUtilsTest.spec.ts` - `src/main/typescript/test/impl/ResponseDataResolverTest.spec.ts` - `src/main/typescript/test/impl/util/ExtLangTest.spec.ts` - `src/main/typescript/test/impl/util/HiddenInputBuilderTest.spec.ts` - `src/main/typescript/test/xhrCore/WebsocketTest.spec.ts` ### Substantially modified files (AI-assisted) - `src/main/typescript/api/_api.ts` - `src/main/typescript/api/faces.ts` - `src/main/typescript/api/jsf.ts` - `src/main/typescript/impl/AjaxImpl.ts` - `src/main/typescript/impl/PushImpl.ts` - `src/main/typescript/impl/util/Assertions.ts` - `src/main/typescript/impl/util/AsyncRunnable.ts` - `src/main/typescript/impl/util/ExtDomQuery.ts` - `src/main/typescript/impl/util/FileUtils.ts` - `src/main/typescript/impl/util/HiddenInputBuilder.ts` - `src/main/typescript/impl/util/Lang.ts` - `src/main/typescript/impl/util/XhrQueueController.ts` - `src/main/typescript/impl/xhrCore/ErrorData.ts` - `src/main/typescript/impl/xhrCore/EventData.ts` - `src/main/typescript/impl/xhrCore/IResponseProcessor.ts` - `src/main/typescript/impl/xhrCore/RequestDataResolver.ts` - `src/main/typescript/impl/xhrCore/Response.ts` - `src/main/typescript/impl/xhrCore/ResponseDataResolver.ts` - `src/main/typescript/impl/xhrCore/ResponseProcessor.ts` - `src/main/typescript/impl/xhrCore/XhrFormData.ts` - `src/main/typescript/impl/xhrCore/XhrRequest.ts` - `src/main/typescript/myfaces/OamSubmit.ts` - `src/main/typescript/test/frameworkBase/_ext/monadish/DomQueryTest.spec.ts` - `src/main/typescript/test/frameworkBase/_ext/shared/StandardInits.ts` - `src/main/typescript/test/impl/util/ExtDomQueryTest.spec.ts` - `src/main/typescript/test/myfaces/OamSubmit.spec.ts` - `src/main/typescript/test/queue/AsynchronousQueueTest.spec.ts` - `src/main/typescript/test/xhrCore/ErrorChainTest.spec.ts` - `src/main/typescript/test/xhrCore/FakeWebsocket.ts` - `src/main/typescript/test/xhrCore/RequestTest.spec.ts` - `src/main/typescript/test/xhrCore/ResponseTest.spec.ts` - `src/main/typescript/test/xhrCore/TobagoFileUploadTest.spec.ts` - `src/main/typescript/test/xhrCore/XhrFormDataTest.spec.ts` - `src/main/typescript/@types/definitions/index.d.ts` ## Nature of AI assistanc The AI assistant was used interactively: the human author directed the work, reviewed all output, made corrections, and approved each change before it was applied. The AI did not commit code autonomously. All contributions remain under the Apache License 2.0. The problem is now jus,t how is the projects point of view regarding such a commit, given we have companies using it, is such a commit allowed or not! If not then I will start from fresh manually with the transition to ts6, I know where the pitfalls are and also I now know the bugs, but this will take some time. Werner
