diff --git a/README.md b/README.md index ebcc910..6b75a9f 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,11 @@ **面向 Windows AI Agent 的本地优先工作上下文记忆层。** +![WinChronicle hero: UIA-first, redaction-first, read-only MCP](docs/assets/winchronicle-hero.png) + +*Windows UIA signals become redacted local memory and read-only agent context, +without default screenshots, keylogging, cloud upload, or desktop control.* + WinChronicle turns Microsoft UI Automation context into local, searchable, auditable work memory for tool-capable agents. It is built for developers who want Windows workflow context without default screenshots, OCR, keylogging, @@ -20,16 +25,6 @@ WinChronicle 将 Microsoft UI Automation 上下文转成本地可搜索、可审 > narrower Windows-first, UIA-first, local-first, auditable, read-only MCP > memory layer rather than a full replica of OpenAI's Codex Chronicle feature. -```mermaid -flowchart LR - desktop["Windows UIA context"] --> privacy["privacy + redaction"] - privacy --> captures["local captures + SQLite search"] - captures --> memory["deterministic Markdown memory"] - captures --> sessions["finite monitor sessions + HTML reports"] - sessions --> mcp["read-only MCP context"] - memory --> mcp -``` - ## Why It Exists AI coding agents are useful when they understand the surrounding workflow, but diff --git a/README.zh-CN.md b/README.zh-CN.md index d09c005..226dd68 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -4,6 +4,11 @@ **面向 Windows AI Agent 的本地优先工作上下文记忆层。** +![WinChronicle hero: UIA-first, redaction-first, read-only MCP](docs/assets/winchronicle-hero.png) + +*Windows UIA 信号会先经过脱敏,再变成本地工作记忆和只读 Agent 上下文; +默认不启用截图、键盘记录、云上传或桌面控制。* + WinChronicle 将 Microsoft UI Automation 上下文转成本地可搜索、可审计的 工作记忆,让工具型 Agent 能读取 Windows 工作流上下文,同时默认不启用 截图、OCR、键盘记录、剪贴板采集、云上传或桌面控制。 @@ -12,16 +17,6 @@ WinChronicle 将 Microsoft UI Automation 上下文转成本地可搜索、可审 > 它刻意聚焦更窄的 Windows-first、UIA-first、local-first、auditable、 > read-only MCP 工作上下文记忆层,而不是复刻 OpenAI Codex Chronicle 的完整产品面。 -```mermaid -flowchart LR - desktop["Windows UIA 上下文"] --> privacy["隐私检查 + 脱敏"] - privacy --> captures["本地 captures + SQLite 搜索"] - captures --> memory["确定性 Markdown 记忆"] - captures --> sessions["有限 monitor 会话 + HTML 报告"] - sessions --> mcp["只读 MCP 上下文"] - memory --> mcp -``` - ## 为什么存在 AI 编程 Agent 如果能理解用户当前工作流,会更有用;但屏幕录像和云端记忆 diff --git a/docs/assets/winchronicle-hero.png b/docs/assets/winchronicle-hero.png new file mode 100644 index 0000000..59966a1 Binary files /dev/null and b/docs/assets/winchronicle-hero.png differ diff --git a/docs/assets/winchronicle-hero.prompt.md b/docs/assets/winchronicle-hero.prompt.md new file mode 100644 index 0000000..666d261 --- /dev/null +++ b/docs/assets/winchronicle-hero.prompt.md @@ -0,0 +1,46 @@ +# WinChronicle Hero Image Prompt + +Use this prompt when regenerating `winchronicle-hero.png` or +`winchronicle-social-preview.png` with an image model or a local drawing script. + +## Prompt + +Create a polished open-source project hero image for **WinChronicle**, a +Windows-first local context memory layer for AI agents. + +Show an abstract product pipeline, not a real desktop screenshot: + +1. Structured UIA signals +2. Privacy gates and redaction +3. Local memory and SQLite search +4. Read-only MCP agent context + +Use a modern dark technical background with teal, amber, green, and violet +accents. Text must be readable at GitHub README size and social-preview size. +The image should feel trustworthy, local, developer-oriented, and auditable. + +Include this boundary copy in the image: + +```text +No screenshots. No keylogging. No cloud upload. No desktop control. +``` + +## Negative Prompt / Constraints + +- Do not include OpenAI, Microsoft, Windows, GitHub, Codex, or MCP logos. +- Do not imply official affiliation with OpenAI or official Chronicle. +- Do not depict surveillance, cameras, screenshots, OCR, screen recording, + keylogging, clipboard scraping, audio recording, cloud upload, desktop + control, click/type automation, or background daemon behavior. +- Do not show real user data, real application windows, real websites, local + paths, email addresses, tokens, secrets, or observed screen content. +- Do not make the image look like a marketing claim that WinChronicle captures + full screen contents. + +## Current Asset Contract + +- `winchronicle-hero.png`: 1400 x 720 +- `winchronicle-social-preview.png`: 1280 x 640 +- Both assets are raster PNGs committed under `docs/assets/`. +- Both assets are illustrative product visuals, not generated state or observed + content. diff --git a/docs/assets/winchronicle-social-preview.png b/docs/assets/winchronicle-social-preview.png new file mode 100644 index 0000000..3d8c150 Binary files /dev/null and b/docs/assets/winchronicle-social-preview.png differ diff --git a/docs/project-presentation.md b/docs/project-presentation.md index 424dd23..1b3e9e7 100644 --- a/docs/project-presentation.md +++ b/docs/project-presentation.md @@ -43,6 +43,24 @@ No screenshots. No keylogging. No cloud upload. GitHub social preview images should be at least `640x320` pixels, with `1280x640` preferred for sharper rendering. +The committed social preview asset is: + +```text +docs/assets/winchronicle-social-preview.png +``` + +The committed README hero asset is: + +```text +docs/assets/winchronicle-hero.png +``` + +Regenerate or review both assets against +[the hero prompt contract](assets/winchronicle-hero.prompt.md). The images must +not include third-party logos, real desktop screenshots, OCR/screen-recording +visuals, cloud-upload imagery, surveillance metaphors, desktop-control cues, or +official-brand implications. + ## First-Time Visitor Path Point new users to: diff --git a/plugins/winchronicle-workday/.codex-plugin/plugin.json b/plugins/winchronicle-workday/.codex-plugin/plugin.json index f3c5b3e..08c06ff 100644 --- a/plugins/winchronicle-workday/.codex-plugin/plugin.json +++ b/plugins/winchronicle-workday/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "winchronicle-workday", - "version": "0.2.24", + "version": "0.2.25", "description": "Thin Codex entry point for explicit WinChronicle workday recording.", "author": { "name": "YSCJRH", diff --git a/pyproject.toml b/pyproject.toml index f7c9cac..6f1643d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "winchronicle" -version = "0.2.24" +version = "0.2.25" description = "UIA-first local memory for Windows agents." readme = "README.md" requires-python = ">=3.11" diff --git a/src/winchronicle/_version.py b/src/winchronicle/_version.py index 1cdae7a..8e523c9 100644 --- a/src/winchronicle/_version.py +++ b/src/winchronicle/_version.py @@ -1 +1 @@ -__version__ = "0.2.24" +__version__ = "0.2.25" diff --git a/src/winchronicle/codex_plugins/winchronicle-workday/.codex-plugin/plugin.json b/src/winchronicle/codex_plugins/winchronicle-workday/.codex-plugin/plugin.json index f3c5b3e..08c06ff 100644 --- a/src/winchronicle/codex_plugins/winchronicle-workday/.codex-plugin/plugin.json +++ b/src/winchronicle/codex_plugins/winchronicle-workday/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "winchronicle-workday", - "version": "0.2.24", + "version": "0.2.25", "description": "Thin Codex entry point for explicit WinChronicle workday recording.", "author": { "name": "YSCJRH", diff --git a/tests/test_version_identity.py b/tests/test_version_identity.py index ad6d3ad..a81492e 100644 --- a/tests/test_version_identity.py +++ b/tests/test_version_identity.py @@ -14,7 +14,7 @@ def test_project_runtime_and_mcp_versions_match(tmp_path): pyproject = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8")) project_version = pyproject["project"]["version"] - assert project_version == "0.2.24" + assert project_version == "0.2.25" assert winchronicle.__version__ == project_version assert _mcp_server_version(tmp_path / "state") == project_version