openclacky 0.7.8 β 0.8.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.
- checksums.yaml +4 -4
- data/.clacky/skills/gem-release/SKILL.md +33 -4
- data/CHANGELOG.md +38 -0
- data/docs/agent-first-ui-design.md +77 -0
- data/docs/openclacky_cloud_api_reference.md +584 -0
- data/docs/session-skill-invocation.md +69 -0
- data/lib/clacky/agent/session_serializer.rb +77 -0
- data/lib/clacky/agent/skill_manager.rb +3 -1
- data/lib/clacky/agent/system_prompt_builder.rb +19 -0
- data/lib/clacky/agent/tool_executor.rb +15 -2
- data/lib/clacky/agent.rb +10 -3
- data/lib/clacky/agent_config.rb +10 -10
- data/lib/clacky/brand_config.rb +444 -0
- data/lib/clacky/cli.rb +103 -3
- data/lib/clacky/default_skills/onboard/SKILL.md +151 -0
- data/lib/clacky/server/http_server.rb +388 -15
- data/lib/clacky/server/scheduler.rb +17 -4
- data/lib/clacky/server/web_ui_controller.rb +9 -0
- data/lib/clacky/tools/base.rb +11 -0
- data/lib/clacky/tools/browser.rb +212 -0
- data/lib/clacky/tools/edit.rb +3 -0
- data/lib/clacky/tools/file_reader.rb +14 -3
- data/lib/clacky/tools/glob.rb +6 -5
- data/lib/clacky/tools/grep.rb +4 -3
- data/lib/clacky/tools/run_project.rb +4 -2
- data/lib/clacky/tools/safe_shell.rb +7 -7
- data/lib/clacky/tools/shell.rb +6 -2
- data/lib/clacky/tools/trash_manager.rb +2 -2
- data/lib/clacky/tools/write.rb +3 -0
- data/lib/clacky/ui2/components/welcome_banner.rb +68 -18
- data/lib/clacky/utils/file_ignore_helper.rb +1 -1
- data/lib/clacky/version.rb +1 -1
- data/lib/clacky/web/app.css +589 -0
- data/lib/clacky/web/app.js +80 -13
- data/lib/clacky/web/brand.js +157 -0
- data/lib/clacky/web/index.html +178 -12
- data/lib/clacky/web/onboard.js +240 -0
- data/lib/clacky/web/sessions.js +321 -17
- data/lib/clacky/web/settings.js +151 -2
- data/lib/clacky/web/skills.js +168 -27
- data/lib/clacky/web/tasks.js +14 -35
- data/lib/clacky.rb +1 -0
- data/scripts/install.sh +106 -1
- metadata +23 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 847578e565b36373d9941ed108df7b68a78a3b485681f22f606637f90f3f6a49
|
|
4
|
+
data.tar.gz: 638855b903c61169486422f5d791a3eb7a7b4751cdee5a3b757abaf4fdd32ff2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 981a682c39c603d101c7755e3bdeecf053519e2eb041120311a4877c2aac9370bbc24cf57ead31595636592eb75513c6844faf9418cf378bb1c767e506b560e0
|
|
7
|
+
data.tar.gz: f7cbdcadf728ddc1825d9f11827f3dc8843981005a59cb5851391580d3f91e25b7f2f32730b928702ea3ad638c54e7c2f2134d0d16d47173dd37816d51e290e5
|
|
@@ -190,10 +190,38 @@ To use this skill, simply say:
|
|
|
190
190
|
- Commit CHANGELOG.md changes
|
|
191
191
|
- Push to remote repository
|
|
192
192
|
|
|
193
|
-
### 7. Final
|
|
194
|
-
|
|
195
|
-
-
|
|
196
|
-
|
|
193
|
+
### 7. Final Summary
|
|
194
|
+
|
|
195
|
+
Present a clear, user-facing release summary after all steps complete:
|
|
196
|
+
|
|
197
|
+
**Format:**
|
|
198
|
+
```
|
|
199
|
+
π v{version} released successfully!
|
|
200
|
+
|
|
201
|
+
π¦ What's new for users:
|
|
202
|
+
|
|
203
|
+
**New Features**
|
|
204
|
+
- [translate each "Added" item into plain user-facing language]
|
|
205
|
+
|
|
206
|
+
**Improvements**
|
|
207
|
+
- [translate each "Improved" item into plain user-facing language]
|
|
208
|
+
|
|
209
|
+
**Bug Fixes**
|
|
210
|
+
- [translate each "Fixed" item into plain user-facing language]
|
|
211
|
+
|
|
212
|
+
π Links:
|
|
213
|
+
- RubyGems: https://rubygems.org/gems/openclacky/versions/{version}
|
|
214
|
+
- GitHub Release: https://github.com/clacky-ai/open-clacky/releases/tag/v{version}
|
|
215
|
+
|
|
216
|
+
Install/upgrade: gem install openclacky
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Rules for writing the summary:**
|
|
220
|
+
- Write from the user's perspective β what can they now do, or what problem is now fixed
|
|
221
|
+
- Avoid technical jargon (no "cursor-paginated", "frontmatter", "REST API" β explain what it means instead)
|
|
222
|
+
- Skip "More" / chore items unless they directly affect users
|
|
223
|
+
- Keep each bullet to one sentence, action-oriented
|
|
224
|
+
- Example translation: `fix: expand ~ in file system tools path arguments` β "File paths starting with `~` (home directory) now work correctly in all file tools"
|
|
197
225
|
|
|
198
226
|
## Commands Used
|
|
199
227
|
|
|
@@ -248,6 +276,7 @@ gh release create vX.Y.Z \
|
|
|
248
276
|
- CHANGELOG.md updated with release notes
|
|
249
277
|
- GitHub Release created and visible at https://github.com/clacky-ai/open-clacky/releases
|
|
250
278
|
- No build or deployment errors
|
|
279
|
+
- User-facing release summary presented at the end
|
|
251
280
|
|
|
252
281
|
## Error Handling
|
|
253
282
|
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.8.0] - 2026-03-06
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- White-label brand licensing system: customize the web UI with your own name, logo, colors, and skills via `brand_config.yml`
|
|
14
|
+
- Brand skills tab in the web UI with private badge, shown only when brand skills are configured
|
|
15
|
+
- Slash command prompt rule: skill invocations (e.g. `/skill-name`) are now expanded inside the agent at run time, enabling mid-session skill triggering
|
|
16
|
+
|
|
17
|
+
### Improved
|
|
18
|
+
- Server-side brand name rendering eliminates the first-paint brand name flash in the web UI
|
|
19
|
+
- Collapsible tool call blocks in the web UI β long tool outputs are now grouped and collapsed by default
|
|
20
|
+
- `safe_shell` now catches `ArgumentError` in addition to `BadQuotedString` for more robust command parsing
|
|
21
|
+
- Eliminated `Dir.chdir` global state in session handling, fixing race conditions in concurrent sessions
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- Skill slash commands are now expanded inside `agent.run` so that `/onboard` and similar commands work correctly when triggered mid-session
|
|
25
|
+
- Observer state machine handles `awaiting` state transitions properly
|
|
26
|
+
|
|
27
|
+
### More
|
|
28
|
+
- Disabled ClaudeCode `ANTHROPIC_API_KEY` environment variable fallback in `AgentConfig` for cleaner env isolation
|
|
29
|
+
- Updated gemspec, lockfile, and install script
|
|
30
|
+
- Added web asset syntax specs and brand config specs
|
|
31
|
+
|
|
32
|
+
## [0.7.9] - 2026-03-07
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
- Cursor-paginated message history in web UI for large session navigation
|
|
36
|
+
- `confirm_all` permission mode for WebUI human sessions
|
|
37
|
+
- Re-run onboard entry in settings panel
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
- Expand `~` in file system tools path arguments (file_reader, glob, grep, write, edit)
|
|
41
|
+
- Sort sessions newest-first with scheduled sessions at bottom
|
|
42
|
+
- Tasks and skills sidebar items now static β no longer disappear on scroll
|
|
43
|
+
- Delete task now also removes associated schedules
|
|
44
|
+
|
|
45
|
+
### More
|
|
46
|
+
- Add frontmatter (`name`, `description`, `disable-model-invocation`, `user-invocable`) to onboard skill
|
|
47
|
+
|
|
10
48
|
## [0.7.8] - 2026-03-06
|
|
11
49
|
|
|
12
50
|
### Added
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Agent-First UI Design Philosophy
|
|
2
|
+
|
|
3
|
+
> Guiding principle for all OpenClacky UI and feature design.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Core Principle
|
|
8
|
+
|
|
9
|
+
**Conversation first, interactive cards when needed.**
|
|
10
|
+
|
|
11
|
+
Users interact with the Agent through natural language to accomplish everything. When conversation is inconvenient for structured input (e.g. dropdowns, multi-select, precise time picking), the Agent triggers an **interactive card** via the `request_user_feedback` tool β rendered by the frontend as a structured UI component. Cards are a complement to conversation, not a replacement.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Two Interaction Modes
|
|
16
|
+
|
|
17
|
+
### 1. Conversation (default)
|
|
18
|
+
User expresses intent in natural language, Agent understands and executes.
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
User: Send me a daily standup summary every morning at 9
|
|
22
|
+
Agent: Done! Task created, runs MonβFri at 09:00 β
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. Interactive Cards (when conversation falls short)
|
|
26
|
+
When the Agent needs structured input that's hard to express in free text, it calls `request_user_feedback`. The frontend renders this as an interactive card (dropdowns, radio buttons, time pickers, etc.).
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Agent calls request_user_feedback β frontend renders a card:
|
|
30
|
+
|
|
31
|
+
βββββββββββββββββββββββββββββββ
|
|
32
|
+
β π Confirm task settings β
|
|
33
|
+
β Frequency: [Daily βΌ] β
|
|
34
|
+
β Time: [09:00 ] β
|
|
35
|
+
β [β
Confirm] [Cancel] β
|
|
36
|
+
βββββββββββββββββββββββββββββββ
|
|
37
|
+
|
|
38
|
+
User fills card β structured data sent back to Agent β execution continues
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## When to Use Cards
|
|
44
|
+
|
|
45
|
+
| Situation | Reason |
|
|
46
|
+
|-----------|--------|
|
|
47
|
+
| Choosing from a list of options | Easier than enumerating in chat |
|
|
48
|
+
| Date / time selection | Precise value, error-prone in free text |
|
|
49
|
+
| Sensitive input like API keys | Should not appear in conversation history |
|
|
50
|
+
| Collecting multiple fields at once | One card beats several back-and-forth questions |
|
|
51
|
+
|
|
52
|
+
Everything else: use conversation.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## What Should NOT Exist
|
|
57
|
+
|
|
58
|
+
- β Persistent configuration form pages
|
|
59
|
+
- β Fields that require users to understand technical details (cron expressions, agent IDs, etc.)
|
|
60
|
+
- β More than 3 action buttons per list row
|
|
61
|
+
- β Standalone "Create" form modals
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Role of UI Pages
|
|
66
|
+
|
|
67
|
+
UI pages are for **displaying state**, not for configuring things:
|
|
68
|
+
|
|
69
|
+
- β
Show task lists, run history, current status
|
|
70
|
+
- β
Minimal action set per row: βΆ Run / β Edit (opens conversation) / β Delete
|
|
71
|
+
- β No inline create/edit forms inside list pages
|
|
72
|
+
|
|
73
|
+
Clicking "Edit" opens an Agent conversation with context pre-filled. The Agent drives the modification flow from there.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
*Applies to all OpenClacky Web UI and feature design.*
|