-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat(ux): complete UX overhaul — design system, onboarding, web polish #1277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
ilblackdragon
wants to merge
42
commits into
staging
Choose a base branch
from
ux-overhaul
base: staging
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
42 commits
Select commit
Hold shift + click to select a range
e21383e
feat: port NPA psychographic profiling system into IronClaw
jayzalowitz 0e7b77d
feat: replace chat-based onboarding with bootstrap greeting and works…
ilblackdragon 9e59af8
Merge remote-tracking branch 'origin/staging' into jayzalowitz/chat-o…
ilblackdragon 67e1aad
feat(safety): sanitize identity file writes via Sanitizer to prevent …
ilblackdragon 7cb9f86
docs: update profile_onboarding_completed comment to reflect current …
ilblackdragon 104e405
fix(setup): use env_or_override for NEARAI_API_KEY in model fetch config
ilblackdragon 3956833
fix(agent): correct channel/user_id in bootstrap greeting persist call
ilblackdragon 63c6637
fix(web): remove all inline event handlers for CSP compliance
ilblackdragon 71c0aeb
fix(agent): align bootstrap message user/channel and update fixture s…
ilblackdragon 5fa0433
style: cargo fmt
ilblackdragon fd3e8b6
fix(safety): address PR review — expand injection scanning and harden…
ilblackdragon ecbfd20
Merge remote-tracking branch 'origin/staging' into jayzalowitz/chat-o…
ilblackdragon 3d38f6d
style: cargo fmt
ilblackdragon f14d136
fix(setup): detect env-provided LLM keys during quick-mode onboarding
ilblackdragon 0c166a3
Merge remote-tracking branch 'origin/staging' into jayzalowitz/chat-o…
ilblackdragon aa6605f
fix(test): update routine_create_list to expect 7-field normalized cron
ilblackdragon 692ade6
feat(setup): skip LLM provider prompts when NEARAI_API_KEY is present
ilblackdragon d753bb6
fix: unify default model, static bootstrap greeting, and web UI cleanup
ilblackdragon 004d0ef
feat(gateway): full settings page polish with all tiers
ilblackdragon 452da4b
feat(gateway): polish settings page and remove registered tools debug…
ilblackdragon a7aeff4
fix(gateway): address PR review feedback [skip-regression-check]
ilblackdragon f8ffd9e
fix(e2e): update tests for unified settings tab layout [skip-regressi…
ilblackdragon f0abb37
fix(safety): move prompt injection scanning into Workspace write/append
ilblackdragon 93cd14b
fix(gateway): address second round of PR review feedback [skip-regres…
ilblackdragon e110159
fix(e2e): fix WASM channel card selector and skills remove confirm [s…
ilblackdragon d63883a
fix(gateway): address third round of PR review feedback [skip-regress…
ilblackdragon 706b852
fix(e2e): fix auth_completed reload test race condition [skip-regress…
ilblackdragon 4fc0a3c
fix(e2e): debug auth_completed reload test with function counter [ski…
ilblackdragon c636f85
Merge remote-tracking branch 'origin/staging' into jayzalowitz/chat-o…
ilblackdragon 10e35a7
style: cargo fmt
ilblackdragon 9885f7e
feat(gateway): localize all settings labels, descriptions, and channe…
ilblackdragon 97ee5b6
fix: address Copilot review — merge marker order, orphan thread, stal…
ilblackdragon c4fb967
style: cargo fmt
ilblackdragon 4d670ea
style: fmt agent_loop.rs (CI stable rustfmt)
ilblackdragon a657ddd
fix(gateway): localize remaining hardcoded UI strings [skip-regressio…
ilblackdragon c59ae34
fix(gateway): confirm modal a11y, Esc/click-outside, search guard [sk…
ilblackdragon f29c541
fix: lazy-init sanitizer, check profile non-empty before skipping boo…
ilblackdragon a36f5c9
style: cargo fmt
ilblackdragon 161b754
Merge remote-tracking branch 'origin/jayzalowitz/chat-onboarding-and-…
ilblackdragon 5722bc3
Merge remote-tracking branch 'origin/settings-page-polish' into merge…
ilblackdragon 1490841
feat: UX overhaul — shared design system, polished CLI/web experience
ilblackdragon e447de7
feat(ux): complete UX overhaul — design system, onboarding, web polish
ilblackdragon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| --- | ||
| name: delegation | ||
| version: 0.1.0 | ||
| description: Helps users delegate tasks, break them into steps, set deadlines, and track progress via routines and memory. | ||
| activation: | ||
| keywords: | ||
| - delegate | ||
| - hand off | ||
| - assign task | ||
| - help me with | ||
| - take care of | ||
| - remind me to | ||
| - schedule | ||
| - plan my | ||
| - manage my | ||
| - track this | ||
| patterns: | ||
| - "can you.*handle" | ||
| - "I need (help|someone) to" | ||
| - "take over" | ||
| - "set up a reminder" | ||
| - "follow up on" | ||
| tags: | ||
| - personal-assistant | ||
| - task-management | ||
| - delegation | ||
| max_context_tokens: 1500 | ||
| --- | ||
|
|
||
| # Task Delegation Assistant | ||
|
|
||
| When the user wants to delegate a task or get help managing something, follow this process: | ||
|
|
||
| ## 1. Clarify the Task | ||
|
|
||
| Ask what needs to be done, by when, and any constraints. Get enough detail to act independently but don't over-interrogate. If the request is clear, skip straight to planning. | ||
|
|
||
| ## 2. Break It Down | ||
|
|
||
| Decompose the task into concrete, actionable steps. Use `memory_write` to persist the task plan to a path like `tasks/{task-name}.md` with: | ||
| - Clear description | ||
| - Steps with checkboxes | ||
| - Due date (if any) | ||
| - Status: pending/in-progress/done | ||
|
|
||
| ## 3. Set Up Tracking | ||
|
|
||
| If the task is recurring or has a deadline: | ||
| - Create a routine using `routine_create` for scheduled check-ins | ||
| - Add a heartbeat item if it needs daily monitoring | ||
| - Set up an event-triggered routine if it depends on external input | ||
|
|
||
| ## 4. Use Profile Context | ||
|
|
||
| Check `USER.md` for the user's preferences: | ||
| - **Proactivity level**: High = check in frequently. Low = only report on completion. | ||
| - **Communication style**: Match their preferred tone and detail level. | ||
| - **Focus areas**: Prioritize tasks that align with their stated goals. | ||
|
|
||
| ## 5. Execute or Queue | ||
|
|
||
| - If you can do it now (search, draft, organize, calculate), do it immediately. | ||
| - If it requires waiting, external action, or follow-up, create a reminder routine. | ||
| - If it requires tools you don't have, explain what's needed and suggest alternatives. | ||
|
|
||
| ## 6. Report Back | ||
|
|
||
| Always confirm the plan with the user before starting execution. After completing, update the task file in memory and notify the user with a concise summary. | ||
|
|
||
| ## Communication Guidelines | ||
|
|
||
| - Be direct and action-oriented | ||
| - Confirm understanding before acting on ambiguous requests | ||
| - When in doubt about autonomy level, ask once then remember the answer | ||
| - Use `memory_write` to track delegation preferences for future reference |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,118 @@ | ||
| --- | ||
| name: routine-advisor | ||
| version: 0.1.0 | ||
| description: Suggests relevant cron routines based on user context, goals, and observed patterns | ||
| activation: | ||
| keywords: | ||
| - every day | ||
| - every morning | ||
| - every week | ||
| - routine | ||
| - automate | ||
| - remind me | ||
| - check daily | ||
| - monitor | ||
| - recurring | ||
| - schedule | ||
| - habit | ||
| - workflow | ||
| - keep forgetting | ||
| - always have to | ||
| - repetitive | ||
| - notifications | ||
| - digest | ||
| - summary | ||
| - review daily | ||
| - weekly review | ||
| patterns: | ||
| - "I (always|usually|often|regularly) (check|do|look at|review)" | ||
| - "every (morning|evening|week|day|monday|friday)" | ||
| - "I (wish|want) (I|it) (could|would) (automatically|auto)" | ||
| - "is there a way to (auto|schedule|set up)" | ||
| - "can you (check|monitor|watch|track).*for me" | ||
| - "I keep (forgetting|missing|having to)" | ||
| tags: | ||
| - automation | ||
| - scheduling | ||
| - personal-assistant | ||
| - productivity | ||
| max_context_tokens: 1500 | ||
| --- | ||
|
|
||
| # Routine Advisor | ||
|
|
||
| When the conversation suggests the user has a repeatable task or could benefit from automation, consider suggesting a routine. | ||
|
|
||
| ## When to Suggest | ||
|
|
||
| Suggest a routine when you notice: | ||
| - The user describes doing something repeatedly ("I check my PRs every morning") | ||
| - The user mentions forgetting recurring tasks ("I keep forgetting to...") | ||
| - The user asks you to do something that sounds periodic | ||
| - You've learned enough about the user to propose a relevant automation | ||
| - The user has installed extensions that enable new monitoring capabilities | ||
|
|
||
| ## How to Suggest | ||
|
|
||
| Be specific and concrete. Not "Want me to set up a routine?" but rather: "I noticed you review PRs every morning. Want me to create a daily 9am routine that checks your open PRs and sends you a summary?" | ||
|
|
||
| Always include: | ||
| 1. What the routine would do (specific action) | ||
| 2. When it would run (specific schedule in plain language) | ||
| 3. How it would notify them (which channel they're on) | ||
|
|
||
| Wait for the user to confirm before creating. | ||
|
|
||
| ## Pacing | ||
|
|
||
| - First 1-3 conversations: Do NOT suggest routines. Focus on helping and learning. | ||
| - After learning 2-3 user patterns: Suggest your first routine. Keep it simple. | ||
| - After 5+ conversations: Suggest more routines as patterns emerge. | ||
| - Never suggest more than 1 routine per conversation unless the user is clearly interested. | ||
| - If the user declines, wait at least 3 conversations before suggesting again. | ||
|
|
||
| ## Creating Routines | ||
|
|
||
| Use the `routine_create` tool. Before creating, check `routine_list` to avoid duplicates. | ||
|
|
||
| Parameters: | ||
| - `trigger_type`: Usually "cron" for scheduled tasks | ||
| - `schedule`: Standard cron format. Common schedules: | ||
| - Daily 9am: `0 9 * * *` | ||
| - Weekday mornings: `0 9 * * MON-FRI` | ||
| - Weekly Monday: `0 9 * * MON` | ||
| - Every 2 hours during work: `0 9-17/2 * * MON-FRI` | ||
| - Sunday evening: `0 18 * * SUN` | ||
| - `action_type`: "lightweight" for simple checks, "full_job" for multi-step tasks | ||
| - `prompt`: Clear, specific instruction for what the routine should do | ||
| - `context_paths`: Workspace files to load as context (e.g., `["context/profile.json", "MEMORY.md"]`) | ||
|
|
||
| ## Routine Ideas by User Type | ||
|
|
||
| **Developer:** | ||
| - Daily PR review digest (check open PRs, summarize what needs attention) | ||
| - CI/CD failure alerts (monitor build status) | ||
| - Weekly dependency update check | ||
| - Daily standup prep (summarize yesterday's work from daily logs) | ||
|
|
||
| **Professional:** | ||
| - Morning briefing (today's priorities from memory + any pending tasks) | ||
| - End-of-day summary (what was accomplished, what's pending) | ||
| - Weekly goal review (check progress against stated goals) | ||
| - Meeting prep reminders | ||
|
|
||
| **Health/Personal:** | ||
| - Daily exercise or habit check-in | ||
| - Weekly meal planning prompt | ||
| - Monthly budget review reminder | ||
|
|
||
| **General:** | ||
| - Daily news digest on topics of interest | ||
| - Weekly reflection prompt (what went well, what to improve) | ||
| - Periodic task/reminder check-in | ||
| - Regular cleanup of stale tasks or notes | ||
| - Weekly profile evolution (if the user has a profile in `context/profile.json`, suggest a Monday routine that reads the profile via `memory_read`, searches recent conversations for new patterns with `memory_search`, and updates the profile via `memory_write` if any fields should change with confidence > 0.6 — be conservative, only update with clear evidence) | ||
|
|
||
| ## Awareness | ||
|
|
||
| Before suggesting, consider what tools and extensions are currently available. Only suggest routines the agent can actually execute. If a routine would need a tool that isn't installed, mention that too: "If you connect your calendar, I could also send you a morning briefing with today's meetings." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The errors from
get_or_create_assistant_conversationandpersist_assistant_responseare being ignored. This can lead to silent failures where the bootstrap greeting is not persisted to the database, which could be confusing for new users. It would be more robust to handle these potential errors, for example by logging them. This aligns with the principle of robust error handling and logging, as seen in the rule regardingtokio::task::spawn_blocking.References