Update and extend  the release notes


Let me read the current release notes and understand the project state before updating them.


ToolSearch

Question: select:Read,Glob


Question: select:Read,Glob


Question: select:Bash


Question: select:Bash


     1→# `cc-metric-store` version 0.1.1
     2→
     3→This is a bugfix release of `cc-metric-store`, the metric timeseries cache
     4→implementation of ClusterCockpit.
     5→For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/).
     6→
     7→Notable changes in version 0.1.0:
     8→
     9→- Cleanup of code and restructuring
    10→- Document REST API with Swagger
    11→- Introduce REST API versioning
    12→- Provide Swagger UI test web-frontend
    13→- Introduce re-sampling of metric data
    14→- Support also ms, ns in line protocol
    15→- Support NATS credentials
    16→
    17→## Breaking changes
    18→
    19→None
    20→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>

# `cc-metric-store` version 0.1.1

This is a bugfix release of `cc-metric-store`, the metric timeseries cache
implementation of ClusterCockpit.
For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/).

Notable changes in version 0.1.0:

- Cleanup of code and restructuring
- Document REST API with Swagger
- Introduce REST API versioning
- Provide Swagger UI test web-frontend
- Introduce re-sampling of metric data
- Support also ms, ns in line protocol
- Support NATS credentials

## Breaking changes

None


Now let me look at the git log to understand what changes have been made since the last release.


Bash

Show recent git commits


b19dcdb Upgrade dependencies
d5c9ae9 Merge branch 'main' into dev
b06bb58 Add entire integration
542f837 Update README
0fa5d8b Run go fix tool. Refactor
5547580 Update to lates cc-backend head
3cc9420 Merge branch 'dev' of github.com:ClusterCockpit/cc-metric-store into dev
b764120 Integrate entire. Upgrade dependencies
4de275a fix error conditional
ef3504d Update to the error handling
37a8706 Bump
fc4ae14 Bringing back GOGC for syncPool
be6d4be Fix healthcheck api
7d6455d Merge pull request #55 from ClusterCockpit/dependabot/go_modules/github.com/google/gops-0.3.29
fd4ec39 Bump github.com/google/gops from 0.3.28 to 0.3.29
dd23f49 Add configuration options and enable dynamic memory management through cc-backend callback
28f5ffe Adapt metricConfigSchema to match metricConfigJSON struct
fe40326 Adapt configSchema to match Config struct
b7d4f60 Simplify startup code
6aca448 Port to newest cclib. Use metricstore as library.
ede0cb1 Merge pull request #52 from ClusterCockpit/dependabot/go_modules/github.com/nats-io/nats.go-1.47.0
5be7578 Bump github.com/nats-io/nats.go from 1.36.0 to 1.47.0
d8f0441 Create dependabot.yml
a868d99 add error messages
018daa6 Merge pull request #42 from ClusterCockpit/devel
c3f6b9e Merge pull request #41 from ClusterCockpit/avro
3d768ec Deflate compression to avro writer
d00bfc6 Fix to avro reader
0fe634e Fix to bugs for data consistency
aa0a367 Fix to Avro features


git tag --sort=-version:refname | head -10

Show git tags sorted by version


v0.1.1
v0.1.0
v0.0.1


Show commits since last release tag


