Skip to content

Conversation

krystian-panek-vmltech
Copy link
Collaborator

@krystian-panek-vmltech krystian-panek-vmltech commented Oct 3, 2025

fixes #224 #230 #229

@krystian-panek-vmltech krystian-panek-vmltech changed the title Output memory efficient Output - memory efficient with repo chunks Oct 3, 2025
@Override
public void write(int b) throws IOException {
buffer.write(b);
if (buffer.size() >= chunkSize) { // TODO chunk on the closest NL if almost full
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO ...

Copy link
Contributor

@Copilot Copilot AI left a 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.

@krystian-panek-vmltech krystian-panek-vmltech merged commit a22150f into main Oct 7, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Memory-efficient outputs
1 participant