Skip to content

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 29 Sep 20:24
· 576 commits to main since this release
c07ccd6
  • Add a verification-only system-test reactor module for automated VC-ST1-001 black-box process testing: launch the packaged app JAR, verify HTTP version/status and WebSocket snapshot/reconnect behaviour, shut down via the remote terminal, and keep the verifier free of framework/app Java dependencies.

  • Move the default IF-11 YAML loader and embedded build-identity interpretation into event-timing-framework; the executable now owns only its filtered provenance resource, provider selection, launcher and packaging while SnakeYAML becomes a framework implementation dependency.

  • Move reusable infra.logging runtime infrastructure and component-owned logging configuration into event-timing-framework; keep only SLF4J provider selection in the executable app, and replace the bootstrap-owned live config with LoggingServerConfig plus an independent LoggingLevel type.

  • Simplify the primary Remote API class names inside presentation.interfaces.remoteapi to HttpEndpoint, WebSocketEndpoint and MessageWriter; package structure and IF-03 behaviour are unchanged.

  • Add Step-3 A08 runtime logging on the existing SLF4J/JUL boundary: executable-owned infra.logging.Logging and separate LoggingServer, configurable semantic startup level, timestamp-named rotating retained text files with non-overwriting collision handling for unsynchronised Pi clocks plus the same compact console/live representation, an optional client-initiated best-effort live diagnostics socket, temporary runtime-global level control, and a JavaFX Logs tab without mixing diagnostic records into IF-03 status/events.

  • Organise source packages and artifact ownership around the architecture: keep primary IF-03 classes at presentation.interfaces.remoteapi, move TimingApplication runtime plus infra.bootstrap.ApplicationBootstrap and the effective configuration model into the reusable framework, and reduce event-timing-app to TimingApplicationMain plus concrete YAML/build-resource loaders.

  • Add the Step-3 A07 IF-03 WebSocket event stream on a separate loopback-configured Java-WebSocket 1.6.0 listener with bounded inbound frames, snapshot-on-connect/reconnect, real-change-only STATUS_CHANGED broadcasting, and a Java 17 Events inspector in the standalone JavaFX test client.

  • Start Step-3 A06 with loopback-configured IF-03 HTTP/JSON /api/v1/version and /api/v1/status resources, real HTTP adapter tests, TimingNode-focused shared status without a redundant application lifecycle block, and a standalone Java 17/JavaFX test client with versioned window title, Help/About build identity, manual version/status inspection and a built-in black remote-shell terminal.

  • Start Step-3 A05 with an optional loopback-capable line-oriented TCP remote terminal, explicit presentation.remoteShell bind/port configuration, and shared command-session behaviour with the local console; no SSH/Telnet protocol or second command model is introduced.

  • Replace wall-clock buildTime provenance with deterministic embedded sourceRef, buildOrigin and dirty fields alongside version/revision, so one JAR identifies its source/build context without CI run/user/timestamp sidecars.

  • Add the Step-3 A04 local console/debug shell with help, version, status, quit and exit; expose the first real shared ApplicationStatus query through CommandHandler and document a clean-checkout Windows acceptance session.

  • Add the Step-3 A03 process lifetime: a configured application remains running until shutdown, waits without polling, and uses a JVM shutdown hook so Ctrl+C / normal OS shutdown closes the existing application lifecycle cleanly.

  • Start SIP Step-3 A02 with one external YAML configuration file: load and validate a single TimingNodeId, introduce the minimal reusable TimingNodeId / TimingNode domain objects, and compose that configured TimingNode without prebuilding presentation, overlay or I/O configuration models.

  • Align implementation terminology with the accepted architecture: future logical timing aggregates are TimingNode objects identified by TimingNodeId; update README scope/examples without introducing compatibility types before the first real Step-3 configuration slice.

  • Resume the active Step-3 0.2.x development line as 0.2.2-SNAPSHOT after the published v0.2.1 release, preventing ordinary main pushes from being misclassified as attempts to recreate v0.2.1.

  • Inline embedded build-metadata reading into TimingApplication, make the executable composition directly own its BuildIdentity, and remove the standalone BuildIdentityLoader class; deployment configuration remains a separate Step-3 concern.

  • Simplify the first-executable implementation around real behaviour: keep the minimal shared CommandHandler.version() boundary and compact TimingApplication.Builder, remove bootstrap-only *Layer markers and premature status-model objects, and move BuildIdentity to infra because build provenance is infrastructure rather than application/domain state.

  • Route repository agent guidance through brainboxemb.meta/AGENTS.md, make dependency-owner AGENTS explicitly non-inherited, and keep implementation-specific architecture/boundary guidance local.