Changelog Updates
Published on July 30, 2025 by Dmitri Katz

v0.5.5 - 2025-07-29

Changed
- Rewrote `audio_feed_worker/README.md` for consistency with SCHEMA_REFERENCE.md v1.1.
- Standardized runtime config description and output payload structure.

Removed
- Deprecated schema files moved to `docs/older version/`:
  - SCHEMA_REFERENCE.md (pre-v1.1)
  - SCHEMA_EVOLUTION_POLICY.md
  - SCHEMA_MAPPING.md
  - SCHEMA_OVERVIEW.md
  - old_video_streamer/README.md and notes.md

Fixed
- test_session_manager_routes.py: adjusted schema example path to match new schema naming c

## v1.1.0 – 2025-07-29

### Added
- Finalized and validated `audio_feed_worker.schema.md` with clarified output format, configuration source, and compliance disclaimer

### Changed
- `test_session_manager_routes.py`: updated to align with new schema linting expectations
- `docs/modules/session_manager/README.md`: updated integration notes to reflect schema routing logic

### Removed
- `SCHEMA_EVOLUTION_POLICY.md`: folded into top of `SCHEMA_CHANGELOG.md` and schema architecture
- `SCHEMA_MAPPING.md`: replaced by CI mapping test (`test_schema_mapping.py`)
- `SCHEMA_OVERVIEW.md`: deprecated flat view of A3CPMessage schema
- `docs/older version/SCHEMA_REFERENCE.md`: outdated copy removed
- `docs/older version/old_video_streamer/README.md`: removed legacy video/audio module notes
- `docs/older version/old_video_streamer/notes.md`: removed internal comments on defunct implementation


===============================
A3CP Changelog – 2025-07-28
===============================
### Added
- Scaffolded test for `/api/schema_recorder/` route
  - Loads input example from schema
  - Asserts 501 stub response
  - Placeholder for full output check post-implementation
### Added
- Scaffolded test for `/api/model_trainer/` route
  - Loads input example from schema
  - Asserts 501 stub response
  - Placeholder for full output check post-implementation

### Added
- Scaffolded test for `/api/output_planner/` route
  - Loads input example from schema
  - Asserts 501 stub response
  - Placeholder for full output check post-implementation

### Added
- Scaffolded test for `/api/output_expander/` route
  - Loads example input via `load_example()`
  - Asserts 501 stub response
  - Output comparison placeholder included for future implementation

### Added
- Scaffolded test for `/api/model_registry/` route
  - Loads input via `load_example()`
  - Asserts 501 stub response
  - Output assertion stub included for future implementation

### Added
- Scaffolded test for `/api/memory_interface/` route
  - Loads example input via `load_example()`
  - Asserts 501 stub response
  - Output comparison placeholder included for future implementation

## [0.5.x] - 2025-07-28

### Added
- Scaffolded test for `/api/memory_integrator/` route
  - Loads example input via `load_example()`
  - Asserts 501 stub response
  - Output comparison placeholder included

## [0.5.x] - 2025-07-28

### Added
- Replaced hardcoded test for `/api/llm_clarifier/` with schema-based version
  - Uses `load_example()` for input consistency
  - Asserts 501 stub response
  - Output comparison placeholder included
## [0.5.x] - 2025-07-28

### Added
- Scaffolded test for `/api/landmark_visualizer/` route
  - Loads example input via `load_example()`
  - Asserts 501 stub response
  - Output validation stub included for future implementation


## [0.5.x] - 2025-07-28

### Added
- Full test for `/api/landmark_extractor/` route
  - Uses `LandmarkExtractorInput.example_input()` and `tiny_jpeg_base64`
  - Verifies image decoding works
  - Asserts frame ID, user ID, and landmark structure in response

## [0.5.x] - 2025-07-28

### Added
- Scaffolded test for `/api/input_broker/` route
  - Uses `load_example()` for structured input
  - Asserts 501 stub response
  - Output assertion stub included for future implementation


## [0.5.x] - 2025-07-28

### Added
- Scaffolded test for `/api/gesture_classifier/` route
  - Uses example input via `load_example()`
  - Asserts 501 stub response
  - Output check block included for future implementation

## [0.5.x] - 2025-07-28

### Added
- Scaffolded test for `/api/feedback_log/` route
  - Uses example input via `load_example()`
  - Expects 501 error response for now
  - Full output match block included, ready to enable

## [0.5.x] - 2025-07-28

### Added
- Scaffolded test for `/api/confidence_evaluator/` route
  - Loads input via `load_example()`
  - Asserts 501 error response
  - Output validation stub included for future implementation


## [0.5.x] - 2025-07-28

### Added
- Scaffolded test for `/api/clarification_planner/` route
  - Uses `load_example()` for input
  - Asserts 501 error response
  - Output validation stub included, ready for future implementation


## [0.5.x] - 2025-07-28
### Added
- Scaffolded test for `/api/camera_feed_worker/` route
  - Uses `load_example()` for input/output
  - Asserts 501 response until implemented
  - Includes commented output assertions for future enablement

### Changed
- Refactored `test_audio_feed_worker_routes.py` to load input and output from JSON schema examples
- Replaced hardcoded test input with `load_example()` from `tests/utils.py`
- Added `assert_valid_iso8601()` utility to validate timestamp format in dynamic responses

## [0.5.x] - 2025-07-28

### Fixed
- Moved `example_input()` to correct class (`LandmarkVisualizerInput`) for test compatibility

### Added
- Test for `landmark_visualizer` stub route using example input and response schema


### Added
- Test for `landmark_extractor` route with full schema compliance and image decoding
- `tiny_jpeg_base64` fixture in `conftest.py` for use across image-processing module tests

### Changed
- Updated `landmark_extractor_routes.py` to decode base64 image input using Pillow
- Added Pillow to `requirements.txt`


[0.5.x] – Ongoing Development
-----------------------------
### Changed
- Refactored `scripts/generate_schemas_from_master.py` to support schema folders with multiple `.py` files (e.g. `__init__.py`)
- Regenerated all schema JSON files and input/output examples across existing modules


ADDED
-----
- Stub FastAPI routes created:
  - confidence_evaluator_routes.py
  - feedback_log_routes.py
  - gesture_classifier_routes.py
  - input_broker_routes.py
  - landmark_extractor_routes.py

- Each route includes:
  - POST / endpoint
  - Typed input/output models (placeholders)
  - Raises NotImplementedError (501)

- Started work on realistic I/O for landmark_extractor:
  - Identified expected input: frame or RGB image
  - Identified expected output: structured landmark vectors (x, y, z)

CHANGED
-------
- landmark_extractor_routes.py:
  - Removed circular placeholder model use
  - Planned schema model to reflect real MediaPipe-style output

- generate_schemas_from_master.py:
  - Script executes and finds all schema files
  - Does not produce output → silent failure suspected
  - Investigated issues in process_schema_module()

DEBUGGING NOTES
---------------
- Hypothesis: model classes not detected due to:
  - Missing subclassing from BaseModel
  - Missing example_input or example_output
- Inserted plan to add debug logs for:
  - Model class discovery
  - Attribute detection

NEXT STEPS
----------
- New thread: debug and fix schema generation script
- Finalize proper schema for:
  - landmark_extractor input: image or frame metadata
  - landmark_extractor output: normalized 3D landmarks