Skip to content

Commit 0c14a9b

Browse files
committed
Release 0.1.0
1 parent 820f1b3 commit 0c14a9b

File tree

226 files changed

+17237
-1420
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

226 files changed

+17237
-1420
lines changed

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Changelog
2+
3+
## 0.1.0 - 2026-03-24
4+
5+
### Added
6+
7+
- AI editor bridge for `insert-block`, `update-block`, `delete-block`, and `execute-reactive`.
8+
- Diff preview flow with pending diff queue, block-level accept/reject, and "Fix with AI" error repair path.
9+
- Inline AI completion endpoint and CodeMirror ghost text integration.
10+
- Automation dashboard surfaces including task list/detail, recording controls, workflow list/builder, scheduler state, channel config, agent activity, safety dashboard, and plan execution view.
11+
- Desktop automation backend capabilities for audit trail, E-Stop, recorder, input guard, vision capture, OCR, voice, integrations, and custom tool registration.
12+
- Learning mode runtime with guide blocks, hint accordion, exercise feedback, progress dashboard data flow, adaptive teaching tools, and achievement tracking.
13+
- Report mode, mobile bottom bar, manifest, and service worker assets for PWA-oriented output viewing.
14+
- Widget renderer coverage for button, toggle, slider, number, dropdown, textarea, progress, and table descriptors.
15+
- Runtime process supervisor and broader execution capability plumbing.
16+
- Frontend smoke tests covering automation, learning, and report mode flows.
17+
18+
### Changed
19+
20+
- Renamed the marimo-compatible document adapter to `reactiveAppFormat`.
21+
- Expanded tool rendering across editor, automation, learning, and integration actions.
22+
- Split large frontend bundles with AutomationMode lazy loading and vendor manual chunking.
23+
- Tightened Svelte 5 runes and accessibility handling across key editor components.
24+
- Updated packaging and launcher documentation to reflect trusted publishing and exact wheel distribution policy.
25+
26+
### Fixed
27+
28+
- Reduced false positives in document dependency analysis for nested scopes and comprehension variables.
29+
- Improved engine/runtime behavior around worker management, variables, and process lifecycle.
30+
- Cleaned frontend warning sources in dialog, toast, mode switcher, hint, guide, and widget surfaces.
31+
32+
### Verification
33+
34+
- `uv run pytest tests/ -q` -> `403 passed, 6 skipped`
35+
- `editor/npm run test` -> `19 passed`
36+
- `editor/npm run build` -> success
37+
- `uv build` -> `codaro-0.1.0.tar.gz`, `codaro-0.1.0-py3-none-any.whl`

CLAUDE.md

Lines changed: 58 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,15 @@
2121

2222
- Codaro는 단순 노트북 클론이 아니다.
2323
- Codaro는 Python 중심의 `웹 + 모바일 + 로컬` 공통 편집기 런타임을 목표로 한다.
24-
- 핵심 성격:
25-
- 편집기
26-
- 실행기
27-
- 학습기
28-
- 자동화 앱 빌더
29-
- 다른 도메인 앱이 올라가는 범용 작업면
24+
- Codaro는 **코드가 인터페이스가 되는 개인 자동화 스튜디오**다.
25+
- 5가지 성격이 하나의 런타임 위에 합쳐진다:
26+
- **편집기** — 코드를 쓰고 실행하는 작업면
27+
- **학습기** — AI와 대화하며 프로그래밍을 배우는 교실
28+
- **자동화 빌더** — 태스크/워크플로우/스케줄을 만들고 실행하는 자동화 허브
29+
- **리포트 뷰어** — 코드 없이 결과만 보는 대시보드
30+
- **AI 에이전트 플랫폼** — AI에게 눈(vision), 귀(voice), 손(input)을 달아주는 감각계
31+
- 이 다섯 가지가 **하나의 연속된 흐름**으로 동작한다:
32+
- 대화로 학습 → 에디터에서 코드 작성 → 태스크로 등록 → 스케줄 자동 실행 → 외부 채널로 결과 전달 → 폰에서 확인/조작
3033
- `eddmpython`의 notebook/eddmlab은 참고 구현일 뿐이며, Codaro의 source of truth는 Codaro 코드와 문서다.
3134

3235
## Codaro 확정 사상 (절대 흔들리지 않는 원칙)
@@ -54,7 +57,7 @@
5457
- 코드는 모듈 레벨 (들여쓰기 0칸). 함수로 감싸지 않는다.
5558
- `python file.py`로 그대로 실행 가능하다.
5659
- VS Code, Spyder, Jupytext가 동일한 `# %%` 포맷을 인식한다.
57-
- marimo/ipynb 호환 import/export는 유지한다.
60+
- reactive-app/ipynb 호환 import/export는 유지한다.
5861

