Skip to content

gui - #3

Merged
ahmelkholy merged 2 commits into
AIMORA-dev:devfrom
ahmelkholy:main
Sep 1, 2026
Merged

gui#3
ahmelkholy merged 2 commits into
AIMORA-dev:devfrom
ahmelkholy:main

Conversation

@ahmelkholy

Copy link
Copy Markdown
Member

No description provided.

Copilot AI lite review requested due to automatic review settings September 1, 2026 16:48
@ahmelkholy
ahmelkholy merged commit 0f0a24f into AIMORA-dev:dev Sep 1, 2026
9 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces the initial GUI040 implementation of AIMORAService: an authenticated local IPC service (framed control/binary protocol), bounded artifact window reads, and supervised out-of-process worker lifecycle, alongside deterministic schema-based C++ binding generation and expanded tests/documentation.

Changes:

  • Add core Julia service implementation (types, framing, security/path confinement, server dispatch, worker supervision, CLI).
  • Add protocol schema + deterministic C++ binding generator and committed generated C++ outputs.
  • Add GUI040-focused test suite (framing/auth/path confinement/integration + worker supervision) and expand package docs/contributing guidance.

Reviewed changes

Copilot reviewed 18 out of 22 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
AIMORASymbols/README.md Updates symbols ownership/scope statement and licensing/provenance wording.
AIMORAService/src/AIMORAService.jl Wires up the new service modules and exports the public surface.
AIMORAService/src/types.jl Defines protocol constants, limits, and core public types/errors.
AIMORAService/src/framing.jl Implements AMR1 frame encoding/decoding and control/binary payload handling.
AIMORAService/src/security.jl Adds constant-time compare, path confinement, hashing, bounded file/window reads.
AIMORAService/src/workers.jl Adds supervised worker launch/authentication, bounded shutdown, recovery logic.
AIMORAService/src/server.jl Implements request validation, dispatch, resource tracking, and IPC serve loop.
AIMORAService/src/cli.jl Adds CLI parsing, token-file authentication, and service startup.
AIMORAService/src/generator.jl Implements schema parsing and deterministic C++ bindings generation.
AIMORAService/schema/service_protocol.json Adds the canonical JSON protocol schema for GUI040.
AIMORAService/tools/generate_cpp_bindings.jl Adds a CLI tool wrapper to generate C++ bindings from the schema.
AIMORAService/generated/cpp/include/.../service_protocol.hpp Adds committed generated C++ header bindings.
AIMORAService/generated/cpp/src/service_protocol.cpp Adds committed generated C++ source bindings.
AIMORAService/bin/aimora-service.jl Adds service entrypoint script.
AIMORAService/bin/aimora-worker-probe.jl Adds authenticated worker readiness publishing probe.
AIMORAService/test/runtests.jl Switches test runner to GUI040 phases and includes new suites.
AIMORAService/test/runtests_gui040_base.jl Adds GUI040 framing/auth/path confinement/integration/generator tests.
AIMORAService/test/worker_supervision.jl Adds worker supervision + recovery/exhaustion tests.
AIMORAService/README.md Substantially expands documentation for GUI040 design, usage, and limits.
AIMORAService/CONTRIBUTING.md Adds required checks and protocol rules/testing expectations.
AIMORAService/Project.toml Adds deps/compat and retains proper test extras/targets.
.github/workflows/ci.yml Adds a job timeout to the CI workflow.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread AIMORAService/src/cli.jl
Comment on lines +54 to +61
function _read_session_token(token_file::AbstractString)
isfile(token_file) ||
throw(ServiceError("AUTHENTICATION_FAILED", "The session token file is unavailable."))
if !Sys.iswindows()
mode = stat(token_file).mode
iszero(mode & 0o077) ||
throw(ServiceError("AUTHENTICATION_FAILED", "The session token file is not private."))
end
Comment on lines +216 to +222
current_size = bounded_file_size(
record.canonical_path,
state.configuration.limits.max_artifact_bytes,
)
current_digest = sha256_file(record.canonical_path)
current_size == record.size_bytes && current_digest == record.sha256 ||
throw(ServiceError("RESOURCE_NOT_FOUND", "The artifact reference is stale."))
Comment on lines +7 to +17
const CAPABILITIES = String[
"service.handshake",
"service.capabilities",
"service.ping",
"service.shutdown",
"project.reference",
"artifact.reference",
"result.binary-window",
"request.cancel",
"worker.lifecycle",
]
Comment on lines +1 to +2
# SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
using Test
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.

2 participants