oh-my-llmwikimode 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/design/EOS_CHAT_HOME_IA.md +129 -0
- package/docs/design/EOS_CHAT_OPERATING_LOOP.md +101 -0
- package/docs/design/EOS_DESIGN.md +222 -16
- package/docs/design/EOS_PACKAGE_SPLIT_MIGRATION_BACKLOG.md +89 -0
- package/docs/design/EOS_SCREEN_INVENTORY.md +1 -0
- package/docs/design/EOS_SIDE_REVIEW_IA.md +357 -0
- package/docs/design/EOS_UI_CONTRACT.md +4 -0
- package/docs/design/EOS_VISUAL_DIFF_BASELINE.md +110 -0
- package/docs/design/EOS_VISUAL_QA_RELEASE_READINESS_2026-05-29.md +110 -0
- package/docs/design/EOS_VISUAL_SCREENSHOT_HARNESS.md +104 -0
- package/docs/design/README.md +3 -0
- package/docs/eos-boundary-static-policy.md +45 -0
- package/docs/eos-package-boundary.md +91 -0
- package/docs/eos-package-split-readiness.md +41 -0
- package/docs/eos-workspace-boundary-mvp.md +76 -0
- package/package.json +7 -2
- package/src/curator/queue.js +2 -2
- package/src/curator/workbench.js +1 -1
- package/src/eos/chat/intent-hints.js +114 -0
- package/src/eos/chat/requests.js +324 -0
- package/src/eos/chat/static/app.js +228 -0
- package/src/eos/chat/static/index.html +93 -0
- package/src/eos/chat/static/styles.css +284 -0
- package/src/eos/config.js +3 -0
- package/src/eos/home.js +179 -12
- package/src/eos/http/app.js +54 -1
- package/src/eos/http/routes/chat.js +40 -0
- package/src/eos/http/routes/side-review.js +135 -0
- package/src/eos/paths.js +3 -7
- package/src/eos/side-review/artifacts.js +288 -0
- package/src/eos/side-review/static/app.js +392 -0
- package/src/eos/side-review/static/index.html +61 -0
- package/src/eos/side-review/static/styles.css +517 -0
- package/src/eos/visual-qa/accessibility.js +96 -0
- package/src/eos/visual-qa/screenshot-harness.js +576 -0
- package/src/eos/visual-qa/side-review.js +221 -0
- package/src/eos/visual-qa/visual-diff.js +513 -0
- package/src/eos/workspace-boundary/domain.js +253 -0
- package/src/eos/workspace-boundary/presence-adapters.js +94 -0
- package/src/eos/workspace-boundary/side-review-view-model.js +425 -0
- package/src/eos/workspace-boundary/side-review-workflow.js +258 -0
- package/src/eos/workspace-boundary/wiki-adapter.js +160 -0
- package/src/natural-language/qa.js +1 -1
- package/src/wiki/oracle-review.js +1 -1
- package/src/workspace/paths.js +13 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Eos Chat Home Information Architecture
|
|
2
|
+
|
|
3
|
+
**Status:** Active implementation contract for Eos Chat Command Center MVP
|
|
4
|
+
**Date:** 2026-05-29
|
|
5
|
+
**Depends on:** `EOS_DESIGN.md`, `EOS_UI_CONTRACT.md`, `EOS_SIDE_REVIEW_IA.md`
|
|
6
|
+
|
|
7
|
+
## 1. Purpose
|
|
8
|
+
|
|
9
|
+
`Eos Chat` is the first screen and local command center for Eos.
|
|
10
|
+
|
|
11
|
+
The user starts by saying what they want. Eos must capture that intent as a local review-required artifact, then make it visible in `Side Review`. Chat does not execute shell commands, providers, agents, wiki promotion, git actions, or background work by itself.
|
|
12
|
+
|
|
13
|
+
## 2. Primary promise
|
|
14
|
+
|
|
15
|
+
Use this product promise when shaping UI copy:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
Tell Eos what you want to prepare. Eos captures it for local review before anything is applied.
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 3. Required regions
|
|
22
|
+
|
|
23
|
+
1. **Header rail** - `Eos Chat`, short local workspace status, and link to `Side Review`.
|
|
24
|
+
2. **Safety strip** - always-visible copy: `Local review workspace. Nothing is applied automatically.`
|
|
25
|
+
3. **Welcome state** - explains chat-first workflow without starter chips.
|
|
26
|
+
4. **Status cards** - wiki status, review queue count, and harness readiness in compact cards.
|
|
27
|
+
5. **Message list** - local acknowledgements only; no execution transcript unless a future approved execution flow exists.
|
|
28
|
+
6. **Composer** - bottom input with a short placeholder and explicit send button.
|
|
29
|
+
|
|
30
|
+
## 4. Empty state copy
|
|
31
|
+
|
|
32
|
+
Approved empty-state copy:
|
|
33
|
+
|
|
34
|
+
- `Start with a request.`
|
|
35
|
+
- `Eos will capture it as a local review item.`
|
|
36
|
+
- `Open Side Review to inspect drafts, evidence, and decisions.`
|
|
37
|
+
- `Review Required`
|
|
38
|
+
- `Not Applied`
|
|
39
|
+
- `Local Only`
|
|
40
|
+
|
|
41
|
+
Do not add starter chips in this slice. Shortcuts may return later only after real usage shows which actions matter.
|
|
42
|
+
|
|
43
|
+
## 5. Composer contract
|
|
44
|
+
|
|
45
|
+
- Placeholder: `Tell Eos what you want to prepare...`
|
|
46
|
+
- Button label: `Capture for Review`
|
|
47
|
+
- Success acknowledgement: `Captured for review.`
|
|
48
|
+
- Follow-up link/action: `Open Side Review`
|
|
49
|
+
|
|
50
|
+
The composer must not use copy such as `Run`, `Execute`, `Complete`, `Apply`, or `Push`.
|
|
51
|
+
|
|
52
|
+
## 6. Data flow
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Eos Chat message
|
|
56
|
+
-> POST /api/chat/requests
|
|
57
|
+
-> .system/eos/chat/requests/{id}.json
|
|
58
|
+
-> .system/eos/chat/audit.jsonl
|
|
59
|
+
-> GET /api/side-review
|
|
60
|
+
-> Side Review card in Review Required
|
|
61
|
+
-> optional local Side Review decision artifact
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The original wiki entries are not mutated by this flow.
|
|
65
|
+
|
|
66
|
+
## 7. Forbidden labels
|
|
67
|
+
|
|
68
|
+
Do not use these labels in the Eos Chat MVP:
|
|
69
|
+
|
|
70
|
+
- `Run Now`
|
|
71
|
+
- `Execute`
|
|
72
|
+
- `Auto Apply`
|
|
73
|
+
- `Apply Automatically`
|
|
74
|
+
- `Promote Now`
|
|
75
|
+
- `Merge Now`
|
|
76
|
+
- `Delete Now`
|
|
77
|
+
- `Push to GitHub`
|
|
78
|
+
- `Run in Background`
|
|
79
|
+
- `Completed` for a request that was only captured
|
|
80
|
+
|
|
81
|
+
## 8. Route contract
|
|
82
|
+
|
|
83
|
+
- `GET /chat/` serves the Eos Chat local UI.
|
|
84
|
+
- `GET /chat` redirects to `/chat/`.
|
|
85
|
+
- `GET /api/home` remains a read-only home data snapshot.
|
|
86
|
+
- `POST /api/chat/requests` creates a review-required local artifact only.
|
|
87
|
+
|
|
88
|
+
## 9. Safety contract
|
|
89
|
+
|
|
90
|
+
- Local-first.
|
|
91
|
+
- Review-required.
|
|
92
|
+
- No hidden execution.
|
|
93
|
+
- No source wiki mutation.
|
|
94
|
+
- No hosted sync.
|
|
95
|
+
- No auto-promotion, auto-merge, auto-delete, or auto-push.
|
|
96
|
+
- Browser UI uses self-only CSP, local assets, and text-node rendering.
|
|
97
|
+
|
|
98
|
+
## 10. Chat operating loop and intent hints
|
|
99
|
+
|
|
100
|
+
Chat is the inbox. Side Review is the review desk.
|
|
101
|
+
|
|
102
|
+
Captured chat requests now carry deterministic intent hint metadata before they appear in Side Review. The hint helps the user quickly see whether the request looks like a knowledge capture, search, plan, issue report, release log, or unknown/ambiguous request. It is always review-only metadata and never approval or execution.
|
|
103
|
+
|
|
104
|
+
Additional Home status card:
|
|
105
|
+
|
|
106
|
+
- `Chat Intents` - summarizes waiting chat requests by intent category.
|
|
107
|
+
|
|
108
|
+
Updated flow:
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
Eos Chat message
|
|
112
|
+
-> POST /api/chat/requests
|
|
113
|
+
-> request artifact with intent hint
|
|
114
|
+
-> GET /api/home intent counts
|
|
115
|
+
-> GET /api/side-review Side Review card
|
|
116
|
+
-> prepare-only decision artifact
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 11. Command Center Dashboard Slice
|
|
120
|
+
|
|
121
|
+
`GET /api/home` now exposes an `Eos Command Center` summary for the chat-first workspace. The browser copy may call this panel `Mission Control`, but the data contract remains `command_center` with English technical keys and Korean-friendly display labels.
|
|
122
|
+
|
|
123
|
+
Required dashboard groups:
|
|
124
|
+
|
|
125
|
+
- `Waiting Review` - points to `Side Review` and shows review-required pressure.
|
|
126
|
+
- `Recent Requests` - previews the latest captured chat requests without opening raw artifacts.
|
|
127
|
+
- `System Health` - explains local load errors or confirms local review data is readable.
|
|
128
|
+
|
|
129
|
+
The Chat home panel may show compact `Next Safe Actions` and `Recent Requests`, but these are navigation/review aids only. They must not become starter chips, execution shortcuts, provider dispatch, or hidden agent controls.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Eos Chat Operating Loop
|
|
2
|
+
|
|
3
|
+
**Status:** Active implementation contract for the chat-to-review operating loop
|
|
4
|
+
**Date:** 2026-05-29
|
|
5
|
+
**Depends on:** `EOS_CHAT_HOME_IA.md`, `EOS_SIDE_REVIEW_IA.md`, `EOS_DESIGN.md`
|
|
6
|
+
|
|
7
|
+
## 1. Simple metaphor
|
|
8
|
+
|
|
9
|
+
Chat is the inbox. Side Review is the review desk.
|
|
10
|
+
|
|
11
|
+
The user writes a request in `Eos Chat`. Eos files it as a local review item, adds a deterministic intent hint, and places it on the `Side Review` desk. Nothing is executed or applied just because the request was captured.
|
|
12
|
+
|
|
13
|
+
## 2. Operating loop
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
User request in Eos Chat
|
|
17
|
+
-> local capture endpoint
|
|
18
|
+
-> chat request artifact
|
|
19
|
+
-> intent hint metadata
|
|
20
|
+
-> Side Review card
|
|
21
|
+
-> prepare-only decision artifact
|
|
22
|
+
-> human approval path in a later slice
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 3. Intent hint contract
|
|
26
|
+
|
|
27
|
+
Intent hints are review labels, not decisions.
|
|
28
|
+
|
|
29
|
+
Supported hint categories:
|
|
30
|
+
|
|
31
|
+
- `knowledge_request` - the user seems to want a wiki, draft, document, or knowledge capture.
|
|
32
|
+
- `search_request` - the user seems to want lookup, location, or discovery.
|
|
33
|
+
- `planning_request` - the user seems to want a plan, roadmap, design, or ultragoal.
|
|
34
|
+
- `issue_report` - the user seems to report a bug, failure, broken behavior, or improvement need.
|
|
35
|
+
- `release_log` - the user seems to want handoff, changelog, deployment, or sync notes.
|
|
36
|
+
- `unknown` - the request is unclear, ambiguous, or has no deterministic keyword evidence.
|
|
37
|
+
|
|
38
|
+
Every hint must stay:
|
|
39
|
+
|
|
40
|
+
- local-only,
|
|
41
|
+
- deterministic,
|
|
42
|
+
- review-hint-only,
|
|
43
|
+
- non-executing,
|
|
44
|
+
- non-approving,
|
|
45
|
+
- safe after secret redaction.
|
|
46
|
+
|
|
47
|
+
## 4. Artifact flow
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
POST /api/chat/requests
|
|
51
|
+
writes .system/eos/chat/requests/{id}.json
|
|
52
|
+
appends .system/eos/chat/audit.jsonl
|
|
53
|
+
|
|
54
|
+
GET /api/home
|
|
55
|
+
exposes waiting count, intent counts, and recent request summaries
|
|
56
|
+
|
|
57
|
+
GET /api/side-review
|
|
58
|
+
exposes chat request cards with intent label, request preview, evidence, and safe next action
|
|
59
|
+
|
|
60
|
+
POST /api/agent/side-review/decisions
|
|
61
|
+
writes .system/eos/side-review/decisions/{id}.json
|
|
62
|
+
appends .system/eos/side-review/audit.jsonl
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 5. UI promise
|
|
66
|
+
|
|
67
|
+
Chat should answer: "What did I just capture, and where can I review it?"
|
|
68
|
+
|
|
69
|
+
Side Review should answer: "What is this request, why is it here, what evidence exists, and what safe prepare-only action can I take?"
|
|
70
|
+
|
|
71
|
+
## 6. Non-goals
|
|
72
|
+
|
|
73
|
+
This slice must not add:
|
|
74
|
+
|
|
75
|
+
- shell execution,
|
|
76
|
+
- provider dispatch,
|
|
77
|
+
- hidden agents,
|
|
78
|
+
- Discord bridge behavior,
|
|
79
|
+
- hosted sync,
|
|
80
|
+
- package splitting,
|
|
81
|
+
- NPM publishing,
|
|
82
|
+
- auto-promotion,
|
|
83
|
+
- auto-merge,
|
|
84
|
+
- auto-delete,
|
|
85
|
+
- auto-push,
|
|
86
|
+
- source wiki entry mutation.
|
|
87
|
+
|
|
88
|
+
## 7. Verification anchors
|
|
89
|
+
|
|
90
|
+
- `test/eos/chat-intent-hints.test.js`
|
|
91
|
+
- `test/eos/chat-requests.test.js`
|
|
92
|
+
- `test/eos/chat-routes.test.js`
|
|
93
|
+
- `test/eos/home-data.test.js`
|
|
94
|
+
- `test/eos/side-review-routes.test.js`
|
|
95
|
+
- `test/eos/uiux-product-shape.test.js`
|
|
96
|
+
|
|
97
|
+
## 8. Command Center coordination
|
|
98
|
+
|
|
99
|
+
`Home` is the mission-control layer between Chat and Side Review. It should tell the user what is waiting, what was recently captured, and whether any local artifact needs attention before the user opens raw files.
|
|
100
|
+
|
|
101
|
+
`Side Review` adds intent filters so chat-derived requests can be inspected by review hint category: knowledge, search, planning, issue, release log, or unknown. These intent filters are visibility controls, not approval controls. Filtering must not apply, promote, merge, delete, push, publish, or mutate source wiki entries.
|
|
@@ -2,26 +2,70 @@
|
|
|
2
2
|
|
|
3
3
|
## Status
|
|
4
4
|
|
|
5
|
-
Active
|
|
5
|
+
Active design source of truth for the Eos local workspace UI.
|
|
6
6
|
|
|
7
7
|
This document does not replace implementation tests. It defines the product and visual direction that future UI work must translate into code, tests, and review evidence.
|
|
8
8
|
|
|
9
9
|
## Product Role
|
|
10
10
|
|
|
11
|
-
Eos is a chat-first local AI orchestration
|
|
11
|
+
Eos is a chat-first local AI orchestration workspace for LLM Wiki work. The user starts by saying what they want in chat; Eos then shapes the request into drafts, review requests, dispatch packets, evidence requests, or separate helper panels without hidden execution.
|
|
12
12
|
|
|
13
|
-
Eos is **not** a cloud assistant surface, marketing landing page,
|
|
13
|
+
Eos is **not** a cloud assistant surface, marketing landing page, autonomous execution dashboard, or a renamed LLM Wiki Mode screen. LLM Wiki Mode remains an attached local knowledge backend through explicit adapters.
|
|
14
14
|
|
|
15
15
|
## Design Metaphor
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**Clean AI Workspace**
|
|
18
18
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- Workspace:
|
|
19
|
+
- Clean: clear hierarchy, calm surfaces, readable labels, and no decorative noise.
|
|
20
|
+
- AI: the primary gesture is conversation; the interface explains what AI prepared and what still needs review.
|
|
21
|
+
- Workspace: local artifacts, review gates, evidence, and harness state are visible without becoming a dashboard-first product.
|
|
22
22
|
|
|
23
23
|
The interface should feel like a trustworthy local cockpit where conversation opens separate work panels, not a generic chatbot SaaS clone or button-heavy dashboard.
|
|
24
24
|
|
|
25
|
+
Compatibility note: the VS Code extension design gate still tracks the earlier `Dawn Control Room` metaphor and the Korean chat prompt `무엇을 맡길까요?`. Treat both as compatible markers for the same calm, chat-first local command center direction, not as permission to add a dashboard-first or execution-first surface.
|
|
26
|
+
|
|
27
|
+
## Primary Surfaces for This Slice
|
|
28
|
+
|
|
29
|
+
### Eos Chat
|
|
30
|
+
|
|
31
|
+
- Home surface and default starting point.
|
|
32
|
+
- Captures user intent in natural language.
|
|
33
|
+
- Shows concise local connection, review, and safety state.
|
|
34
|
+
- Does not use starter chips in this slice.
|
|
35
|
+
- Should make the next safe action obvious without implying hidden execution.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Chat Command Center MVP
|
|
39
|
+
|
|
40
|
+
- Dedicated local route: `/chat/`.
|
|
41
|
+
- Tone: calm command center, not a generic chatbot landing page.
|
|
42
|
+
- Primary promise: `Tell Eos what you want to prepare. Eos captures it for local review before anything is applied.`
|
|
43
|
+
- Chat messages create review-required local request artifacts only.
|
|
44
|
+
- Captured requests appear in `Side Review` before any write-like decision.
|
|
45
|
+
- The screen must keep `Local Only`, `Review Required`, and `Not Applied` visible.
|
|
46
|
+
- This slice still avoids starter chips; convenience shortcuts can be designed after real usage patterns are visible.
|
|
47
|
+
|
|
48
|
+
### Side Review
|
|
49
|
+
|
|
50
|
+
- Separate helper surface for looking at structured material while chat stays focused.
|
|
51
|
+
- Shows drafts, review-required items, evidence, issues, completion reports, and harness status.
|
|
52
|
+
- Cards should expose title, reason, source/evidence, current state, and safe next action.
|
|
53
|
+
- Must keep `Review Required` / `Not Applied Yet` visible before any write-like action.
|
|
54
|
+
- Decision-like actions prepare local review artifacts only. The user may prepare approval, rejection, or defer notes, but Eos must not apply them automatically.
|
|
55
|
+
|
|
56
|
+
### Side Review Polish MVP
|
|
57
|
+
|
|
58
|
+
- Dedicated local route: `/side-review/`.
|
|
59
|
+
- Tone: calm review desk, not a command console.
|
|
60
|
+
- Primary promise: `Local Review Artifact` and `Not Applied` must remain visible near decision actions.
|
|
61
|
+
- The user should understand three things at a glance:
|
|
62
|
+
1. what needs review,
|
|
63
|
+
2. where the evidence came from,
|
|
64
|
+
3. which safe prepare-only action can be taken next.
|
|
65
|
+
- A polished card is useful only if it keeps source path, artifact path, workflow state, and evidence visible.
|
|
66
|
+
- Empty and error states should be plain language, not machine logs.
|
|
67
|
+
- The route is an Eos UI surface attached to LLM Wiki data; it is not a new LLM Wiki product surface.
|
|
68
|
+
|
|
25
69
|
## Visual System
|
|
26
70
|
|
|
27
71
|
### Color Intent
|
|
@@ -35,13 +79,13 @@ Use VS Code theme variables first. Eos accent colors are allowed only as semanti
|
|
|
35
79
|
| Text | `--vscode-foreground` |
|
|
36
80
|
| Muted text | `--vscode-descriptionForeground` |
|
|
37
81
|
| Border | `--vscode-panel-border`, `--vscode-widget-border` |
|
|
38
|
-
| Primary action | Eos
|
|
82
|
+
| Primary action | restrained Eos blue token mapped to theme-safe blue |
|
|
39
83
|
| Warning/review | VS Code warning color or local amber token |
|
|
40
84
|
| Error/blocked | `--vscode-errorForeground` or local danger token |
|
|
41
85
|
|
|
42
86
|
### Eos Accent Rules
|
|
43
87
|
|
|
44
|
-
-
|
|
88
|
+
- Blue is a restrained primary accent, not the whole interface.
|
|
45
89
|
- Large gradients are allowed only in deliberate hero/brand moments, not repeated in every header.
|
|
46
90
|
- Header, menu, and button blue must come from tokens, not ad hoc hex values.
|
|
47
91
|
- Dark, light, high-contrast, and reduced-motion modes must remain usable.
|
|
@@ -49,7 +93,7 @@ Use VS Code theme variables first. Eos accent colors are allowed only as semanti
|
|
|
49
93
|
### Typography
|
|
50
94
|
|
|
51
95
|
- Use VS Code default UI font.
|
|
52
|
-
-
|
|
96
|
+
- User-facing labels should be short, direct, and action oriented.
|
|
53
97
|
- Use `Eos` casing everywhere unless a VS Code label mechanically uppercases it.
|
|
54
98
|
- Avoid mixing `EOS`, `Eos Workspace`, `Eos Home`, and `Eos Chat` without an explicit naming rule.
|
|
55
99
|
|
|
@@ -70,6 +114,7 @@ Use VS Code theme variables first. Eos accent colors are allowed only as semanti
|
|
|
70
114
|
|
|
71
115
|
- Local-first: no cloud runtime assumption.
|
|
72
116
|
- Review-required: suggestions are visible artifacts, not automatic actions.
|
|
117
|
+
- Explicit approval only for write-like behavior.
|
|
73
118
|
- No hidden execution, no auto-promotion, no auto-merge/delete, no auto-push.
|
|
74
119
|
- UI may prepare drafts, packets, and review proposals, but must label them as such.
|
|
75
120
|
|
|
@@ -77,18 +122,179 @@ Use VS Code theme variables first. Eos accent colors are allowed only as semanti
|
|
|
77
122
|
|
|
78
123
|
Good:
|
|
79
124
|
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
125
|
+
- `What do you want AI to help with?`
|
|
126
|
+
- `Wiki Mode Connected`
|
|
127
|
+
- `Write Mode: Review Required`
|
|
128
|
+
- `Review Queue Ready`
|
|
129
|
+
- `No review items yet. New drafts will appear here as Not Applied Yet.`
|
|
130
|
+
- `Prepare Review`
|
|
131
|
+
- `Prepare Approval Request`
|
|
132
|
+
- `Prepare Rejection Note`
|
|
133
|
+
- `Defer Review`
|
|
134
|
+
- `Open Evidence`
|
|
135
|
+
- `Evidence Available`
|
|
83
136
|
|
|
84
137
|
Avoid:
|
|
85
138
|
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
139
|
+
- `I applied it for you` before explicit approval.
|
|
140
|
+
- `Merged automatically` or `Promoted automatically`.
|
|
141
|
+
- `Executing now` when no explicit user-approved execution exists.
|
|
142
|
+
- Cryptic machine status strings as primary UI copy.
|
|
143
|
+
- Corrupted/mojibake copy in user-facing surfaces.
|
|
89
144
|
|
|
90
145
|
## Future Direction
|
|
91
146
|
|
|
92
147
|
- Discord should become a conversational entry or notification bridge only after the VS Code chat-first contract is stable.
|
|
93
148
|
- Agent/harness UX should explain capability and safety before offering dispatch actions.
|
|
94
149
|
- Quick chips may return later, but only when real usage patterns prove which shortcuts matter.
|
|
150
|
+
|
|
151
|
+
## Implemented Slice - 2026-05-28
|
|
152
|
+
|
|
153
|
+
The Eos UIUX Product Shape Longrun implemented the first Clean AI Workspace slice across:
|
|
154
|
+
|
|
155
|
+
- `Eos Chat` data contract: readable prompt, status strip, empty/blocked copy, and safe next actions.
|
|
156
|
+
- `Side Review` view model: readable groups, card hierarchy, evidence/source labels, count/status labels, and safe action language.
|
|
157
|
+
- Static Academy UI: calmer Clean AI Workspace copy/colors, review-required/local-only status text, narrow webview handling, reduced-motion handling, and no mojibake metadata separator.
|
|
158
|
+
|
|
159
|
+
Verification anchors:
|
|
160
|
+
|
|
161
|
+
- `test/eos/home-data.test.js`
|
|
162
|
+
- `test/eos/workspace-boundary-side-review-view-model.test.js`
|
|
163
|
+
- `test/eos/academy.test.js`
|
|
164
|
+
- `test/eos/uiux-product-shape.test.js`
|
|
165
|
+
|
|
166
|
+
## Implemented Workflow Slice - 2026-05-28
|
|
167
|
+
|
|
168
|
+
The Eos Side Review Workflow MVP adds the first decision-preparation layer without broad visual redesign:
|
|
169
|
+
|
|
170
|
+
- Workflow states: `Not Applied Yet`, `Needs Review`, `Ready for Human Decision`, `Evidence Missing`, and `Deferred`.
|
|
171
|
+
- Card metadata: candidate type, priority hint, age hint, evidence status, and multiple safe next actions.
|
|
172
|
+
- Local artifacts: `POST /api/agent/side-review/decisions` writes review-required decision JSON under `.system/eos/side-review/decisions/` and appends `.system/eos/side-review/audit.jsonl`.
|
|
173
|
+
- Read API: `GET /api/side-review` returns the workflow-ready Side Review view model from the attached LLM Wiki backend.
|
|
174
|
+
- Boundary: no Discord expansion, no package split, no publish, no auto-promotion, no auto-merge/delete, no auto-push, and no source wiki entry mutation.
|
|
175
|
+
|
|
176
|
+
Verification anchors:
|
|
177
|
+
|
|
178
|
+
- `test/eos/workspace-boundary-side-review-workflow.test.js`
|
|
179
|
+
- `test/eos/workspace-boundary-side-review-view-model.test.js`
|
|
180
|
+
- `test/eos/side-review-artifacts.test.js`
|
|
181
|
+
- `test/eos/side-review-routes.test.js`
|
|
182
|
+
- `scripts/verify-eos-workspace-boundary.js`
|
|
183
|
+
- `scripts/verify-eos-boundary-policy.js`
|
|
184
|
+
|
|
185
|
+
## Implemented Side Review UI Polish MVP - 2026-05-29
|
|
186
|
+
|
|
187
|
+
The Eos Side Review UI Polish MVP adds a dedicated local review desk at `/side-review/`.
|
|
188
|
+
|
|
189
|
+
What changed:
|
|
190
|
+
|
|
191
|
+
- Eos now has a visible Side Review surface for structured review work instead of API-only Side Review data.
|
|
192
|
+
- The screen uses a Clean AI Workspace layout: header rail, safety strip, group tabs, card grid, and prepare-only decision panel.
|
|
193
|
+
- Cards keep workflow state, priority, age, source, artifact, and evidence visible.
|
|
194
|
+
- Decision controls are explicitly local review artifact preparation, not execution.
|
|
195
|
+
- Theme/accessibility pass covers VS Code token fallbacks, keyboard focus, reduced motion, and forced-colors handling.
|
|
196
|
+
|
|
197
|
+
Product boundary:
|
|
198
|
+
|
|
199
|
+
- Eos is the UI/workspace that helps the user inspect and prepare review artifacts.
|
|
200
|
+
- LLM Wiki is the attached knowledge backend that stores drafts, queues, evidence, and local review artifacts.
|
|
201
|
+
- This slice does not split packages, add Discord, publish NPM, add cloud sync, or create automatic promotion/merge/delete/push behavior.
|
|
202
|
+
- Side Review browser hardening is scoped to self-only CSP, text-node rendering, and server-provided action metadata. `daemonToken` mode stays protected by Bearer-token auth; default local no-token browser UX is the MVP path.
|
|
203
|
+
|
|
204
|
+
User-facing route:
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
/side-review/
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Verification anchors:
|
|
211
|
+
|
|
212
|
+
- `test/eos/side-review-routes.test.js`
|
|
213
|
+
- `test/eos/uiux-product-shape.test.js`
|
|
214
|
+
|
|
215
|
+
## Implemented Chat Operating Loop Slice - 2026-05-29
|
|
216
|
+
|
|
217
|
+
The Eos Chat Operating Loop slice connects the chat inbox to the review desk with deterministic intent hints.
|
|
218
|
+
|
|
219
|
+
What changed:
|
|
220
|
+
|
|
221
|
+
- `Eos Chat` captures each request as a local artifact with a review-only intent hint.
|
|
222
|
+
- `GET /api/home` summarizes waiting chat request intent counts and recent request previews.
|
|
223
|
+
- `Side Review` cards show intent label, redacted request preview, evidence, artifact path, and safe next action.
|
|
224
|
+
- Prepare-only decision artifacts preserve intent metadata so later review can understand why the card exists.
|
|
225
|
+
|
|
226
|
+
Boundary:
|
|
227
|
+
|
|
228
|
+
- Intent hints are labels for review, not AI decisions.
|
|
229
|
+
- The flow does not execute, dispatch, approve, promote, merge, delete, push, sync, or mutate source wiki entries.
|
|
230
|
+
|
|
231
|
+
Verification anchors:
|
|
232
|
+
|
|
233
|
+
- `test/eos/chat-intent-hints.test.js`
|
|
234
|
+
- `test/eos/chat-requests.test.js`
|
|
235
|
+
- `test/eos/chat-routes.test.js`
|
|
236
|
+
- `test/eos/home-data.test.js`
|
|
237
|
+
- `test/eos/side-review-routes.test.js`
|
|
238
|
+
- `test/eos/uiux-product-shape.test.js`
|
|
239
|
+
|
|
240
|
+
## Implemented Command Center UX Slice - 2026-05-29
|
|
241
|
+
|
|
242
|
+
The Eos Command Center UX slice makes the existing chat-to-review loop easier to understand without expanding runtime power.
|
|
243
|
+
|
|
244
|
+
What changed:
|
|
245
|
+
|
|
246
|
+
- `GET /api/home` now returns a `command_center` summary with `Waiting Review`, `Recent Requests`, `System Health`, Korean-friendly display labels, and safe next actions.
|
|
247
|
+
- `Eos Chat` shows a compact `Mission Control` panel with local status, `Next Safe Actions`, and `Recent Requests` so the user can decide what to inspect next without opening every raw artifact.
|
|
248
|
+
- `Side Review` exposes intent filters and a safer card sort order so chat-derived requests are easier to scan by issue, planning, knowledge, search, release log, or unknown intent.
|
|
249
|
+
- Shared copy keeps the same product language: `Chat`, `Home`, `Side Review`, `Review Queue`, `Request Artifact`, `Local`, `Review Required`, and `Not Applied`.
|
|
250
|
+
|
|
251
|
+
Boundary:
|
|
252
|
+
|
|
253
|
+
- The dashboard and filters are review/navigation surfaces only.
|
|
254
|
+
- This slice does not add live execution, hidden agent runs, Discord behavior, hosted sync, package split, npm publish, auto-apply, auto-promotion, auto-merge/delete, auto-push, or source wiki entry mutation.
|
|
255
|
+
|
|
256
|
+
Verification anchors:
|
|
257
|
+
|
|
258
|
+
- `test/eos/home-data.test.js`
|
|
259
|
+
- `test/eos/chat-routes.test.js`
|
|
260
|
+
- `test/eos/side-review-routes.test.js`
|
|
261
|
+
- `test/eos/workspace-boundary-side-review-view-model.test.js`
|
|
262
|
+
- `test/eos/uiux-product-shape.test.js`
|
|
263
|
+
|
|
264
|
+
## Visual QA and Release Readiness Pass - 2026-05-29
|
|
265
|
+
|
|
266
|
+
The Eos Visual QA and Release Readiness longrun reviewed Chat, Mission Control, and Side Review as a release candidate surface set.
|
|
267
|
+
|
|
268
|
+
What changed:
|
|
269
|
+
|
|
270
|
+
- Chat safety copy now uses `Not Applied` instead of `Not Executing` so the first screen matches the Side Review promise.
|
|
271
|
+
- The copy-only polish is locked by route/static UI tests.
|
|
272
|
+
- Text-based DOM/CSS/API evidence is recorded in `.omx/ultragoal/eos-visual-qa-surface-evidence.json`.
|
|
273
|
+
- Release-readiness notes are captured in `docs/design/EOS_VISUAL_QA_RELEASE_READINESS_2026-05-29.md`.
|
|
274
|
+
|
|
275
|
+
Boundary:
|
|
276
|
+
|
|
277
|
+
- This pass did not merge PR #8 into `main`, publish npm, bump versions, split packages, add Discord runtime, add hosted sync, add hidden execution, or mutate source wiki entries.
|
|
278
|
+
- PR #8 remains a human-review release candidate after the stacked visual-QA PR is reviewed.
|
|
279
|
+
|
|
280
|
+
Verification anchors:
|
|
281
|
+
|
|
282
|
+
- `test/eos/chat-routes.test.js`
|
|
283
|
+
- `test/eos/uiux-product-shape.test.js`
|
|
284
|
+
|
|
285
|
+
## Visual Screenshot Harness MVP
|
|
286
|
+
|
|
287
|
+
Eos now has a local screenshot evidence harness for visual QA. The harness starts a temporary local Eos server, seeds safe review-required fixture data, captures PNG evidence for Chat + Mission Control and Side Review, writes ignored local artifacts under `.system/eos/visual-qa/screenshots/`, and then removes temporary wiki/profile data.
|
|
288
|
+
|
|
289
|
+
Boundary:
|
|
290
|
+
|
|
291
|
+
- This is a release-readiness aid only. It does not add cloud browser infrastructure, hosted sync, source wiki mutation, publish, push, hidden execution, or automatic UI approval.
|
|
292
|
+
- The default command skips with a report when Chrome, Edge, or Chromium is not available; strict runs can opt into `--require-browser`.
|
|
293
|
+
|
|
294
|
+
Verification anchors:
|
|
295
|
+
|
|
296
|
+
- `npm run eos:visual-screenshots`
|
|
297
|
+
- `test/eos/visual-screenshot-harness.test.js`
|
|
298
|
+
- `test/eos/home-data.test.js`
|
|
299
|
+
- `test/eos/side-review-routes.test.js`
|
|
300
|
+
- `test/eos/workspace-boundary-side-review-view-model.test.js`
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Eos Package Split Migration Backlog
|
|
2
|
+
|
|
3
|
+
Generated: 2026-05-27T22:54:41.581Z
|
|
4
|
+
|
|
5
|
+
## P0
|
|
6
|
+
|
|
7
|
+
### P0-001 ? Keep boundary policy verifier green
|
|
8
|
+
|
|
9
|
+
- Why: Prevents new private cross-boundary imports while split readiness work continues.
|
|
10
|
+
- Evidence: `scripts/eos-boundary-policy.json`, `scripts/verify-eos-boundary-policy.js`
|
|
11
|
+
- Acceptance criteria:
|
|
12
|
+
- npm run verify:eos-boundary-policy passes with 0 findings
|
|
13
|
+
- New production cross-boundary imports require explicit policy review
|
|
14
|
+
|
|
15
|
+
### P0-002 ? Public LLM Wiki adapter facade
|
|
16
|
+
|
|
17
|
+
- Why: Eos imports wiki store/query/curator internals directly today.
|
|
18
|
+
- Evidence: `g003 import graph`, `g006 adapter proposal`
|
|
19
|
+
- Acceptance criteria:
|
|
20
|
+
- Eos imports adapter facade for status/drafts/review queue/candidates
|
|
21
|
+
- No auto-promotion or hidden execution paths
|
|
22
|
+
- Adapter tests cover failure/degraded states
|
|
23
|
+
|
|
24
|
+
### P0-003 ? Eos daemon/CLI facade without renaming llmwiki
|
|
25
|
+
|
|
26
|
+
- Why: Standalone Eos package needs explicit entrypoints while current OpenCode compatibility remains stable.
|
|
27
|
+
- Evidence: `g012 compatibility review`, `g015 install smoke plan`
|
|
28
|
+
- Acceptance criteria:
|
|
29
|
+
- Future Eos facade can start daemon/help locally
|
|
30
|
+
- llmwiki compatibility wrapper continues to work
|
|
31
|
+
- No npm publish until local install smoke passes
|
|
32
|
+
|
|
33
|
+
## P1
|
|
34
|
+
|
|
35
|
+
### P1-001 ? Move Eos Home browser-data composition behind BrowserDataPort
|
|
36
|
+
|
|
37
|
+
- Why: Core wiki browser-data currently imports Eos home data.
|
|
38
|
+
- Evidence: `g013 browser-data contract review`
|
|
39
|
+
- Acceptance criteria:
|
|
40
|
+
- buildBrowserData remains deterministic
|
|
41
|
+
- Eos home data is optional/redacted/degraded when unavailable
|
|
42
|
+
- browser-data tests pass
|
|
43
|
+
|
|
44
|
+
### P1-002 ? Provider neutralization for OpenCode Go
|
|
45
|
+
|
|
46
|
+
- Why: LLM Wiki agent provider imports Eos provider internals.
|
|
47
|
+
- Evidence: `g010 SHARED-005`
|
|
48
|
+
- Acceptance criteria:
|
|
49
|
+
- Shared provider is neutral or public
|
|
50
|
+
- Eos route and agent provider tests pass
|
|
51
|
+
- No provider behavior regression
|
|
52
|
+
|
|
53
|
+
### P1-003 ? Pack import/share public surface
|
|
54
|
+
|
|
55
|
+
- Why: Eos academy imports wiki pack internals.
|
|
56
|
+
- Evidence: `g010 SHARED-007`
|
|
57
|
+
- Acceptance criteria:
|
|
58
|
+
- Small public re-export or adapter exists
|
|
59
|
+
- pack tests and academy tests pass
|
|
60
|
+
|
|
61
|
+
## P2
|
|
62
|
+
|
|
63
|
+
### P2-001 ? Graph/librarian service ports
|
|
64
|
+
|
|
65
|
+
- Why: Broad service movement is risky and should follow adapter stabilization.
|
|
66
|
+
- Evidence: `g010 SHARED-006`
|
|
67
|
+
- Acceptance criteria:
|
|
68
|
+
- Ports documented before implementation
|
|
69
|
+
- No behavior move without tests
|
|
70
|
+
- Agent scanner and Eos routes remain green
|
|
71
|
+
|
|
72
|
+
### P2-002 ? Standalone Eos npm package skeleton
|
|
73
|
+
|
|
74
|
+
- Why: Eos is still embedded and should not be separately published yet.
|
|
75
|
+
- Evidence: `g005 package audit`, `g014 pack dry-run`, `g015 smoke plan`
|
|
76
|
+
- Acceptance criteria:
|
|
77
|
+
- package name/bin/exports decided
|
|
78
|
+
- files/dependencies minimized
|
|
79
|
+
- local install smoke passes
|
|
80
|
+
- independent review approves
|
|
81
|
+
|
|
82
|
+
### P2-003 ? Distribution decision for Codex bridge and VS Code package
|
|
83
|
+
|
|
84
|
+
- Why: Current npm package excludes codex-plugins and packages folders.
|
|
85
|
+
- Evidence: `g014 pack dry-run summary`
|
|
86
|
+
- Acceptance criteria:
|
|
87
|
+
- Distribution ownership documented
|
|
88
|
+
- No accidental files inclusion
|
|
89
|
+
- Install docs match actual package contents
|
|
@@ -43,6 +43,7 @@ Type a message and send it.
|
|
|
43
43
|
|
|
44
44
|
- The assistant persona name `Hermes` is not yet fully resolved for user-facing copy.
|
|
45
45
|
- Chat response is still a local draft acknowledgement, not a full orchestration conversation.
|
|
46
|
+
- Captured chat requests appear in Side Review as review-required cards.
|
|
46
47
|
|
|
47
48
|
### Acceptance criteria
|
|
48
49
|
|