Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: CI

on:
push:
branches:
- master
pull_request:

permissions:
Expand Down
16 changes: 15 additions & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,26 @@

Arduino firmware and a macOS companion for the Waveshare ESP32-S3-Touch-AMOLED-2.16. The device receives real Codex account usage and task status from the local computer over encrypted BLE. Codex credentials are never stored on the ESP32.

![Codex Usage Display hardware](docs/device-photo.jpg)
<p align="center">
<img src="docs/device-photo.jpg" alt="Codex Usage Display hardware" width="480">
</p>

> Current status: first usable hardware release. The firmware, BLE companion,
> global hooks, tests, and PlatformIO build are working end to end. Only the
> specified Waveshare board and macOS are currently supported.

## Contents

- [Features](#features)
- [Recommended: PlatformIO](#recommended-platformio)
- [Arduino IDE (alternative)](#arduino-ide-alternative)
- [Start the macOS Companion](#start-the-macos-companion)
- [Repository structure](#repository-structure)
- [Tests](#tests)
- [Data semantics and boundaries](#data-semantics-and-boundaries)
- [Current limitations](#current-limitations)
- [Contributing, security, and licenses](#contributing-security-and-licenses)

## Features

- CO5300 480 × 480 AMOLED over QSPI
Expand Down
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,25 @@

Waveshare ESP32-S3-Touch-AMOLED-2.16 的 Arduino 固件和 macOS Companion。设备通过加密 BLE 接收本机 Codex 的真实账户用量和任务状态,不在 ESP32 中保存 Codex 凭据。

![Codex Usage Display 实机照片](docs/device-photo.jpg)
<p align="center">
<img src="docs/device-photo.jpg" alt="Codex Usage Display 实机照片" width="480">
</p>

> 当前状态:首个可用硬件版本。固件、BLE Companion、全局 Hook、测试和
> PlatformIO 构建均已打通;目前只支持指定的 Waveshare 开发板和 macOS。

## 目录

- [当前已实现](#当前已实现)
- [推荐:使用 PlatformIO](#推荐使用-platformio)
- [Arduino IDE(兼容方式)](#arduino-ide兼容方式)
- [启动 macOS Companion](#启动-macos-companion)
- [代码结构](#代码结构)
- [测试](#测试)
- [数据口径与边界](#数据口径与边界)
- [当前限制](#当前限制)
- [贡献、安全与许可证](#贡献安全与许可证)

## 当前已实现

- CO5300 480 × 480 AMOLED(QSPI)
Expand Down
2 changes: 1 addition & 1 deletion companion/codex_display/hook_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ async def process_event(self, event: Dict[str, object]) -> None:
self._turns[key] = PendingTurn(
turn_id=turn_id,
transcript_path=path,
phase="pending_start",
phase="pending_start" if path is not None else "active",
created_at=now,
counted=True,
)
Expand Down
3 changes: 3 additions & 0 deletions companion/tests/test_hook_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ async def test_pathless_stop_clears_sidechat_immediately(self):
await self.tracker.process_event(submit)
self.assertEqual(self.tracker.extra_count(set()), 1)

await self.tracker.reconcile(now=111)
self.assertEqual(self.tracker.extra_count(set()), 1)

stop = self._event("Stop")
stop["transcript_path"] = None
await self.tracker.process_event(stop)
Expand Down