b19dcdb Upgrade dependencies
d5c9ae9 Merge branch 'main' into dev
b06bb58 Add entire integration
542f837 Update README
0fa5d8b Run go fix tool. Refactor
5547580 Update to lates cc-backend head
3cc9420 Merge branch 'dev' of github.com:ClusterCockpit/cc-metric-store into dev
b764120 Integrate entire. Upgrade dependencies
4de275a fix error conditional
ef3504d Update to the error handling
37a8706 Bump
fc4ae14 Bringing back GOGC for syncPool
be6d4be Fix healthcheck api
7d6455d Merge pull request #55 from ClusterCockpit/dependabot/go_modules/github.com/google/gops-0.3.29
fd4ec39 Bump github.com/google/gops from 0.3.28 to 0.3.29
dd23f49 Add configuration options and enable dynamic memory management through cc-backend callback
28f5ffe Adapt metricConfigSchema to match metricConfigJSON struct
fe40326 Adapt configSchema to match Config struct
b7d4f60 Simplify startup code
6aca448 Port to newest cclib. Use metricstore as library.
ede0cb1 Merge pull request #52 from ClusterCockpit/dependabot/go_modules/github.com/nats-io/nats.go-1.47.0
5be7578 Bump github.com/nats-io/nats.go from 1.36.0 to 1.47.0
d8f0441 Create dependabot.yml
a868d99 add error messages
018daa6 Merge pull request #42 from ClusterCockpit/devel
c3f6b9e Merge pull request #41 from ClusterCockpit/avro
3d768ec Deflate compression to avro writer
d00bfc6 Fix to avro reader
0fe634e Fix to bugs for data consistency
aa0a367 Fix to Avro features
968940d Initial avro reader complete
8098417 fix and support for avro shutdown writer
06f2f06 Fix for multi resolution avro checkpointing
5569ad5 fix to Avro writer special cases
a03eb31 AvroWriter advanced cases
28fd7ed Fix subtype -> stype in lineprotocol.go
b53832a Initial commit for staging changes
e1c5ded Merge pull request #40 from ClusterCockpit/devel
2332c13 Merge pull request #39 from ClusterCockpit/main
e2e4dcd feat: HealthCheck endpoint for nodes


Show what v0.1.1 tag points to


commit c9ec10d6b4191666f111634dd09bb551c6c77c54
Merge: c109059 55ff44e
Author: Jan Eitzinger <jan.eitzinger@fau.de>
Date:   Thu Dec 5 08:13:12 2024 +0100


git log v0.1.1..HEAD --format="%h %s" | head -40

