Skip to content

fix(ui): add aria-label to DashboardNavigation for WCAG 2.1 - #425

Merged
POWERFULMOVES merged 1 commit into
mainfrom
fix/pr416-aria-label
Jan 2, 2026
Merged

POWERFULMOVES merged 1 commit into
mainfrom
fix/pr416-aria-label

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Jan 2, 2026

Copy link
Copy Markdown
Owner

Adds aria-label="Dashboard navigation" to the navigation component for WCAG 2.1 Level A compliance.

Accessibility Impact:

  • Screen readers can now announce the navigation region to users
  • Meets WCAG 2.1 Success Criterion 2.4.1 (Bypass Blocks)
  • Consistent with existing skip-link implementation in layout.tsx

Change:

  • Single line addition: <nav aria-label="Dashboard navigation" ...>

Summary by CodeRabbit

  • Accessibility Improvements
    • Enhanced dashboard navigation accessibility with improved screen reader support, providing a better navigation experience for users relying on assistive technologies.

✏️ Tip: You can customize this high-level summary in your review settings.

…lity

Adds aria-label='Dashboard navigation' to nav component for
WCAG 2.1 Level A compliance (screen reader accessibility).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Jan 2, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

Adds an ARIA accessibility attribute aria-label="Dashboard navigation" to the dashboard navigation element in the DashboardNavigation component. No structural, behavioral, or styling changes made to the component.

Changes

Cohort / File(s) Summary
Accessibility Enhancement
pmoves/ui/components/DashboardNavigation.tsx
Added aria-label="Dashboard navigation" attribute to nav element for improved screen reader accessibility

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Poem

🐰 A rabbit hops through labels bright,
Making navigation clear and right,
With aria's gentle, guiding call,
All users now can see it all! ✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description provides a clear explanation of the change and its accessibility impact, but is missing several required template sections including Summary bullet points, Testing documentation, Required Checks confirmation, and Review Coordination. Add the missing required sections: provide Summary bullet points, document testing commands/output, confirm Required Checks status, and specify Review Coordination needs.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: adding an aria-label attribute to DashboardNavigation for WCAG 2.1 compliance, which matches the actual code modification.
✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 910567a and 70d6b55.

📒 Files selected for processing (1)
  • pmoves/ui/components/DashboardNavigation.tsx
