-
Notifications
You must be signed in to change notification settings - Fork 2
Output - memory efficient with repo chunks #228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@Override | ||
public void write(int b) throws IOException { | ||
buffer.write(b); | ||
if (buffer.size() >= chunkSize) { // TODO chunk on the closest NL if almost full |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Refactors monolithic api.types.ts into granular type modules, introduces chunked repository storage for execution outputs, and adds support for text outputs alongside file outputs, including a new UI for reviewing outputs. Also updates execution output handling (archiving, downloading) and adds configuration for chunk sizes to improve memory efficiency (fixes #224).
- Split large shared types file into multiple focused modules (execution, script, input, output, etc.).
- Added chunked storage (RepoChunks) and new output abstractions (FileOutput, TextOutput) with updated servlet handling.
- Replaced ExecutionDownloadOutputsButton with ExecutionReviewOutputsButton to preview and download outputs (files + text).
Reviewed Changes
Copilot reviewed 89 out of 89 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
ui.frontend/src/utils/monaco/groovy/completions/aem-code.ts | Updated imports to new type module locations. |
ui.frontend/src/types/* | New modular type definitions replacing removed api.types.ts. |
ui.frontend/src/pages/*.tsx | Updated pages to consume new type modules and new output review component. |
ui.frontend/src/components/ExecutionReviewOutputsButton.tsx | New component for previewing and downloading execution outputs. |
ui.frontend/src/components/* | Refactored imports from deprecated api.types.ts; updated button usage. |
ui.frontend/src/hooks/* | Adjusted type imports after modularization. |
ui.frontend/src/components/ExecutionDownloadOutputsButton.tsx | Removed in favor of review dialog component. |
core/src/main/java/dev/vml/es/acm/core/code/* | Added new output model (FileOutput, TextOutput, OutputType), chunked storage, execution context changes. |
core/src/main/java/dev/vml/es/acm/core/repo/RepoChunks.java | New chunked repository streaming implementation. |
core/src/main/java/dev/vml/es/acm/core/servlet/* | Adjusted servlet I/O for new output model and package restructuring. |
core/src/main/java/dev/vml/es/acm/core/gui/SpaSettings.java | Added chunk size configuration fields. |
core/src/main/java/dev/vml/es/acm/core/format/Base64Formatter.java | Stream-based Base64 encoding/decoding for memory efficiency. |
ui.content.example/.../ACME-203_outputs.groovy | Example script updated to demonstrate new text + file outputs. |
core/src/main/java/dev/vml/es/acm/core/instance/HealthChecker.java | Updated to pass new CodeOutputMemory parameter. |
core/src/main/java/dev/vml/es/acm/core/assist/Assistancer.java | Updated executor context creation with new output handling. |
core/src/main/java/dev/vml/es/acm/core/code/ExecutionOutputServlet.java | Added support for TEXT outputs and adjusted archive packaging. |
core/src/main/java/dev/vml/es/acm/core/code/ExecutionHistory.java | Persist only file-based outputs to history. |
core/src/main/java/dev/vml/es/acm/core/code/Executor.java | Context creation updated to inject appropriate CodeOutput implementation. |
core/src/main/java/dev/vml/es/acm/core/code/ExecutionQueue.java | Queue processing updated for new output strategy. |
core/src/main/java/dev/vml/es/acm/core/code/ExecutionContext.java | Refactored to distinguish code output vs structured outputs and cleanup lifecycle. |
Other core servlet/input/output classes | Package relocation to dedicated subpackages. |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
fixes #224 #230 #229