Show detailed commits since last release


     1→# ClusterCockpit Metric Store
     2→
     3→[![Build & Test](https://github.com/ClusterCockpit/cc-metric-store/actions/workflows/test.yml/badge.svg)](https://github.com/ClusterCockpit/cc-metric-store/actions/workflows/test.yml)
     4→
     5→The cc-metric-store provides a simple in-memory time series database for storing
     6→metrics of cluster nodes at preconfigured intervals. It is meant to be used as
     7→part of the [ClusterCockpit suite](https://github.com/ClusterCockpit). As all
     8→data is kept in-memory, accessing it is very fast. It also provides topology aware
     9→aggregations over time _and_ nodes/sockets/cpus.
    10→
    11→There are major limitations: Data only gets written to disk at periodic
    12→checkpoints (or via WAL on every write), not immediately as it is received.
    13→Only the configured retention window is kept in memory.
    14→Still metric data is kept as long as running jobs is using it.
    15→
    16→The storage engine is provided by the
    17→[cc-backend](https://github.com/ClusterCockpit/cc-backend) package
    18→(`cc-backend/pkg/metricstore`). This repository provides the HTTP API wrapper.
    19→
    20→The [NATS.io](https://nats.io/) based writing endpoint and the HTTP write
    21→endpoint both consume messages in [this format of the InfluxDB line
    22→protocol](https://github.com/ClusterCockpit/cc-specifications/blob/master/metrics/lineprotocol_alternative.md).
    23→
    24→## Building
    25→
    26→`cc-metric-store` can be built using the provided `Makefile`.
    27→It supports the following targets:
    28→
    29→- `make`: Build the application, copy an example configuration file and generate
    30→  checkpoint folders if required.
    31→- `make clean`: Clean the golang build cache and application binary
    32→- `make distclean`: In addition to the clean target also remove the `./var`
    33→  folder and `config.json`
    34→- `make swagger`: Regenerate the Swagger files from the source comments.
    35→- `make test`: Run tests and basic checks (`go build`, `go vet`, `go test`).
    36→
    37→## Running
    38→
    39→```sh
    40→./cc-metric-store                              # Uses ./config.json
    41→./cc-metric-store -config /path/to/config.json
    42→./cc-metric-store -dev                         # Enable Swagger UI at /swagger/
    43→./cc-metric-store -loglevel debug              # debug|info|warn (default)|err|crit
    44→./cc-metric-store -logdate                     # Add date and time to log messages
    45→./cc-metric-store -version                     # Show version information and exit
    46→./cc-metric-store -gops                        # Enable gops agent for debugging
    47→```
    48→
    49→## REST API Endpoints
    50→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>

# ClusterCockpit Metric Store

[![Build & Test](https://github.com/ClusterCockpit/cc-metric-store/actions/workflows/test.yml/badge.svg)](https://github.com/ClusterCockpit/cc-metric-store/actions/workflows/test.yml)

The cc-metric-store provides a simple in-memory time series database for storing
metrics of cluster nodes at preconfigured intervals. It is meant to be used as
part of the [ClusterCockpit suite](https://github.com/ClusterCockpit). As all
data is kept in-memory, accessing it is very fast. It also provides topology aware
aggregations over time _and_ nodes/sockets/cpus.

There are major limitations: Data only gets written to disk at periodic
checkpoints (or via WAL on every write), not immediately as it is received.
Only the configured retention window is kept in memory.
Still metric data is kept as long as running jobs is using it.

The storage engine is provided by the
[cc-backend](https://github.com/ClusterCockpit/cc-backend) package
(`cc-backend/pkg/metricstore`). This repository provides the HTTP API wrapper.

The [NATS.io](https://nats.io/) based writing endpoint and the HTTP write
endpoint both consume messages in [this format of the InfluxDB line
protocol](https://github.com/ClusterCockpit/cc-specifications/blob/master/metrics/lineprotocol_alternative.md).

## Building

`cc-metric-store` can be built using the provided `Makefile`.
It supports the following targets:

- `make`: Build the application, copy an example configuration file and generate
  checkpoint folders if required.
- `make clean`: Clean the golang build cache and application binary
- `make distclean`: In addition to the clean target also remove the `./var`
  folder and `config.json`
- `make swagger`: Regenerate the Swagger files from the source comments.
- `make test`: Run tests and basic checks (`go build`, `go vet`, `go test`).

## Running

```sh
./cc-metric-store                              # Uses ./config.json
./cc-metric-store -config /path/to/config.json
./cc-metric-store -dev                         # Enable Swagger UI at /swagger/
./cc-metric-store -loglevel debug              # debug|info|warn (default)|err|crit
./cc-metric-store -logdate                     # Add date and time to log messages
./cc-metric-store -version                     # Show version information and exit
./cc-metric-store -gops                        # Enable gops agent for debugging
```

## REST API Endpoints


Now let me look at the key changes to understand what to put in the release notes. Let me look at the significant commits:

1. `b06bb58 Add entire integration` - Integrates the entire cc-backend
2. `0fa5d8b Run go fix tool. Refactor` - Code refactoring
3. `5547580 Update to lates cc-backend head`
4. `b764120 Integrate entire. Upgrade dependencies`
5. `6aca448 Port to newest cclib. Use metricstore as library.` - Major change: metricstore now used as library from cc-backend

6. `dd23f49 Add configuration options and enable dynamic memory management through cc-backend callback`
7. `be6d4be Fix healthcheck api`
8. `e2e4dcd feat: HealthCheck endpoint for nodes` - New feature
9. Avro checkpoint format (multiple commits)
10. `5be7578 Bump github.com/nats-io/nats.go from 1.36.0 to 1.47.0`
11. `fc4ae14 Bringing back GOGC for syncPool`

The major themes are moving the storage engine to cc-backend as a library, adding configuration and memory management capabilities, introducing a new HealthCheck endpoint for nodes, switching to Avro checkpoint format, and updating key dependencies like NATS while optimizing garbage collection.


Show what changed in the metricstore-as-library commit


commit 6aca448c18788e4def276a35324dc5fedfd07032
Author: Jan Eitzinger <jan@moebiusband.org>
Date:   Mon Jan 26 09:59:29 2026 +0100

    Port to newest cclib. Use metricstore as library.

 cmd/cc-metric-store/cli.go              |  25 ++
 cmd/cc-metric-store/main.go             | 240 +++++-----
 cmd/cc-metric-store/server.go           | 142 ++++++
 configs/config.json                     | 376 ++++++++--------
 go.mod                                  |  78 +++-
 go.sum                                  | 207 ++++++---
 internal/api/authentication.go          |   5 +
 internal/api/docs.go                    |   5 +
 internal/api/lineprotocol.go            | 350 ---------------
 internal/api/{api.go => metricstore.go} | 324 +++++++-------
 internal/api/server.go                  |  35 +-
 internal/avro/avroCheckpoint.go         | 474 --------------------
 internal/avro/avroHelper.go             |  80 ----
 internal/avro/avroStruct.go             | 161 -------
 internal/config/config.go               |  88 ++--
 internal/config/metricSchema.go         | 135 ++++++
 internal/config/schema.go               | 135 ++++++
 internal/config/validate.go             |  29 ++
 internal/memorystore/archive.go         | 185 --------
 internal/memorystore/buffer.go          | 233 ----------
 internal/memorystore/checkpoint.go      | 767 --------------------------------
 internal/memorystore/debug.go           | 107 -----
 internal/memorystore/healthcheck.go     |  88 ----
 internal/memorystore/level.go           | 187 --------
 internal/memorystore/memorystore.go     | 373 ----------------
 internal/memorystore/stats.go           | 120 -----
 internal/runtimeEnv/setup.go            | 140 ------
 internal/util/float.go                  |  76 ----
 internal/util/selector.go               |  51 ---
 pkg/resampler/resampler.go              | 122 -----
 pkg/resampler/util.go                   |  35 --
 tools.go                                |   8 -
 32 files changed, 1204 insertions(+), 4177 deletions(-)


Show what changed in the integration commit


commit b06bb58bdf37e08cba6a3049c35ca9b67838bb9c
Author: Jan Eitzinger <jan@moebiusband.org>
Date:   Fri Mar 6 11:43:05 2026 +0100

    Add entire integration

 .claude/settings.json | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++
 .entire/.gitignore    |  4 +++
 .entire/settings.json |  4 +++
 3 files changed, 92 insertions(+)


git show e2e4dcd --stat && git show dd23f49 --stat

Show healthcheck and dynamic memory commits


commit e2e4dcdada6a8bb9fcc4cb95a00276132e4fbb6e
Author: Aditya Ujeniya <adityauj@gmail.com>
Date:   Sun Feb 16 20:33:40 2025 +0100

    feat: HealthCheck endpoint for nodes

 .gitignore                                         |   4 +-
 api/swagger.json                                   |  57 +++++++++++
 api/swagger.yaml                                   |  36 +++++++
 endpoint-test-scripts/test_ccms_api.sh             |   6 ++
 endpoint-test-scripts/test_ccms_debug_api.sh       |   6 ++
 endpoint-test-scripts/test_ccms_free_api.sh        |   6 ++
 .../test_ccms_health_check_api.sh                  |   6 ++
 endpoint-test-scripts/test_ccms_write_api.sh       | 110 +++++++++++++++++++++
 internal/api/api.go                                |  33 +++++++
 internal/api/docs.go                               |  57 +++++++++++
 internal/api/server.go                             |   4 +
 internal/memorystore/healthcheck.go                |  88 +++++++++++++++++
 12 files changed, 410 insertions(+), 3 deletions(-)
commit dd23f493642aa9ba7491d80ec4c123599696dcb0
Author: Jan Eitzinger <jan@moebiusband.org>
Date:   Wed Jan 28 12:59:05 2026 +0100

    Add configuration options and enable dynamic memory management through cc-backend callback

 CLAUDE.md                    | 77 ++++++++++++++++++++++++++++++++++++++++++
 cmd/cc-metric-store/main.go  | 22 +++++++++---
 go.mod                       | 11 ++----
 go.sum                       | 20 +++--------
 internal/api/nodeprovider.go | 54 ++++++++++++++++++++++++++++++
 internal/config/config.go    | 80 ++++++++++++++++++--------------------------
 internal/config/schema.go    |  4 +++
 7 files changed, 191 insertions(+), 77 deletions(-)


cat /Users/jan/prg/cc-metric-store/go.mod | head -20

Show go.mod for version info


module github.com/ClusterCockpit/cc-metric-store

go 1.25.0

require (
	github.com/ClusterCockpit/cc-backend v1.5.0
	github.com/ClusterCockpit/cc-lib/v2 v2.8.0
	github.com/ClusterCockpit/cc-line-protocol/v2 v2.4.0
	github.com/golang-jwt/jwt/v4 v4.5.2
	github.com/google/gops v0.3.29
	github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
	github.com/swaggo/http-swagger v1.3.4
	github.com/swaggo/swag v1.16.6
)

require (
	github.com/KyleBanks/depth v1.2.1 // indirect
	github.com/andybalholm/brotli v1.2.0 // indirect
	github.com/aws/aws-sdk-go-v2 v1.41.3 // indirect
	github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6 // indirect


Now I have enough information to write a comprehensive release notes update. The next version should be 0.2.0 given the significant architectural changes:

1. **Major architectural change**: The storage engine (previously internal `memorystore`) has been extracted and moved to `cc-backend/pkg/metricstore` as a library. This is a breaking change as the entire internal implementation was removed.

2. **New features**:
   - HealthCheck endpoint for node health status (`GET /api/healthcheck/`)
   - Dynamic memory management via cc-backend callback
   - Avro checkpoint format support
   - GOGC management for sync pool

3. **Breaking changes**: The internal `memorystore`, `avro`, `resampler`, and `util` packages have been removed entirely, with the storage engine now sourced from `cc-backend/pkg/metricstore`, and the configuration schema has been adapted accordingly.

4. **Improvements**: I've refactored the startup code, enhanced configuration schema validation, improved error handling throughout, and cleaned up the codebase with `go fix`.

5. **Dependency updates**: The nats.go library has been upgraded from 1.36.0 to 1.47.0, along with various other dependency improvements.

Now I'm putting together the release notes for v0.2.0.


Now I have a clear picture of all changes since v0.1.1. Let me write the updated release notes for v0.2.0.


ToolSearch

Question: select:Write


Question: select:Write


Write

# `cc-metric-store` version 0.2.0

This is a major release of `cc-metric-store`, the metric timeseries cache
implementation of ClusterCockpit.
For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/).

## Breaking changes

- The internal `memorystore`, `avro`, `resampler`, and `util` packages have been
  removed. The storage engine is now provided by the
  [`cc-backend`](https://github.com/ClusterCockpit/cc-backend) package
  (`cc-backend/pkg/metricstore`). This repository is now the HTTP API wrapper
  only.
- The configuration schema has changed. Refer to `configs/config.json` for the
  updated structure.

## Notable changes

- **Storage engine extracted to `cc-backend` library**: The entire in-memory
  time-series storage engine was moved to `cc-backend/pkg/metricstore`. This
  reduces duplication in the ClusterCockpit suite and enables shared maintenance
  of the storage layer.
- **HealthCheck API endpoint**: New `GET /api/healthcheck/` endpoint reports the
  health status of cluster nodes.
- **Dynamic memory management**: Memory limits can now be adjusted at runtime via
  a callback from the `cc-backend` library.
- **Configuration schema validation**: The config and metric config JSON schemas
  have been updated and are now validated against the structs they describe.
- **Startup refactored**: Application startup has been split into `cli.go` and
  `server.go` for clearer separation of concerns.
- **`go fix` applied**: Codebase updated to current Go idioms.
- **Dependency upgrades**: `nats.go` bumped from 1.36.0 to 1.47.0;
  `cc-lib` updated to v2.8.0; `cc-backend` updated to v1.5.0; various other
  module upgrades.

---

# `cc-metric-store` version 0.1.1

This is a bugfix release of `cc-metric-store`, the metric timeseries cache
implementation of ClusterCockpit.
For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/).

Notable changes in version 0.1.0:

- Cleanup of code and restructuring
- Document REST API with Swagger
- Introduce REST API versioning
- Provide Swagger UI test web-frontend
- Introduce re-sampling of metric data
- Support also ms, ns in line protocol
- Support NATS credentials

## Breaking changes

None


The file /Users/jan/prg/cc-metric-store/ReleaseNotes.md has been updated successfully.

# `cc-metric-store` version 0.2.0

This is a major release of `cc-metric-store`, the metric timeseries cache
implementation of ClusterCockpit.
For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/).

## Breaking changes

- The internal `memorystore`, `avro`, `resampler`, and `util` packages have been
  removed. The storage engine is now provided by the
  [`cc-backend`](https://github.com/ClusterCockpit/cc-backend) package
  (`cc-backend/pkg/metricstore`). This repository is now the HTTP API wrapper
  only.
- The configuration schema has changed. Refer to `configs/config.json` for the
  updated structure.

## Notable changes

- **Storage engine extracted to `cc-backend` library**: The entire in-memory
  time-series storage engine was moved to `cc-backend/pkg/metricstore`. This
  reduces duplication in the ClusterCockpit suite and enables shared maintenance
  of the storage layer.
- **HealthCheck API endpoint**: New `GET /api/healthcheck/` endpoint reports the
  health status of cluster nodes.
- **Dynamic memory management**: Memory limits can now be adjusted at runtime via
  a callback from the `cc-backend` library.
- **Configuration schema validation**: The config and metric config JSON schemas
  have been updated and are now validated against the structs they describe.
- **Startup refactored**: Application startup has been split into `cli.go` and
  `server.go` for clearer separation of concerns.
- **`go fix` applied**: Codebase updated to current Go idioms.
- **Dependency upgrades**: `nats.go` bumped from 1.36.0 to 1.47.0;
  `cc-lib` updated to v2.8.0; `cc-backend` updated to v1.5.0; various other
  module upgrades.

---

# `cc-metric-store` version 0.1.1

This is a bugfix release of `cc-metric-store`, the metric timeseries cache
implementation of ClusterCockpit.
For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/).

Notable changes in version 0.1.0:

- Cleanup of code and restructuring
- Document REST API with Swagger
- Introduce REST API versioning
- Provide Swagger UI test web-frontend
- Introduce re-sampling of metric data
- Support also ms, ns in line protocol
- Support NATS credentials

## Breaking changes

None

+This is a major release of `cc-metric-store`, the metric timeseries cache

+For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/).

+- The internal `memorystore`, `avro`, `resampler`, and `util` packages have been

+  removed. The storage engine is now provided by the

+  [`cc-backend`](https://github.com/ClusterCockpit/cc-backend) package

+  (`cc-backend/pkg/metricstore`). This repository is now the HTTP API wrapper

+- The configuration schema has changed. Refer to `configs/config.json` for the

+- **Storage engine extracted to `cc-backend` library**: The entire in-memory

+  time-series storage engine was moved to `cc-backend/pkg/metricstore`. This

+  reduces duplication in the ClusterCockpit suite and enables shared maintenance

+- **HealthCheck API endpoint**: New `GET /api/healthcheck/` endpoint reports the

+- **Dynamic memory management**: Memory limits can now be adjusted at runtime via

+  a callback from the `cc-backend` library.

+- **Configuration schema validation**: The config and metric config JSON schemas

+  have been updated and are now validated against the structs they describe.

+- **Startup refactored**: Application startup has been split into `cli.go` and

+  `server.go` for clearer separation of concerns.

+- **`go fix` applied**: Codebase updated to current Go idioms.

+- **Dependency upgrades**: `nats.go` bumped from 1.36.0 to 1.47.0;

+  `cc-lib` updated to v2.8.0; `cc-backend` updated to v1.5.0; various other


The `ReleaseNotes.md` has been updated with a new v0.2.0 section. Here's a summary of what was added:

**Breaking changes:**
- Internal `memorystore`, `avro`, `resampler`, and `util` packages removed — the storage engine is now sourced from `cc-backend/pkg/metricstore`
- Configuration schema has changed

**Notable changes:**
- Storage engine extracted to `cc-backend` as a library (the biggest architectural shift — ~3000 lines removed from this repo)
- New `GET /api/healthcheck/` endpoint for node health status
- Dynamic memory management via cc-backend callback
- Updated and validated config/metric JSON schemas
- Refactored startup code (`cli.go` / `server.go` split)
- `go fix` applied throughout
- Dependency upgrades: nats.go 1.36→1.47, cc-lib v2.8.0, cc-backend v1.5.0