5962
### 4. 실행 환경: Pyodide 기본, 로컬 확장
6063

@@ -102,6 +105,44 @@
102105
- 프론트엔드는 `<meta name="codaro-base">` 태그에서 root_path를 자동 감지한다.
103106
- GUI에서 되는 모든 것은 API로도 된다 (시스템적 수정 가능).
104107

108+
### 8. 자동화 + 태스크 + 리포트
109+
110+
- 사용자가 작성하거나 AI가 생성한 Python 문서(.py)는 그 자체가 **실행 가능한 태스크**가 된다.
111+
- 태스크는 스케줄(@every_5m, @daily 등)에 자동 실행되거나, 웹훅으로 외부 트리거되거나, 수동 실행할 수 있다.
112+
- 여러 태스크를 의존성(DAG)으로 묶은 **워크플로우**가 가능하다.
113+
- 모든 자동화 액션은 **감사 로그**(audit trail, JSONL)에 기록된다.
114+
- 태스크 실행 결과(변수, stdout, 에러)는 리포트로 조회 가능하다.
115+
- **비상 정지(E-Stop)**가 모든 자동화를 즉시 중단시킨다.
116+
117+
### 9. 다중 에디터 모드
118+
119+
- Codaro는 하나의 런타임 위에 **여러 얼굴**을 가진다.
120+
- **코드 에디터**: 셀 편집 + 실행 + 리액티브 데이터플로우. 개발자의 작업 공간.
121+
- **학습 에디터**: 커리큘럼 브라우저 + 가이드 카드 + 퀴즈 + 성취 추적. 학습자의 교실.
122+
- **리포트/앱 에디터**: 코드는 숨기고 출력만 표시. 대시보드, 프레젠테이션, 자동화 결과 뷰어.
123+
- 세 모드 모두 같은 문서 모델, 같은 실행 엔진, 같은 API 위에서 동작한다.
124+
- 사용자는 대화로 학습 → 에디터에서 코드 작성 → 태스크로 등록 → 스케줄 자동 실행 → 결과 리포트 확인의 **연속 워크플로우**를 가진다.
125+
126+
### 10. AI 감각계 — 눈, 귀, 손
127+
128+
- AI에게 데스크톱을 보고, 듣고, 조작할 수 있는 능력을 준다.
129+
- **눈(Vision)**: OpenCV + dxcam/mss 화면 캡처, PaddleOCR/EasyOCR 텍스트 인식, 템플릿 매칭/윤곽선 분석 요소 탐지.
130+
- **귀(Voice)**: Whisper 음성 인식 → CommandParser로 구조화된 명령 변환.
131+
- **손(Input)**: PyAutoGUI/DirectInput/Accessibility API로 마우스 클릭, 키보드 입력, 드래그, 핫키. InputGuard가 속도/영역 제한으로 안전 보장.
132+
- **녹화 → 코드**: 사용자의 동작을 녹화 → 실행 가능한 Python 코드(Percent Format)로 자동 생성.
133+
- **자동화 루프**: 다단계 액션 + 검증(화면 텍스트 확인) + 재시도 + 상태 머신.
134+
- 이 모든 감각은 AI tool_use로 노출되어 AI가 "보고 → 판단하고 → 행동하는" 에이전트로 동작한다.
135+
- xlwings 같은 도메인 특화 라이브러리로 Excel/Office 자동화도 같은 구조에 탑재 가능.
136+
137+
### 11. 외부 채널 + 모바일 조작
138+
139+
- Codaro는 사용자가 항상 데스크톱 앞에 있지 않아도 동작한다.
140+
- **MessageBridge**: Slack, Discord, 커스텀 Webhook으로 태스크 결과/알림 전송.
141+
- **Webhook 트리거**: 외부에서 HTTP 호출로 태스크를 실행 가능.
142+
- 사용자는 폰에서 Slack/Discord 알림을 받고, 웹훅으로 태스크를 트리거하고, 결과를 확인할 수 있다.
143+
- 향후 모바일 반응형 UI + PWA로 직접 에디터 접근도 가능.
144+
- Codaro가 로컬 머신에서 돌면서 외부 세계와 양방향 소통하는 **개인 자동화 허브** 역할.
145+
105146
## 기본 기술 규칙
106147

107148
- 기본 런타임은 Python `3.12+`를 기준으로 한다.
@@ -193,7 +234,7 @@
193234
## 현재 코드 레이아웃
194235