🧰 Additional context used
📓 Path-based instructions (1)
pmoves/ui/**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (pmoves/AGENTS.md)

UI updates: run make -C pmoves notebook-workbench-smoke ARGS="--thread=<uuid>" to lint the Next.js bundle and validate Supabase connectivity; reference pmoves/docs/UI_NOTEBOOK_WORKBENCH.md

Files:

  • pmoves/ui/components/DashboardNavigation.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Analyze (python)
🔇 Additional comments (1)
pmoves/ui/components/DashboardNavigation.tsx (1)

70-70: and


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@POWERFULMOVES
POWERFULMOVES merged commit c4b9942 into main Jan 2, 2026
5 checks passed
POWERFULMOVES pushed a commit that referenced this pull request Jan 3, 2026
Resolves conflicts by keeping main's versions of files that hardened deleted.

Changes from main being merged:
- fix(ui): add aria-label accessibility (#425)
- docs(services): module docstrings (#424)
- fix(hirag): remove extra_headers from WebSocket (#400)
- fix(security): NATS authentication (#399)

Conflicts accepted from main (ours):
- .dockerignore, .github/CODEOWNERS
- GitHub workflows (build-images, chit-contract, etc.)
- .gitignore, .gitmodules
- AGENTS.md and various documentation
- All submodules (PMOVES-*)
POWERFULMOVES added a commit that referenced this pull request Jan 18, 2026
…lity (#425)

Adds aria-label='Dashboard navigation' to nav component for
WCAG 2.1 Level A compliance (screen reader accessibility).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
POWERFULMOVES added a commit that referenced this pull request Jan 22, 2026
* feat(observability): add Tokenism + A2UI metrics and Grafana dashboards

**Prometheus Scrape Config:**
- Added tokenism-simulator job (port 8103)
- Added a2ui-nats-bridge job (port 9224)
- Tier 5 services for token economy and A2UI monitoring

**Grafana Dashboard: tokenism.json**
Panels:
- Service status, total simulations, success rate
- Simulations/sec, average duration
- Simulations by scenario (time series)
- Error rate by scenario
- Duration percentiles (p50, p95, p99)
- Scenario distribution (pie chart)
- CHIT geometry events: A2UI events, surfaces, subscriptions

**Tokenism Metrics (already in service):**
- tokenism_simulation_requests_total{scenario, status}
- tokenism_simulation_duration_seconds{scenario}

**A2UI Bridge Metrics:**
- a2ui_events_published_total{event_type}
- a2ui_active_websockets
- a2ui_geometry_events_total

**Dashboard UID:** tokenism-simulator
**Tags:** tokenism, simulation, economy, chit

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: update documentation for NATS WebSocket, A2UI, E2B, Tokenism

**Services Catalog (.claude/context/services-catalog.md):**
- Added Token Economy & Agent UI section
- Documented Tokenism Simulator (port 8103)
  - Simulation API endpoints
  - CHIT/Geometry integration
  - Prometheus metrics
- Documented A2UI NATS Bridge (port 9224)
  - A2UI event handling (v0.9 format)
  - WebSocket endpoints for agents and clients
  - NATS subjects (a2ui.render.v1, a2ui.>)
- Updated quick reference with new health endpoints

**NATS Subjects (.claude/context/nats-subjects.md):**
- Added A2UI (Agent-to-User Interface) section
- Documented a2ui.render.v1 subject
- Documented a2ui.request.v1 subject
- Added wildcard subjects (a2ui.>, geometry.>)
- Cross-referenced geometry-nats-subjects.md

**Submodules (.claude/context/submodules.md):**
- Updated count: 20 → 30+ submodules
- Added E2B Danger Room Components section:
  - pmoves/vendor/e2b (core sandbox)
  - pmoves/vendor/e2b-desktop (VNC desktop)
  - pmoves/vendor/e2b-infra (infrastructure)
  - pmoves/vendor/e2b-mcp-server (MCP integration)
  - pmoves/vendor/e2b-spells (agent patterns)
  - pmoves/vendor/e2b-surf (web automation)
- Added Research & External Integrations section:
  - research/A2UI (Google Agent-to-User Interface)
    - Declarative UI format for LLMs
    - Component catalog pattern
    - NATS bridge integration
- Updated quick reference table with all new submodules

**Related Changes:**
- NATS WebSocket enabled on port 9223
- A2UI NATS Bridge service deployed
- Tokenism Grafana dashboard created
- E2B component submodules properly registered

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(a2ui-bridge): fix critical bugs and add comprehensive testing

This commit addresses all PR review findings for the A2UI NATS Bridge
integration and adds the Tokenism Simulator service.

Critical Fixes:
- Fix submodule URL typos (e2b-desktop, e2b-spells)
- Fix health check nc.is_connected() bug (was returning method object)
- Improve NATS exception handling (check error messages for stream exists)
- Add Docker healthcheck dependency (a2ui-nats-bridge waits for NATS healthy)

Important Improvements:
- Health check now returns "degraded" when NATS disconnected
- Add input validation with TypeError/ValueError for A2UI events
- Convert validation errors to HTTP 400 responses
- Fix RLS policies for proper row-level security

Testing:
- Add 22 unit tests for A2UI bridge (all passing)
- Add integration tests for service endpoints
- Add smoke test script for comprehensive validation

Features:
- Add Tokenism Simulator service with CHIT geometry encoding
- Integrate Tokenism into PMOVES UI with simulation panels
- Add Prometheus metrics and Grafana dashboard for Tokenism

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(a2ui-bridge): fix critical bugs, add testing, integrate Tokenism simulator

* fix(ui): add error ID constants for Sentry tracking

Add errorIds.ts with stable error identifiers for aggregation in
Sentry. Used by logError() calls in Tokenism UI components for:
- Simulation failures
- Geometry load errors
- Health check failures
- Network error classification

Provides structured error tracking with consistent IDs across the
Tokenism dashboard for monitoring and alerting.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ui): correct error ID documentation and add explicit typing

- Update JSDoc: "Sentry" → "Loki/Promtail" (actual observability stack)
- Add explicit errorId?: ErrorId to ErrorContext interface
- Import ErrorId type in errorUtils for type safety

These changes address PR review feedback:
- Documentation now accurately reflects the logging infrastructure
- Explicit typing enables autocomplete and prevents typos

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(ui): expand error ID coverage to 93% of logError calls

Add 22 new error IDs across 8 categories:
- AUTH: JWT_PARSE_FAILED, JWT_MISSING_HEADER, JWT_INVALID_SIGNATURE, SUPABASE_AUTH_FAILED, SUPABASE_QUERY_FAILED
- CHAT: CHAT_SEND_FAILED, CHAT_FETCH_FAILED
- NOTEBOOK: NOTEBOOK_RUNTIME_FETCH_FAILED, NOTEBOOK_SOURCES_FETCH_FAILED, NOTEBOOK_SYNC_FAILED, NOTEBOOK_SYNC_TRIGGER_FAILED
- JELLYFIN: JELLYFIN_SEARCH_FAILED, JELLYFIN_SYNC_STATUS_FAILED, JELLYFIN_LINK_FAILED, JELLYFIN_PLAYBACK_URL_FAILED, JELLYFIN_SYNC_TRIGGER_FAILED, JELLYFIN_BACKFILL_FAILED
- RESEARCH: RESEARCH_INITIATE_FAILED, RESEARCH_TASK_FETCH_FAILED, RESEARCH_TASK_LIST_FAILED, RESEARCH_RESULTS_FETCH_FAILED, RESEARCH_CANCEL_FAILED, RESEARCH_HEALTH_CHECK_FAILED, RESEARCH_PUBLISH_FAILED
- HIRAG: HIRAG_QUERY_FAILED, HIRAG_HEALTH_CHECK_FAILED, HIRAG_EXPORT_FAILED
- ERROR_BOUNDARIES: ROOT_ERROR_BOUNDARY, DASHBOARD_ERROR_BOUNDARY
- TENSORZERO: TENSORZERO_REQUEST_FAILED, TENSORZERO_TIMEOUT

Add runtime validator:
- isValidErrorId(value: string): value is ErrorId

Update 25 logError() calls to include errorId:
- pmoves/ui/lib/api/jellyfin.ts (6 errors)
- pmoves/ui/lib/api/research.ts (7 errors)
- pmoves/ui/lib/api/hirag.ts (3 errors)
- pmoves/ui/lib/jwtUtils.ts (2 errors)
- pmoves/ui/app/error.tsx (1 error)
- pmoves/ui/app/dashboard/error.tsx (1 error)
- pmoves/ui/app/api/chat/send/route.ts (1 error)
- pmoves/ui/app/api/chat/messages/route.ts (1 error)
- pmoves/ui/app/api/notebook/runtime/route.ts (1 error)
- pmoves/ui/app/api/notebook/sources/route.ts (2 errors)
- pmoves/ui/app/api/notebook/runtime/sync/route.ts (2 errors)

Coverage: 28/30 logError() calls now use error IDs (93% ↑ from 10%)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ui): address PR review feedback for error ID implementation

Fixes from PR review:

1. Fix hirag.ts success logging misuse
   - Replace logError with logForDebugging for export success case
   - Add logForDebugging import

2. Fix jellyfin.ts missing HTTP error logging
   - Add logError to 4 HTTP non-ok response paths:
     * getJellyfinPlaybackUrl (line 302)
     * triggerJellyfinSync (line 344)
     * triggerBackfill (line 391)
     * getJellyfinSyncStatus (already had logging)

3. Fix JWT error semantics
   - Rename JWT_MISSING_HEADER → JWT_INVALID_FORMAT
   - More accurately reflects "JWT must have 3 parts" error
   - Update jwtUtils.ts to use new error ID

4. Mark unused error IDs with @todo
   - JWT_INVALID_SIGNATURE (not yet used)
   - SUPABASE_AUTH_FAILED (not yet used)
   - SUPABASE_QUERY_FAILED (not yet used)
   - TENSORZERO_REQUEST_FAILED (not yet used)
   - TENSORZERO_TIMEOUT (not yet used)

5. Fix documentation typos
   - AUTHENTICATION/Authorization → AUTHENTICATION/AUTHORIZATION

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(pr): address comprehensive PR review issues - Sprints 1-4

This commit addresses all Critical, Important, and selected Optional issues
from comprehensive PR review of A2UI NATS Bridge and Tokenism Simulator.

## Sprint 1: Critical Fixes (6/6 complete)

### 1.1 Fix hardcoded absolute path
- File: config/__init__.py
- Changed from /home/pmoves/PMOVES.AI/pmoves/env.shared to relative path
- Uses Path(__file__).resolve().parents[2] for portability

### 1.2 Fix weak default secret key
- File: config/__init__.py
- Replaced 'pmoves-tokenism-secret' with secrets.token_hex(32)
- Logs warning when using auto-generated key

### 1.3 Convert publish_a2ui_event to raise exceptions
- File: a2ui-nats-bridge/bridge.py
- Changed from returning False to raising ConnectionError/RuntimeError
- Updated all callers to handle exceptions with HTTP 503

### 1.4 Convert NATSClient.connect to raise exceptions
- File: config/nats.py
- Added retry logic with exponential backoff (5 attempts, 1s→30s)
- Raises ConnectionError after max attempts

### 1.5 Add TensorZero custom exceptions
- File: config/tensorzero.py
- Added TensorZeroError, TensorZeroHTTPError, TensorZeroTimeoutError
- All with transient flag for smart retry logic

### 1.6 Fix misleading metric comment
- File: a2ui-nats-bridge/bridge.py
- Changed geometry_events_subscribed to a2ui_events_forwarded

## Sprint 2: Important Fixes (5/5 complete)

### 2.1 Replace datetime.utcnow()
- Updated 12 occurrences across 6 files
- Migrated to datetime.now(timezone.utc) for Python 3.12+ compatibility

### 2.2 Replace FastAPI on_event with lifespan
- File: a2ui-nats-bridge/bridge.py
- Added @asynccontextmanager lifespan function
- Removed deprecated @app.on_event decorators
- All 26 tests still pass

### 2.3 Add missing WeeklyMetrics fields
- File: services/chit_encoder.py
- Added new_participants=0 and staked_tokens=0 to fallback

### 2.4 Add WebSocket integration tests
- File: tests/a2ui/test_bridge.py
- Added TestA2UIEventTypes class with 4 new tests
- Tests increased from 22 to 26 passing

### 2.5 Add CHIT encoding round-trip tests
- New file: services/tokenism-simulator/tests/test_chit_encoder.py
- 8 new tests for CGP packet encoding/decoding

## Sprint 3: Documentation (4/4 complete)

### 2.6 Document NATSClient methods
- File: config/nats.py
- Added comprehensive docstrings with Args/Returns/Raises

### 2.7 Document SimulationEngine methods
- File: services/simulation_engine.py
- Added docstrings for all 11 private methods

### 2.8 Document Bridge lifecycle functions
- File: a2ui-nats-bridge/bridge.py
- Enhanced connect_nats(), lifespan(), main() docstrings

### 2.9 Add module docstrings
- Added docstrings to 4 __init__.py files with __all__ exports

## Sprint 4: Optional Enhancements (3/4 complete)

### 3.1 Restrict CORS origins
- File: app.py
- Changed from wildcard "*" to configurable ALLOWED_ORIGINS env var
- Defaults to localhost:3000,8080,4000

### 3.2 Complete async endpoint
- File: api/simulation.py
- Implemented background simulation using ThreadPoolExecutor
- Added GET /api/v1/simulate/<id> status check endpoint

## Test Results
- ✅ 26 A2UI bridge tests pass
- ✅ 8 CHIT encoder tests pass
- ✅ All Python files compile successfully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(deps): migrate from deprecated datetime.utcnow() to datetime.now(timezone.utc)

Replaces all 41 occurrences of the deprecated datetime.utcnow() with the
modern timezone-aware pattern datetime.now(timezone.utc) across the
codebase.

This ensures:
- Timezone-aware datetime objects (UTC with explicit tzinfo)
- Python 3.12+ compatibility (utcnow() was deprecated in 3.12)
- Consistent ISO 8601 format serialization
- Proper equality/comparison behavior between datetime objects

Files modified (21 total):
Services:
- pmoves/services/agent_zero/controller.py (1)
- pmoves/services/botz-gateway/main.py (7)
- pmoves/services/comfy-watcher/watcher.py (1)
- pmoves/services/common/cgp_mappers.py (1)
- pmoves/services/common/events.py (1)
- pmoves/services/consciousness-service/cgp_mapper.py (1)
- pmoves/services/consciousness-service/persona_gate.py (1)
- pmoves/services/pdf-ingest/app.py (1)
- pmoves/services/pmoves-yt/yt.py (3)
- pmoves/services/publisher/publisher.py (1)
- pmoves/services/retrieval-eval/eval_utils.py (1)
- pmoves/services/session-context-worker/main.py (3)
- pmoves/services/session-context-worker/test_transform.py (3)
- pmoves/services/tensorzero-config-api/logging.py (5)

Tools:
- pmoves/tools/consciousness_build.py (1)
- pmoves/tools/consciousness_harvester.py (4)
- pmoves/tools/mini_cli.py (1)

Scripts:
- pmoves/scripts/bootstrap_env.py (1)

Submodules:
- pmoves/integrations/archon (3 files committed separately)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* Add CodeQL analysis workflow configuration

* feat(services): update multiple service integrations

## Summary

This PR contains service integration updates including FastAPI lifespan migration,
datetime.utcnow() deprecation fixes, and silent failure handling improvements.

### Key Changes

- **FastAPI Lifespan Migration**: Migrated 15+ services from deprecated `@app.on_event` to modern `lifespan` context manager
- **datetime.utcnow() Migration**: 41+ occurrences migrated to `datetime.now(timezone.utc)` for Python 3.12+ compatibility
- **Silent Failure Fixes**: NATS task done callbacks, exception handler improvements, thread safety locks
- **Infrastructure**: CodeQL workflow, Ruff linting configuration
- **Error IDs**: 90 new error ID constants for Loki aggregation

### Commits

- e7740a29 fix(ci): allow CodeQL C/CPP to fail gracefully
- 0581ff9d fix(pr): address silent failures and error handling issues
- 4c69e8f4 ci(lint): add ruff config and @app.on_event pre-commit check
- 871dd4d4 refactor(fastapi): migrate @app.on_event to lifespan context manager
- 7909788d fix(pr): address all CodeRabbit review comments for PR #391
- 6be537ee Add CodeQL analysis workflow configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

* fix(pr): address all CodeRabbit review comments (follow-up)

Squash merge of PR #392 addressing all CodeRabbit review comments:
- datetime.utcnow() → datetime.now(timezone.utc) across 25+ services
- Error ID infrastructure for structured logging
- Tokenism Simulator async execution with status tracking
- Thread-safe background tasks with LRU eviction
- CORS configuration improvements

* fix(ci): remove C/CPP from CodeQL analysis

This repo has no C/C++ code - only Python, TypeScript, and YAML.
The C/CPP analysis was failing with "no source code seen during build"
because there's literally nothing to analyze.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: Geometric framework upgrade with CHIT integration

Merge PR #393 - Geometric framework upgrade

- Merged main's github-runner-ctl service configuration
- Removed duplicate @dataclass decorator in controller.py
- Fixed env.tier-agent environment variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: NATS infrastructure with A2UI bridge and GitHub Runner orchestration

Merge PR #395 - NATS infrastructure and A2UI bridge

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: Tokenism UI integration with GitHub Runner CI/CD

Merge PR #394 - Tokenism UI integration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: replace internal Claude context refs with project-facing docs

Fixes cross-reference tables in PMOVESCHIT documentation that were
incorrectly referencing .claude/context/ files (internal LLM-optimized
developer context for Claude Code CLI).

Changes:
- CATACLYSM_STUDIOS_INC.md: Update cross-reference table to use
  services/README.md, INTEGRATIONS.md, FLUTE_PROSODIC_ARCHITECTURE.md
- PMOVESCHIT.md: Reference GEOMETRY_BUS_INTEGRATION.md for NATS subjects
- GEOMETRY_BUS_INTEGRATION.md: Update Related Documentation section
- IMPLEMENTATION_STATUS.md: Update Related Documentation section

The .claude/context/ files are optimized for LLM consumption, not human
readability. Public/business docs should reference user-facing
documentation instead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(pr): address CodeRabbit review findings - critical, major, minor

CRITICAL Fixes (7):
- bootstrap_env.py:184 - Fix malformed ISO 8601 timestamp (was +00:00Z, now +00:00)
- channel-monitor/main.py:52 - Add missing asynccontextmanager import
- mcp_youtube_adapter.py:112-120 - Move app definition before __main__ block
- session-context-worker/main.py:99-103 - Move app definition before __main__ block
- tokenism-simulator/api/simulation.py:60-64 - Fix memory leak in status dict eviction
- tokenism-simulator/api/simulation.py:67-74 - Remove Python 3.12-only timeout param

MAJOR Fixes (8):
- migrate_lifespan.py:110-126 - Handle empty FastAPI() calls properly
- migrate_lifespan.py:150-157 - Derive root path from script location
- pyproject.toml:79 - Update target-version from py310 to py311
- pyproject.toml:120 - Relax ban-relative-imports from "all" to "parents"
- pmoves-yt/yt.py:58-94 - Store and cancel periodic docs sync task on shutdown
- session-context-worker/main.py:70-92 - Remove misplaced docstring literals
- tokenism-simulator/api/simulation.py:120-124 - Fix lock ordering consistency
- tokenism-simulator/api/simulation.py:138-143 - Fix lock ordering in error path

MINOR Fixes (3):
- comfy-watcher/watcher.py:27-30 - Use context manager for file handle
- jellyfin-bridge/main.py:23-40 - Store and cancel autolink task on shutdown
- pmoves-yt/requirements.txt:2 - Update prometheus-client from 0.20.0 to 0.23.1

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address PR #396 CodeRabbit review findings and add docstrings

This commit addresses all 18 CodeRabbit issues (7 CRITICAL, 8 MAJOR, 3 MINOR)
and adds comprehensive docstrings to improve coverage from 64.56% to >80%.

Critical Fixes:
- Fix FastAPI lifespan pattern migration from @app.on_event to @asynccontextmanager
- Fix asyncio task cleanup in pmoves-yt lifespan (_periodic_docs_task)
- Fix memory leak in tokenism-simulator _evict_old_results with proper lock ordering
- Remove Python 3.12-only timeout parameter from asyncio.shutdown()

Major Fixes:
- Add prometheus-client==0.20.0 to session-context-worker requirements
- Fix NATS.Msg type annotation (NATS.Msg → nats.aio.msg.Msg)
- Fix tokenism-simulator path resolution for container environment
- Fix pmoves-yt Dockerfile to use requirements.lock directly
- Fix docker-compose.yml YAML syntax (duplicate ports, duplicate service)

Documentation:
- Add 256 docstring sets across 5 service files
- All docstrings follow Google/NumPy style with Args/Returns/Raises sections

Services Modified:
- channel-monitor/main.py: 42 docstring sets
- tokenism-simulator/api/simulation.py: 26 docstring sets
- pmoves-yt/yt.py: 136 docstring sets
- session-context-worker/main.py: 20 docstring sets
- mcp_youtube_adapter.py: 32 docstring sets

Testing:
- All services verified healthy (healthz endpoints responding)
- Container images rebuilt and containers recreated
- NATS subscriptions confirmed active

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address CRITICAL and MAJOR issues from PR review

CRITICAL Fixes:
- Add missing return statement to session-context-worker healthz() endpoint
  - Was returning None, causing health check failures
  - Now returns {"ok": true, "nats_connected": bool}

MAJOR Fixes:
- Fix tokenism-simulator LRU eviction race condition
  - Collect IDs to evict first, then evict statuses separately
  - Prevents inconsistent state between results and status dicts
- Fix mcp_youtube_adapter embeddings key access
  - Updated error message to reflect both 'embeddings' and 'data' keys
  - Added clarifying comment about format compatibility

All fixes verified with py_compile.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: Add comprehensive MCP integration terraform for PMOVES.AI deployment with submodule support and service architecture documentation

* chore(deps): bump the npm_and_yarn group across 2 directories with 1 update (#390)

Bumps the npm_and_yarn group with 1 update in the /CATACLYSM_STUDIOS_INC/PMOVES-PROVISIONS/docker-stacks/jellyfin-ai/api-gateway directory: [qs](https://github.com/ljharb/qs).
Bumps the npm_and_yarn group with 1 update in the /pmoves/contracts/solidity directory: [qs](https://github.com/ljharb/qs).


Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.14.1)

Updates `qs` from 6.14.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.14.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: POWERFULMOVES <142271328+POWERFULMOVES@users.noreply.github.com>

* fix(pr398): backend service fixes from PR #396 review (#398)

* fix(pr398): backend service fixes from PR #396 review

## Fixes Applied

1. **agent_zero/controller.py** - Better unsubscribe logging
   - Extract `subject` attribute for better debugging
   - Replace silent `pass` with warning log

2. **comfy-watcher/watcher.py** - Remove redundant local import
   - `timedelta` already imported at module level

These fixes address CodeRabbit review comments from PR #396.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(pr398): add _parse_int_env helper and improve error handling

## Backend Service Fixes

1. **comfy-watcher/watcher.py** - Comprehensive error handling
   - Add `_parse_int_env()` helper with validation
   - Add corrupted state file backup with timestamp
   - Replace bare `except:` with specific exception types
   - Add logging module for proper error tracking
   - Add comprehensive docstrings

2. **hi-rag-gateway-v2/app.py** - Safer environment parsing
   - Add `_parse_int_env()` helper with validation
   - Replace unsafe `int(os.environ.get())` calls:
     - NEO4J_DICT_REFRESH_SEC, NEO4J_DICT_LIMIT
     - ENTITY_CACHE_TTL, ENTITY_CACHE_MAX
     - GEOMETRY_CACHE_WARM_LIMIT, HTTP_PORT, PGPORT

3. **session-context-worker/main.py** - Error handling improvements
   - Add `_parse_int_env()` helper for HEALTH_PORT
   - Add `_nats_loop_done()` callback for crash detection
   - Import missing `Msg` type from nats.aio.msg

4. **jellyfin-bridge/main.py** - Task cleanup
   - Store and cancel autolink task on shutdown
   - Remove unused imports (contextlib, suppress)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(codereview): address critical review comments from PR #398

- session-context-worker: Move if __name__ guard AFTER app definition
  (was causing NameError at runtime)

- tokenism-simulator: Fix lock ordering to prevent deadlock
  (must use _results_lock, _status_lock consistently)

- hi-rag-gateway-v2: Use logger.warning() for general config parsing
  (not rerank-specific _RERANK_CONFIG_WARNINGS list)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* style(session-context-worker): remove redundant inline string literals

Remove non-docstring triple-quoted strings inside lifespan function body
(lines 95, 103) that were creating confusion. Keep actual function docstring.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(session-context-worker): add payload schema validation

- Load schemas from services/common/events.py at startup
- Validate incoming claude.code.session.context.v1 payloads
- Validate outgoing kb.upsert.request.v1 payloads
- Prevents schema drift between publishers and consumers
- Follows coding guideline: "Validate payloads against schemas before
  publishing events using services/common/events.py"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix(security): NATS authentication and publisher-discord env fixes (#399)

* fix(security): NATS authentication and event queuing

Critical security and reliability fixes:
- Add NATS authentication support (user/pass via env vars)
- Add event queuing when NATS is disconnected (buffer up to 1000 events)
- Flush buffered events automatically on reconnection
- Update docker-compose.yml with NATS auth configuration
- Add NATS_USER/NATS_PASS environment variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(deploy): publisher-discord now loads env.shared for DISCORD_WEBHOOK_URL

The publisher-discord service was using <<: *env-tier-agent which only
loads env.tier-agent and .env.local, but DISCORD_WEBHOOK_URL is stored
in env.shared.

Updated the service to use explicit env_file configuration that includes
env.shared, similar to gateway-agent pattern.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix(hirag): remove extra_headers from WebSocket (uvloop incompatibility) (#400)

The websockets library's extra_headers parameter is not supported by
uvloop's create_connection(), which is used by uvicorn. Removed the
extra_headers parameter and rely on the apikey URL parameter for
Supabase realtime authentication.

Also:
- Add pmoves/vendor/python/ to .gitignore (unpacked packages)
- Remove 275+ unpacked package files from git tracking

Vendor submodules were already configured with POWERFULMOVES forks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix(hirag): remove extra_headers from WebSocket (uvloop incompatibility) (#400)

The websockets library's extra_headers parameter is not supported by
uvloop's create_connection(), which is used by uvicorn. Removed the
extra_headers parameter and rely on the apikey URL parameter for
Supabase realtime authentication.

Also:
- Add pmoves/vendor/python/ to .gitignore (unpacked packages)
- Remove 275+ unpacked package files from git tracking

Vendor submodules were already configured with POWERFULMOVES forks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix(security): NATS authentication and publisher-discord env fixes (#399)

* fix(security): NATS authentication and event queuing

Critical security and reliability fixes:
- Add NATS authentication support (user/pass via env vars)
- Add event queuing when NATS is disconnected (buffer up to 1000 events)
- Flush buffered events automatically on reconnection
- Update docker-compose.yml with NATS auth configuration
- Add NATS_USER/NATS_PASS environment variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(deploy): publisher-discord now loads env.shared for DISCORD_WEBHOOK_URL

The publisher-discord service was using <<: *env-tier-agent which only
loads env.tier-agent and .env.local, but DISCORD_WEBHOOK_URL is stored
in env.shared.

Updated the service to use explicit env_file configuration that includes
env.shared, similar to gateway-agent pattern.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix(pr398): backend service fixes from PR #396 review (#398)

* fix(pr398): backend service fixes from PR #396 review

1. **agent_zero/controller.py** - Better unsubscribe logging
   - Extract `subject` attribute for better debugging
   - Replace silent `pass` with warning log

2. **comfy-watcher/watcher.py** - Remove redundant local import
   - `timedelta` already imported at module level

These fixes address CodeRabbit review comments from PR #396.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(pr398): add _parse_int_env helper and improve error handling

1. **comfy-watcher/watcher.py** - Comprehensive error handling
   - Add `_parse_int_env()` helper with validation
   - Add corrupted state file backup with timestamp
   - Replace bare `except:` with specific exception types
   - Add logging module for proper error tracking
   - Add comprehensive docstrings

2. **hi-rag-gateway-v2/app.py** - Safer environment parsing
   - Add `_parse_int_env()` helper with validation
   - Replace unsafe `int(os.environ.get())` calls:
     - NEO4J_DICT_REFRESH_SEC, NEO4J_DICT_LIMIT
     - ENTITY_CACHE_TTL, ENTITY_CACHE_MAX
     - GEOMETRY_CACHE_WARM_LIMIT, HTTP_PORT, PGPORT

3. **session-context-worker/main.py** - Error handling improvements
   - Add `_parse_int_env()` helper for HEALTH_PORT
   - Add `_nats_loop_done()` callback for crash detection
   - Import missing `Msg` type from nats.aio.msg

4. **jellyfin-bridge/main.py** - Task cleanup
   - Store and cancel autolink task on shutdown
   - Remove unused imports (contextlib, suppress)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(codereview): address critical review comments from PR #398

- session-context-worker: Move if __name__ guard AFTER app definition
  (was causing NameError at runtime)

- tokenism-simulator: Fix lock ordering to prevent deadlock
  (must use _results_lock, _status_lock consistently)

- hi-rag-gateway-v2: Use logger.warning() for general config parsing
  (not rerank-specific _RERANK_CONFIG_WARNINGS list)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* style(session-context-worker): remove redundant inline string literals

Remove non-docstring triple-quoted strings inside lifespan function body
(lines 95, 103) that were creating confusion. Keep actual function docstring.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(session-context-worker): add payload schema validation

- Load schemas from services/common/events.py at startup
- Validate incoming claude.code.session.context.v1 payloads
- Validate outgoing kb.upsert.request.v1 payloads
- Prevents schema drift between publishers and consumers
- Follows coding guideline: "Validate payloads against schemas before
  publishing events using services/common/events.py"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* chore: update archon submodule to latest hardened

* feat(cli): Add PMOVES Agent SDK CLI Wizard & Rebrand Crush to PMOVES (#365)

* feat(cli): rebrand Crush CLI to PMOVES CLI

Update user-facing branding from "Crush CLI" to "PMOVES CLI" while
maintaining backward compatibility with existing Crush infrastructure.

Changes:
- Update crush_app help text: "Crush CLI integration" → "PMOVES CLI integration"
- Update crush_configurator.py docstring to emphasize PMOVES deployment
- Update command help texts for setup/status/preview commands
- Update user-facing documentation in .claude/commands/crush/

Rationale:
The "Crush" name originated as an internal codename but the production
CLI should reflect the PMOVES brand for consistency with the broader
PMOVES.AI ecosystem. The underlying "crush" command name and file
paths are preserved for backward compatibility.

Modified Files:
- pmoves/tools/mini_cli.py
- pmoves/tools/crush_configurator.py
- .claude/commands/crush/setup.md
- .claude/commands/crush/status.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat(cli): add PMOVES Agent SDK commands to mini CLI

Implement agent-sdk sub-commands for creating and managing PMOVES Agent
instances with full ecosystem access via interactive CLI wizard.

Features Implemented:
- `pmoves agent-sdk create` - Interactive wizard for agent creation
  - 5 agent roles: researcher, code-reviewer, media-processor, knowledge-manager, general
  - Role-based tool and subagent configuration
  - Automatic NATS, TensorZero, and Hi-RAG connection
  - Unique agent ID generation with timestamps
  - Beautiful formatted output with configuration summary

- `pmoves agent-sdk run` - Execute tasks with existing agents
  - Task execution with streaming output
  - Model override support
  - Session resumption capability

- `pmoves agent-sdk list` - List agent instances
  - Status filtering
  - Configurable limit (placeholder for SessionManager integration)

- `pmoves agent-sdk status` - Check agent status
  - NATS heartbeat monitoring
  - Active agent information (placeholder for SessionManager)

Technical Details:
- Integrated with PMOVES-BoTZ Agent SDK
- Async/await pattern for agent lifecycle management
- Interactive role selection with graceful Ctrl+C handling
- Comprehensive error handling for missing dependencies
- Auto-discovery of PMOVES-BoTZ submodule

Usage Examples:
```bash
# Interactive agent creation
pmoves agent-sdk create

# Pre-select role
pmoves agent-sdk create --role researcher

# Execute task
pmoves agent-sdk run pmoves-researcher-1735123456 "Analyze architecture"

# List agents
pmoves agent-sdk list --status active --limit 50
```

Related Documentation:
- .claude/commands/agent-sdk/create.md
- .claude/commands/agent-sdk/run.md
- .claude/commands/agent-sdk/resume.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs(agent-sdk): update CLI documentation for run and resume commands

Update user-facing documentation for agent-sdk CLI commands to reflect
the new PMOVES CLI integration pattern.

Changes:
- `.claude/commands/agent-sdk/run.md`
  - Updated from skill-based to CLI command documentation
  - Added usage examples with `pmoves agent-sdk run`
  - Documented arguments and options
  - Added troubleshooting section

- `.claude/commands/agent-sdk/resume.md`
  - Updated from skill-based to CLI command documentation
  - Added session management workflow
  - Documented session states and storage backends
  - Added troubleshooting section

Documentation Pattern:
All agent-sdk command documentation now follows a consistent pattern:
- Usage section with use cases
- Implementation section with CLI examples
- Arguments and options tables
- What It Does checklist
- Related commands section
- Notes and troubleshooting

This aligns with the create.md documentation updated in the previous
implementation phase.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(agent-sdk): address all PR #365 review comments

Fix all 14 issues from comprehensive PR review across error handling,
documentation, and code quality improvements.

Critical Fixes (4):
- Make NATS connection mandatory with ConnectionError on failure
- Add two-layer error handling to task execution
- Replace generic Exception catches with specific error types
- Exit with code 1 on all failure paths

Documentation (5):
- Correct NATS event subjects (remove non-existent events)
- Add prerequisites sections to all agent-sdk docs
- Fix example code placeholders with runnable examples
- Update model IDs (remove date suffixes)
- Document storage backends and timeouts

Improvements (5):
- Add Google-style docstrings to key functions (≥80% coverage)
- Enhance Crush configurator docstrings
- Improve list/status placeholders with NATS monitoring guidance
- Fix context manager usage pattern
- Add comprehensive timeout documentation

All syntax checks pass. Docstring coverage ≥80%.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore(submodules): update Agent-Zero, BoTZ, and ToKenism-Multi

PMOVES-Agent-Zero (5cbda82):
- Add TensorZero gateway provider configuration
- Chat and embedding providers at http://tensorzero-gateway:3000/v1

PMOVES-BoTZ (b39e3b4):
- Add agent SDK integration for Claude Agent SDK
- Add MCP bridge for external service communication
- Add glancer feature for quick data inspection
- Fix circular imports in AgentGym RL trainer
- Add gateway docker-compose and N8N MCP integration

PMOVES-ToKenism-Multi (9981589):
- Update contract schemas (audio, entities, persona)
- Update UI components (charts, simulation results)
- Add skeleton UI component
- Update integration submodules (DoX, Firefly-iii)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: Geometric framework upgrade with CHIT integration

Merge PR #393 - Geometric framework upgrade

- Merged main's github-runner-ctl service configuration
- Removed duplicate @dataclass decorator in controller.py
- Fixed env.tier-agent environment variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(geometry): GEOMETRY BUS integration, CHIT services & BoTZ env vars (#321)

Comprehensive GEOMETRY BUS integration across PMOVES.AI services with CHIT shape attribution support.

- CGP publishing to `tokenism.cgp.ready.v1` in DeepResearch and SupaSerch
- CHIT voice attribution events in Flute Gateway
- CHIT event subscriptions in Publisher Discord
- Prometheus metrics and /metrics endpoint for DeepResearch
- Proper error handling separation (build vs publish errors)
- TensorZero mode with Ollama model support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

* feat(geometry-bus): CHIT mathematical integration with persona visualization (#343)

* feat(geometry-bus): add submodules and CHIT mathematical documentation

Registers previously half-initialized submodules and adds new ones:
- PMOVES-Pinokio-Ultimate-TTS-Studio: TTS Pinokio package
- PMOVES-tensorzero: Full TensorZero codebase
- Pmoves-hyperdimensions: Three.js parametric surface visualizer

Adds PMOVESCHIT mathematical foundation documentation:
- Hyperbolic geometry (Poincaré Disk Model)
- Riemann zeta dynamics for spectral filtering
- Holographic principle for dimensional encoding
- Human_side prosodic sidecar for voice agents

This establishes the mathematical framework for CGP v2 (CHIT Geometry
Packets) used in cross-modal GEOMETRY BUS communication.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(geometry-bus): add CHIT and hyperdimensions TAC commands

Adds 7 new TAC commands for GEOMETRY BUS interaction:

CHIT Commands:
- /chit:encode - Encode data as CGP v2 packet
- /chit:decode - Decode and validate CGP v2 packets
- /chit:visualize - Render packet geometry via hyperdimensions
- /chit:bus - Publish/subscribe to GEOMETRY BUS

Hyperdimensions Commands:
- /hyperdim:render - Render parametric surfaces (Poincaré, zeta, etc.)
- /hyperdim:animate - Create animated visualizations
- /hyperdim:export - Export to GLTF, STL, PNG formats

Updates geometry-nats-subjects.md with:
- CHIT packet lifecycle events (encoded/decoded)
- Visualization request/ready events
- EvoSwarm population and solution events
- tokenism.transform.v1 for transformations
- TAC command integration table

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: align PMOVESCHIT, Flute, and persona documentation with implementation

Phase 1: Document Consolidation
- Add deprecation notices to duplicate Flute Architecture docs

Phase 2: PMOVESCHIT Core Updates
- Create IMPLEMENTATION_STATUS.md tracking TypeScript/Python modules
- Add implementation cross-references to PMOVESCHIT.md
- Add status banners to decoder specification docs

Phase 3: Flute Voice Documentation
- Create FLUTE_PROSODIC_ARCHITECTURE.md (boundary types, TTFS optimization)
- Create voice-personas.md (Supabase schema, provider configs)

Phase 4: CATACLYSM & Personas
- Create PERSONAS.md with math-enhanced 325+ persona framework
- Add implementation links to CATACLYSM_STUDIOS_INC.md

Phase 5: Cross-Reference Index
- Create documentation-index.md navigation matrix

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* feat(gateway): add consciousness demo endpoint for CGP generation

Add /workflow/consciousness_demo and /workflow/consciousness_categories
endpoints to generate CGP (Constellation Geometry Protocol) packets from
the Kuhn Landscape consciousness taxonomy (325 theories).

Features:
- Load and parse kuhn_full_taxonomy.json (Robert Lawrence Kuhn, 2024)
- Filter theories by category (materialism, dualism, panpsychism, etc.)
- Generate CGP packets with constellations and points
- Return theory metadata with proponents and descriptions

Endpoints:
- POST /workflow/consciousness_demo - Generate CGP from theories
- GET /workflow/consciousness_categories - List available categories

Includes 12 unit tests validating:
- Taxonomy loading and parsing
- Theory extraction and filtering
- CGP packet structure
- Spectrum generation per category

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(comfy-watcher): resolve undefined variables and duplicate code

Committed via Claude Code PR review fixes.

* style(notebook-sync): remove duplicate asyncio import

Committed via Claude Code PR review fixes.

* docs(services): add module docstrings for code quality compliance (#424)

- agent_zero/controller.py: NATS controller documentation
- publisher-discord/main.py: Discord publisher with env vars
- supaserch/app.py: Multimodal search orchestrator with endpoints

Brings docstring coverage above 80% threshold.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ui): add aria-label to DashboardNavigation for WCAG 2.1 accessibility (#425)

Adds aria-label='Dashboard navigation' to nav component for
WCAG 2.1 Level A compliance (screen reader accessibility).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix: CI/CD Build Fixes (#414)

* fix(ci): avoid inputs.* on non-dispatch events

* fix(ci): ensure integrations-ghcr runs on push

* fix(ci): correct GHCR build contexts

* fix(ci): unblock integrations GHCR workflow

* fix(images): include requirements.lock in builds

* fix(ci): stabilize integrations GHCR builds

* fix(supaserch): update FastAPI/Starlette lock

* fix(ci): avoid pruning action images; skip SBOM for huge builds

* chore(deps): bump next (#373)

Bumps the npm_and_yarn group with 1 update in the /pmoves/ui directory: [next](https://github.com/vercel/next.js).

Updates `next` from 16.0.9 to 16.0.10
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.0.9...v16.0.10)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.0.10
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps)(deps): bump github/codeql-action from 3 to 4 (#380)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps)(deps): bump docker/build-push-action from 5 to 6 (#382)

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps)(deps): bump actions/checkout from 4 to 6 (#381)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps)(deps): bump actions/setup-node from 4 to 6 (#379)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(ci): temporarily ignore DeepResearch upstream CVEs

* fix(ci): prune buildx cache without deleting action images

* fix(ci): avoid Trivy ENOSPC and ignore GHSA gates

* fix(ci): optimize python-tests workflow to prevent disk space issues

The GitHub Actions runner was running out of disk space during dependency
installation. This commit makes several optimizations:

1. Free disk space by removing unused components (Android, .NET, Haskell)
2. Skip heavy ML/AI packages that aren't needed for CI tests:
   - browser-use, playwright (browser automation)
   - faiss-cpu, qdrant-client (vector DB clients)
   - librosa, numba (audio processing)
   - langchain-* (LLM orchestration)
   - litellm, pymupdf (LLM & PDF utilities)
   - boto3 (AWS SDK)
   - kokoro, newspaper3k (specialty libraries)

3. Enable pip caching for faster subsequent runs

All tests use proper mocking and don't require these heavy dependencies.
Tests continue to pass locally with this configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore(pmoves): route cloudflare/workers targets via DC

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* feat(cli): Add PMOVES Agent SDK CLI Wizard & Rebrand Crush to PMOVES (#365) (#423)

* feat(cli): rebrand Crush CLI to PMOVES CLI

Update user-facing branding from "Crush CLI" to "PMOVES CLI" while
maintaining backward compatibility with existing Crush infrastructure.

Changes:
- Update crush_app help text: "Crush CLI integration" → "PMOVES CLI integration"
- Update crush_configurator.py docstring to emphasize PMOVES deployment
- Update command help texts for setup/status/preview commands
- Update user-facing documentation in .claude/commands/crush/

Rationale:
The "Crush" name originated as an internal codename but the production
CLI should reflect the PMOVES brand for consistency with the broader
PMOVES.AI ecosystem. The underlying "crush" command name and file
paths are preserved for backward compatibility.

Modified Files:
- pmoves/tools/mini_cli.py
- pmoves/tools/crush_configurator.py
- .claude/commands/crush/setup.md
- .claude/commands/crush/status.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)



* feat(cli): add PMOVES Agent SDK commands to mini CLI

Implement agent-sdk sub-commands for creating and managing PMOVES Agent
instances with full ecosystem access via interactive CLI wizard.

Features Implemented:
- `pmoves agent-sdk create` - Interactive wizard for agent creation
  - 5 agent roles: researcher, code-reviewer, media-processor, knowledge-manager, general
  - Role-based tool and subagent configuration
  - Automatic NATS, TensorZero, and Hi-RAG connection
  - Unique agent ID generation with timestamps
  - Beautiful formatted output with configuration summary

- `pmoves agent-sdk run` - Execute tasks with existing agents
  - Task execution with streaming output
  - Model override support
  - Session resumption capability

- `pmoves agent-sdk list` - List agent instances
  - Status filtering
  - Configurable limit (placeholder for SessionManager integration)

- `pmoves agent-sdk status` - Check agent status
  - NATS heartbeat monitoring
  - Active agent information (placeholder for SessionManager)

Technical Details:
- Integrated with PMOVES-BoTZ Agent SDK
- Async/await pattern for agent lifecycle management
- Interactive role selection with graceful Ctrl+C handling
- Comprehensive error handling for missing dependencies
- Auto-discovery of PMOVES-BoTZ submodule

Usage Examples:
```bash
pmoves agent-sdk create

pmoves agent-sdk create --role researcher

pmoves agent-sdk run pmoves-researcher-1735123456 "Analyze architecture"

pmoves agent-sdk list --status active --limit 50
```

Related Documentation:
- .claude/commands/agent-sdk/create.md
- .claude/commands/agent-sdk/run.md
- .claude/commands/agent-sdk/resume.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)



* docs(agent-sdk): update CLI documentation for run and resume commands

Update user-facing documentation for agent-sdk CLI commands to reflect
the new PMOVES CLI integration pattern.

Changes:
- `.claude/commands/agent-sdk/run.md`
  - Updated from skill-based to CLI command documentation
  - Added usage examples with `pmoves agent-sdk run`
  - Documented arguments and options
  - Added troubleshooting section

- `.claude/commands/agent-sdk/resume.md`
  - Updated from skill-based to CLI command documentation
  - Added session management workflow
  - Documented session states and storage backends
  - Added troubleshooting section

Documentation Pattern:
All agent-sdk command documentation now follows a consistent pattern:
- Usage section with use cases
- Implementation section with CLI examples
- Arguments and options tables
- What It Does checklist
- Related commands section
- Notes and troubleshooting

This aligns with the create.md documentation updated in the previous
implementation phase.

🤖 Generated with [Claude Code](https://claude.com/claude-code)



* fix(agent-sdk): address all PR #365 review comments

Fix all 14 issues from comprehensive PR review across error handling,
documentation, and code quality improvements.

Critical Fixes (4):
- Make NATS connection mandatory with ConnectionError on failure
- Add two-layer error handling to task execution
- Replace generic Exception catches with specific error types
- Exit with code 1 on all failure paths

Documentation (5):
- Correct NATS event subjects (remove non-existent events)
- Add prerequisites sections to all agent-sdk docs
- Fix example code placeholders with runnable examples
- Update model IDs (remove date suffixes)
- Document storage backends and timeouts

Improvements (5):
- Add Google-style docstrings to key functions (≥80% coverage)
- Enhance Crush configurator docstrings
- Improve list/status placeholders with NATS monitoring guidance
- Fix context manager usage pattern
- Add comprehensive timeout documentation

All syntax checks pass. Docstring coverage ≥80%.

🤖 Generated with [Claude Code](https://claude.com/claude-code)



---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: CHIT/Geometry Framework for Hardened Edition (#412)

* feat: Geometric framework upgrade with CHIT integration

Merge PR #393 - Geometric framework upgrade

- Merged main's github-runner-ctl service configuration
- Removed duplicate @dataclass decorator in controller.py
- Fixed env.tier-agent environment variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(geometry): GEOMETRY BUS integration, CHIT services & BoTZ env vars (#321)

Comprehensive GEOMETRY BUS integration across PMOVES.AI services with CHIT shape attribution support.

- CGP publishing to `tokenism.cgp.ready.v1` in DeepResearch and SupaSerch
- CHIT voice attribution events in Flute Gateway
- CHIT event subscriptions in Publisher Discord
- Prometheus metrics and /metrics endpoint for DeepResearch
- Proper error handling separation (build vs publish errors)
- TensorZero mode with Ollama model support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

* feat(geometry-bus): CHIT mathematical integration with persona visualization (#343)

* feat(geometry-bus): add submodules and CHIT mathematical documentation

Registers previously half-initialized submodules and adds new ones:
- PMOVES-Pinokio-Ultimate-TTS-Studio: TTS Pinokio package
- PMOVES-tensorzero: Full TensorZero codebase
- Pmoves-hyperdimensions: Three.js parametric surface visualizer

Adds PMOVESCHIT mathematical foundation documentation:
- Hyperbolic geometry (Poincaré Disk Model)
- Riemann zeta dynamics for spectral filtering
- Holographic principle for dimensional encoding
- Human_side prosodic sidecar for voice agents

This establishes the mathematical framework for CGP v2 (CHIT Geometry
Packets) used in cross-modal GEOMETRY BUS communication.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(geometry-bus): add CHIT and hyperdimensions TAC commands

Adds 7 new TAC commands for GEOMETRY BUS interaction:

CHIT Commands:
- /chit:encode - Encode data as CGP v2 packet
- /chit:decode - Decode and validate CGP v2 packets
- /chit:visualize - Render packet geometry via hyperdimensions
- /chit:bus - Publish/subscribe to GEOMETRY BUS

Hyperdimensions Commands:
- /hyperdim:render - Render parametric surfaces (Poincaré, zeta, etc.)
- /hyperdim:animate - Create animated visualizations
- /hyperdim:export - Export to GLTF, STL, PNG formats

Updates geometry-nats-subjects.md with:
- CHIT packet lifecycle events (encoded/decoded)
- Visualization request/ready events
- EvoSwarm population and solution events
- tokenism.transform.v1 for transformations
- TAC command integration table

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: align PMOVESCHIT, Flute, and persona documentation with implementation

Phase 1: Document Consolidation
- Add deprecation notices to duplicate Flute Architecture docs

Phase 2: PMOVESCHIT Core Updates
- Create IMPLEMENTATION_STATUS.md tracking TypeScript/Python modules
- Add implementation cross-references to PMOVESCHIT.md
- Add status banners to decoder specification docs

Phase 3: Flute Voice Documentation
- Create FLUTE_PROSODIC_ARCHITECTURE.md (boundary types, TTFS optimization)
- Create voice-personas.md (Supabase schema, provider configs)

Phase 4: CATACLYSM & Personas
- Create PERSONAS.md with math-enhanced 325+ persona framework
- Add implementation links to CATACLYSM_STUDIOS_INC.md

Phase 5: Cross-Reference Index
- Create documentation-index.md navigation matrix

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* feat(gateway): add consciousness demo endpoint for CGP generation

Add /workflow/consciousness_demo and /workflow/consciousness_categories
endpoints to generate CGP (Constellation Geometry Protocol) packets from
the Kuhn Landscape consciousness taxonomy (325 theories).

Features:
- Load and parse kuhn_full_taxonomy.json (Robert Lawrence Kuhn, 2024)
- Filter theories by category (materialism, dualism, panpsychism, etc.)
- Generate CGP packets with constellations and points
- Return theory metadata with proponents and descriptions

Endpoints:
- POST /workflow/consciousness_demo - Generate CGP from theories
- GET /workflow/consciousness_categories - List available categories

Includes 12 unit tests validating:
- Taxonomy loading and parsing
- Theory extraction and filtering
- CGP packet structure
- Spectrum generation per category

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Codex Agent <codex-agent@example.com>

* fix: Infrastructure Fixes (#415)

* fix(docker): correct build contexts and requirements.lock references (#348)

* fix(docker): correct build contexts and requirements.lock references

Fixes multiple service build failures during fresh start:

- consciousness-service: Change build context from ./services to
  ./services/consciousness-service for proper Dockerfile COPY paths
- session-context-worker: Copy both requirements.txt and requirements.lock
  (requirements.txt references requirements.lock via -r directive)
- pdf-ingest: Add requirements.lock to COPY command
- hi-rag-gateway: Add requirements.lock to COPY command
- hi-rag-gateway-gpu: Change port from 8090 to 8110 to avoid conflict
  with retrieval-eval service

These fixes enable all 49 PMOVES services to build and start successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(pr-review): address critical issues from code review

Fixes identified by PR review agents:

1. Comment out docker-mcp-gateway service - image mcp/gateway:latest
   does not exist yet (requires Docker MCP GA release)
2. Add start_period: 30s to gpu-orchestrator healthcheck to prevent
   premature unhealthy status during GPU initialization
3. Update CLAUDE.md documentation: hi-rag-gateway-gpu port 8090→8110

Note: Archon hostname case-sensitivity is NOT an issue - the code
already lowercases hostnames before comparison (line 626).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(compose): address CodeRabbit review comments

- Mark tier env files as optional with ? suffix (prevents startup failures)
- Fix botz-gateway hostname: supabase-kong → supabase_kong_PMOVES.AI
- Upgrade Qdrant v1.15.0 → v1.16.2 (latest stable)

Addresses PR #348 review comments:
- Lines 5-21: Optional env_file syntax for tier anchors
- Line 93: Qdrant version bump
- Line 978: Consistent hostname with other services

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex Agent <codex-agent@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* fix(flute-gateway): use correct health endpoint for ffmpeg-whisper

The ffmpeg-whisper service exposes /healthz not /health.
Updated WhisperProvider to use the correct endpoint.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(docker): correct COPY paths for services using root context

chat-relay and flute-gateway Dockerfiles used COPY paths relative to
their own directories, but docker-compose.yml sets context=. (pmoves dir).

Fixed paths to use services/<name>/ prefix to match the build context.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(docker): use pip constraints to prevent onnx source build

- Pre-install onnx==1.16.0 (has pre-built wheels)
- Use PIP_CONSTRAINT to prevent version conflicts
- Fixes build failure on WSL2/Docker

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(compose): add supabase network bridge for Hi-RAG

Add external network reference to Supabase CLI stack (pmoves-net) enabling
direct container-to-container communication between PMOVES services and
Supabase realtime.

Changes:
- Add supabase_net external network definition
- Add supabase_net to hi-rag-gateway-v2 networks
- Add supabase_net to hi-rag-gateway-v2-gpu networks

This enables Hi-RAG to connect directly to supabase_realtime_PMOVES.AI
without routing through host.docker.internal, reducing startup latency
and improving reliability on Docker restarts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(open-notebook): integration audit fixes and documentation

- Add graceful degradation to notebook-sync (offline mode if URL missing)
- Add startup validation warnings to Agent Zero for missing notebook config
- Fix UI endpoint contract for notebook sources (use /api/sources)
- Fix Agent Zero docker-compose to use host.docker.internal:5055
- Update env.shared.example with required/optional variable docs
- Create INTEGRATION_AUDIT.md documentation
- Update Open Notebook README with troubleshooting

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(config): update Open Notebook default to PMOVES fork image

Change OPEN_NOTEBOOK_IMAGE from upstream lfnovo/open-notebook to
ghcr.io/powerfulmoves/pmoves-open-notebook:v1-latest

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: address CodeRabbit P0 items from PR #336 review

- Add README for chat-relay service (Supabase relay)
- Add README for flute-gateway service (voice communication)
- Update archon README with network tier and profile docs
- Update hi-rag-gateway-v2 README with network tier and dependencies
- Align submodules to hardened branches:
  - PMOVES-BoTZ
  - PMOVES-ToKenism-Multi
  - PMOVES-Wealth
  - PMOVES-crush

Part of Phase 2 deployment plan execution.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* TensorZero: Local-First Architecture & Supabase Integration (#336)

* feat(tensorzero): impl cloud-first rou…
@POWERFULMOVES
POWERFULMOVES deleted the fix/pr416-aria-label branch March 7, 2026 21:47
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.

1 participant