Files
hristudio/docs/project-status.md
Sean O'Connor cf3597881b docs: consolidate and archive documentation
- Move 30+ outdated docs to docs/_archive/
- Move obsolete root files to _archive/
- Update README.md (Better Auth, current features)
- Update docs/README.md (new architecture diagram)
- Update docs/quick-reference.md (consolidated)
- Update docs/project-status.md (March 2026 state)
- Update docs/nao6-quick-reference.md (14 actions, Docker services)
- Update docs/implementation-guide.md (Better Auth, git submodule)
- Update docs/proposal.tex (timeline updates)
- Archive errors.txt, plugin_dump.json, test HTML files
2026-03-22 16:38:28 -04:00

189 lines
5.7 KiB
Markdown
Executable File

# HRIStudio Project Status
## Current Status: Active Development
**Project Version**: 1.0.0
**Last Updated**: March 2026
**Overall Completion**: 98%
**Status**: Thesis research phase
---
## Executive Summary
HRIStudio is a complete platform for Wizard-of-Oz HRI research. Key milestones achieved:
### Recent Updates (March 2026)
- ✅ WebSocket real-time trial updates implemented
- ✅ Better Auth migration complete (replaced NextAuth.js)
- ✅ Docker integration for NAO6 (3 services: nao_driver, ros_bridge, ros_api)
- ✅ Conditional branching with wizard choices and convergence
- ✅ 14 NAO6 robot actions (speech, movement, gestures, sensors, LEDs, animations)
- ✅ Plugin identifier system for clean plugin lookup
- ✅ Seed script with branching experiment structure
### Key Achievements
- ✅ Complete backend with 12 tRPC routers
- ✅ Professional UI with unified experiences
- ✅ Full TypeScript coverage (strict mode)
- ✅ Role-based access control (4 roles)
- ✅ 31 database tables with relationships
- ✅ Experiment designer with 26+ core blocks
- ✅ Real-time trial execution wizard interface
- ✅ NAO6 robot integration via ROS2 Humble
---
## Architecture
### Three-Layer Architecture
```
┌─────────────────────────────────────────────────────┐
│ User Interface Layer │
│ ├── Experiment Designer (visual programming) │
│ ├── Wizard Interface (trial execution) │
│ ├── Observer View (live monitoring) │
│ └── Participant View (thesis study) │
├─────────────────────────────────────────────────────┤
│ Data Management Layer │
│ ├── PostgreSQL + Drizzle ORM │
│ ├── tRPC API (12 routers) │
│ └── Better Auth (role-based auth) │
├─────────────────────────────────────────────────────┤
│ Robot Integration Layer │
│ ├── Plugin system (robot-agnostic) │
│ ├── ROS2 via rosbridge WebSocket │
│ └── Docker deployment (nao_driver, ros_bridge) │
└─────────────────────────────────────────────────────┘
```
### Plugin Identifier System
```
plugins table:
- id: UUID (primary key)
- identifier: varchar (unique, e.g. "nao6-ros2")
- name: varchar (display, e.g. "NAO6 Robot (ROS2)")
- robotId: UUID (optional FK to robots)
- actionDefinitions: JSONB
actions table:
- type: "plugin.action" (e.g., "nao6-ros2.say_with_emotion")
- pluginId: varchar (references plugins.identifier)
```
---
## Branching Flow
Experiment steps support conditional branching with wizard choices:
```
Step 3 (Comprehension Check)
└── wizard_wait_for_response
├── Click "Correct" → setLastResponse("Correct") → nextStepId=step4a
└── Click "Incorrect" → setLastResponse("Incorrect") → nextStepId=step4b
Step 4a/4b (Branches)
└── conditions.nextStepId: step5.id → convergence point
Step 5 (Story Continues)
└── Linear progression to Step 6
```
---
## NAO6 Robot Actions (14 total)
| Category | Actions |
|----------|---------|
| Speech | say, say_with_emotion, wave_goodbye |
| Movement | walk, turn, move_to_posture |
| Gestures | play_animation, gesture |
| Sensors | get_sensors, bumper_state, touch_state |
| LEDs | set_eye_leds, set_breathing_lights |
---
## Tech Stack
| Component | Technology | Version |
|-----------|------------|---------|
| Framework | Next.js | 15-16.x |
| Language | TypeScript | 5.x (strict) |
| Database | PostgreSQL | 14+ |
| ORM | Drizzle | latest |
| Auth | NextAuth.js | v5 |
| API | tRPC | latest |
| UI | Tailwind + shadcn/ui | latest |
| Real-time | WebSocket | with polling fallback |
| Robot | ROS2 Humble | via rosbridge |
| Package Manager | Bun | latest |
---
## Development Status
### Completed Features
| Feature | Status | Notes |
|---------|--------|-------|
| Database Schema | ✅ | 31 tables |
| Authentication | ✅ | 4 roles |
| Experiment Designer | ✅ | 26+ blocks |
| Wizard Interface | ✅ | 3-panel design |
| Real-time Updates | ✅ | WebSocket |
| Plugin System | ✅ | Robot-agnostic |
| NAO6 Integration | ✅ | Docker deployment |
| Conditional Branching | ✅ | Wizard choices |
| Mock Robot | ✅ | Development mode |
### Known Issues
| Issue | Status | Notes |
|-------|--------|-------|
| robots.executeSystemAction | Known error | Fallback works |
---
## SSH Deployment Commands
```bash
# Local development
bun dev
# Database
bun db:push # Push schema changes
bun db:seed # Seed with test data
bun run docker:up # Start PostgreSQL
# Quality
bun typecheck # TypeScript validation
bun lint # ESLint
```
---
## Thesis Timeline
Current phase: **March 2026** - Implementation complete, preparing user study
| Phase | Status | Date |
|-------|--------|------|
| Proposal | ✅ | Sept 2025 |
| IRB Application | ✅ | Dec 2025 |
| Implementation | ✅ | Feb 2026 |
| User Study | 🔄 In Progress | Mar-Apr 2026 |
| Defense | Scheduled | April 2026 |
---
## Next Steps
1. Complete user study (10-12 participants)
2. Data analysis and thesis writing
3. Final defense April 2026
4. Open source release
---
*Last Updated: March 22, 2026*