195236
- `src/codaro/api/` : FastAPI router 계층, 서버 상태, 요청 모델, bootstrap/document/kernel/system/curriculum/spa 조립
196-
- `src/codaro/document/` : 문서 모델, percent/codaro/marimo/ipynb 파서와 writer, AST 의존 분석
237+
- `src/codaro/document/` : 문서 모델, percent/codaro/reactive-app/ipynb 파서와 writer, AST 의존 분석
197238
- `src/codaro/kernel/` : 투명 스코프 격리 커널, 리액티브 실행, SessionManager, WebSocket
198239
- `src/codaro/curriculum/` : YAML 콘텐츠 로더, 노트북 변환기, 진행 추적, 학습 사상, 연습 체커
199240
- `src/codaro/system/` : 파일 시스템 CRUD (`fileOps`) 및 패키지 관리 (`packageOps`)
@@ -227,11 +268,16 @@
227268
- 파일/폴더/함수/변수는 `camelCase`, 클래스는 `PascalCase`, 상수는 `UPPER_CASE`를 사용한다.
228269
- 파일 삭제는 금지하고, 정리가 필요하면 `_backup/`으로 이동하는 방식을 우선한다.
229270
- 인라인 주석은 넣지 않는다.
230-
- bare except 금지
231-
- `except Exception:` 남발 금지
232-
- try-except를 구조 대용으로 쓰지 않는다.
271+
- bare except (`except:`) 절대 금지
272+
- `except Exception: pass`는 금지. 로깅 없는 삼킴은 허용하지 않는다.
273+
- `except Exception:` 사용 시 반드시: (1) 예외 변수 바인딩 (`as exc`), (2) 최소 logger.debug 이상 로깅, (3) 좁힐 수 없는 사유가 명확해야 한다.
274+
- 예외 타입은 가능한 한 좁힌다 (json.JSONDecodeError, OSError 등 구체 타입 우선).
275+
- try-except를 if-else 대용으로 쓰지 않는다.
276+
- asyncio.create_task()에는 done_callback을 붙여 예외를 수면 위로 올린다.
277+
- dispose/cleanup 패턴은 `errorGuard.safeDispose()`를 사용한다.
278+
- raise 시 원본 예외 체인을 유지한다 (`raise ... from exc`).
233279
- 사용자 입력 검증은 가능하면 early return으로 처리한다.
234-
- 에러를 삼키지 않는다.
280+
- ruff 린트 규칙 BLE001, S110, S112, TRY400이 pyproject.toml에 설정되어 있다. 정당한 면제는 `# noqa:` 주석으로 처리한다.
235281
- 초기 단계일수록 "대충 동작"보다 "계층이 맞는가"를 우선한다.
236282

237283
## AI 투명성 원칙

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ Codaro is a programmable studio that combines an editor, execution runtime, lear
1414

1515
Codaro started by studying [marimo](https://github.com/marimo-team/marimo)'s reactive cell model as an architectural benchmark. The editor chrome was initially built to match marimo's DOM structure as a reference implementation exercise. Codaro diverges in its execution model (transparent scope isolation), default format (percent format `.py`), execution environment (Pyodide-first with local fallback), and scope (integrated learning system, automation, widget bridge).
1616

17-
Codaro is not a fork of marimo and shares no source code. It is an independent project that supports marimo format import/export for compatibility.
17+
Codaro is not a fork of marimo and shares no source code. It is an independent project that supports reactive-app format import/export for marimo compatibility.
1818

1919
## Architecture
2020

2121
```
2222
src/codaro/ Python backend (FastAPI, document model, kernel, reactive runtime)
2323
api/ Router layer, server state, request models
24-
document/ Document model, percent/codaro/marimo/ipynb parsers
24+
document/ Document model, percent/codaro/reactive-app/ipynb parsers
2525
kernel/ Server-side execution sessions, WebSocket protocol
2626
runtime/ Engine interface, LocalEngine
2727
system/ File system and package management API
@@ -50,7 +50,7 @@ uv run codaro app path.py
5050

5151
# Export
5252
uv run codaro export path.py --format codaro
53-
uv run codaro export path.py --format marimo
53+
uv run codaro export path.py --format reactive-app
5454
uv run codaro export path.py --format ipynb
5555
```
5656

2.26 MB
Loading

assets/brand/mascot/source/.gitkeep

Lines changed: 0 additions & 1 deletion
This file was deleted.
-2.51 MB
Binary file not shown.
-2.53 MB
Binary file not shown.

assets/brand/mascot/work/.gitkeep

Lines changed: 0 additions & 1 deletion
This file was deleted.
-44.2 KB
Binary file not shown.
-199 KB
Binary file not shown.

0 commit comments

Comments
 (0)