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
12 changes: 11 additions & 1 deletion .github/actions/checkout-eyrie/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,17 @@ runs:
# (e.g. by a squash-merge). A depth-1 clone can't check
# out older commits and fails with "unable to read tree".
git clone "https://github.com/GrayCodeAI/${repo}.git" "$dest"
(cd "$dest" && git checkout --quiet "$commit")
if ! (cd "$dest" && git checkout --quiet "$commit" 2>/dev/null); then
echo "Submodule commit $commit not reachable, falling back to ref"
ref="${{ inputs.ref }}"
if [ "$ref" = "main" ]; then
rm -rf "$dest"
git clone --depth=1 --branch main \
"https://github.com/GrayCodeAI/${repo}.git" "$dest"
else
(cd "$dest" && git fetch --depth=1 "origin" "$ref" && git checkout --quiet "$ref")
fi
fi
else
ref="${{ inputs.ref }}"
# Fall back to main if the branch doesn't exist on the dependency repo.
Expand Down
2 changes: 1 addition & 1 deletion cmd/chat.go
Original file line number Diff line number Diff line change
Expand Up @@ -578,7 +578,7 @@ func runChat() error {
}
systemPrompt := promptRes.text
settings := settingsRes.settings
m, err := newChatModelWithRegistry(ref, systemPrompt, settings, registryRes.registry)
m, err := newChatModel(ref, systemPrompt, settings)
if err != nil {
return err
}
Expand Down
8 changes: 2 additions & 6 deletions cmd/chat_scrollbar.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,8 @@ const (
scrollbarBottomGlyph = "╵" // cap at the very bottom of the track
)

var (
// scrollbarThumbStyle — brand orange thumb so it pops.
scrollbarThumbStyle = lipgloss.NewStyle().Foreground(hawkColor)
// scrollbarTrackStyle — very dim grey track so it doesn't distract.
scrollbarTrackStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#3A3A3A"))
)
// scrollbarThumbStyle — brand orange thumb so it pops.
var scrollbarThumbStyle = lipgloss.NewStyle().Foreground(hawkColor)

// chatHasOverflow reports whether chat content exceeds the viewport height.
func (m chatModel) chatHasOverflow() bool {
Expand Down
6 changes: 0 additions & 6 deletions cmd/chat_stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,6 @@ func (m *chatModel) startPromptCommand(display, prompt string) (tea.Model, tea.C
return m, nil
}

// dispatchStreamEvent maps one engine event to TUI messages. Returns true when
// the pump should stop (error or done).
func dispatchStreamEvent(ref *progRef, ev engine.StreamEvent) bool {
return dispatchStreamEventWithFlush(ref, ev, nil)
}

func dispatchStreamEventWithFlush(ref *progRef, ev engine.StreamEvent, flush func()) bool {
if ev.Type != "content" && flush != nil {
flush()
Expand Down
2 changes: 1 addition & 1 deletion external/sight
Submodule sight updated 0 files
4 changes: 0 additions & 4 deletions internal/engine/safety/permission.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,6 @@ func ToolSummary(name string, args map[string]interface{}) string {
return name
}

func boolPtr(v bool) *bool {
return &v
}

func pathArgument(args map[string]interface{}) (string, bool) {
if p, ok := args["path"].(string); ok && p != "" {
return p, true
Expand Down
17 changes: 5 additions & 12 deletions internal/engine/stream_tool_exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,6 @@ type toolExecResult struct {
isErr bool
}

// classifyToolCalls splits tool calls into concurrent (read-only) and sequential (write) batches.
func classifyToolCalls(calls []types.ToolCall) (concurrent, sequential []types.ToolCall) {
for _, tc := range calls {
if tool.IsReadOnly(tc.Name) {
concurrent = append(concurrent, tc)
} else {
sequential = append(sequential, tc)
}
}
return
}

// filePathArgKeys is the list of argument names that are conventionally
// file paths. Tools with non-standard names silently fall through and
// extractTargets returns an empty list. For a more robust extraction, see
Expand Down Expand Up @@ -203,6 +191,7 @@ func (s *Session) executeToolCalls(ctx context.Context, toolCalls []types.ToolCa
readOnlySem := make(chan struct{}, maxConcurrentReadOnlyToolCalls)
networkSem := make(chan struct{}, maxConcurrentNetworkReadOnlyToolCalls)
var wg sync.WaitGroup
var mu sync.Mutex

for _, item := range concurrentCalls {
wg.Add(1)
Expand All @@ -214,13 +203,17 @@ func (s *Session) executeToolCalls(ctx context.Context, toolCalls []types.ToolCa
networkSem <- struct{}{}
defer func() { <-networkSem }()
}
mu.Lock()
results[item.index] = s.executeSingleTool(ctx, item.tc, ch, turnCount, intentText)
mu.Unlock()
}(item)
}
wg.Wait()

for _, item := range sequentialCalls {
mu.Lock()
results[item.index] = s.executeSingleTool(ctx, item.tc, ch, turnCount, intentText)
mu.Unlock()
}

return results
Expand Down
6 changes: 3 additions & 3 deletions internal/plugin/bundled_skills/idea-refine/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ Refines raw ideas into sharp, actionable concepts worth building through structu

## How It Works

1. **Understand & Expand (Divergent):** Restate the idea, ask sharpening questions, and generate variations.
2. **Evaluate & Converge:** Cluster ideas, stress-test them, and surface hidden assumptions.
3. **Sharpen & Ship:** Produce a concrete markdown one-pager moving work forward.
1. **Understand & Expand (Divergent):** Restate the idea, ask sharpening questions, and generate variations.
2. **Evaluate & Converge:** Cluster ideas, stress-test them, and surface hidden assumptions.
3. **Sharpen & Ship:** Produce a concrete markdown one-pager moving work forward.

## Usage

Expand Down
1 change: 1 addition & 0 deletions internal/plugin/bundled_skills/idea-refine/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ One thing I want to push back on: you said variation 1 feels "necessary but bori

**Skill produces:**

<!-- markdownlint-disable MD025 -->
# ReOrder: Keep Your Regulars Ordering Direct

## Problem Statement
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,6 @@ npx lhci autorun

For detailed performance checklists, optimization commands, and anti-pattern reference, see `references/performance-checklist.md`.


## Common Rationalizations

| Rationalization | Reality |
Expand Down
14 changes: 7 additions & 7 deletions spec/agent-skills/docs/antigravity-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Each command automatically invokes the corresponding skill and guides the agent

## Skills & Discovery

Antigravity automatically discovers skills inside the plugin's `skills/` directory.
Antigravity automatically discovers skills inside the plugin's `skills/` directory.
* Antigravity matches user tasks and intents to relevant skills on-demand.
* If a task matches a skill, the agent will load the skill and prompt you for permission before executing.

Expand All @@ -85,15 +85,15 @@ agy plugin validate /path/to/agent-skills
Antigravity CLI automatically discovers the `SKILL.md` files located in the `skills/` directory of the installed plugin. Using the trigger descriptions in each skill's frontmatter, the agent will dynamically activate the appropriate workflow when it detects matching developer intent.

For example, when you ask the agent to:
- **Design a new system** &rarr; It will suggest/activate `spec-driven-development`.
- **Implement a feature** &rarr; It will activate `incremental-implementation` and `test-driven-development`.
- **Fix a bug** &rarr; It will activate `debugging-and-error-recovery`.
* **Design a new system** &rarr; It will suggest/activate `spec-driven-development`.
* **Implement a feature** &rarr; It will activate `incremental-implementation` and `test-driven-development`.
* **Fix a bug** &rarr; It will activate `debugging-and-error-recovery`.

### 2. Specialized Agent Personas
The plugin registers reusable subagent definitions from the `agents/` directory:
- `code-reviewer.md`
- `security-auditor.md`
- `test-engineer.md`
\* `code-reviewer.md`
\* `security-auditor.md`
\* `test-engineer.md`

You can invoke these personas directly within your session or when delegating tasks using subagents.

Expand Down
6 changes: 3 additions & 3 deletions spec/agent-skills/skills/idea-refine/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ Refines raw ideas into sharp, actionable concepts worth building through structu

## How It Works

1. **Understand & Expand (Divergent):** Restate the idea, ask sharpening questions, and generate variations.
2. **Evaluate & Converge:** Cluster ideas, stress-test them, and surface hidden assumptions.
3. **Sharpen & Ship:** Produce a concrete markdown one-pager moving work forward.
\* **Understand & Expand (Divergent):** Restate the idea, ask sharpening questions, and generate variations.
\* **Evaluate & Converge:** Cluster ideas, stress-test them, and surface hidden assumptions.
\* **Sharpen & Ship:** Produce a concrete markdown one-pager moving work forward.

## Usage

Expand Down
1 change: 1 addition & 0 deletions spec/agent-skills/skills/idea-refine/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ One thing I want to push back on: you said variation 1 feels "necessary but bori

**Skill produces:**

<!-- markdownlint-disable MD025 -->
# ReOrder: Keep Your Regulars Ordering Direct

## Problem Statement
Expand Down
1 change: 0 additions & 1 deletion spec/agent-skills/skills/performance-optimization/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,6 @@ npx lhci autorun

For detailed performance checklists, optimization commands, and anti-pattern reference, see `references/performance-checklist.md`.


## Common Rationalizations

| Rationalization | Reality |
Expand Down
14 changes: 7 additions & 7 deletions spec/openspec/docs/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ AI: Created the change. The proposal states the goal (split the
When you archive a change that doesn't touch specs, you can tell the terminal command to skip the spec step:

```bash
$ openspec archive refactor-payment-module --skip-specs
openspec archive refactor-payment-module --skip-specs
```

The same flag is handy for tooling, CI, and docs-only changes. The principle: specs describe behavior, so if behavior didn't change, the spec shouldn't either. See [Concepts](concepts.md#what-a-spec-is-and-is-not).
Expand All @@ -155,8 +155,8 @@ The same flag is handy for tooling, CI, and docs-only changes. The principle: sp
The core `/opsx:propose` drafts everything at once. When you'd rather go one step at a time, turn on the expanded commands:

```bash
$ openspec config profile # select the expanded workflows
$ openspec update # apply them to this project
openspec config profile # select the expanded workflows
openspec update # apply them to this project
```

Now you can scaffold and build incrementally:
Expand Down Expand Up @@ -198,10 +198,10 @@ AI: Welcome to OpenSpec! I'll walk you through a complete change
Any time, from your terminal, you can inspect the state of things:

```bash
$ openspec list # active changes
$ openspec show add-dark-mode # one change in detail
$ openspec validate add-dark-mode # check structure
$ openspec view # interactive dashboard
openspec list # active changes
openspec show add-dark-mode # one change in detail
openspec validate add-dark-mode # check structure
openspec view # interactive dashboard
```

These are read-and-inspect tools. The proposing and building still happen through slash commands in chat. Full details in the [CLI reference](cli.md).
Expand Down
8 changes: 4 additions & 4 deletions spec/openspec/docs/existing-projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ This guide shows how to start on day one without boiling the ocean.
## The thirty-second version

```bash
$ cd your-existing-project
$ openspec init # adds openspec/ and your AI tool's commands
cd your-existing-project
openspec init # adds openspec/ and your AI tool's commands
```

Then, in your AI chat:
Expand Down Expand Up @@ -71,8 +71,8 @@ If you'd rather watch the whole loop happen on your own code with narration, the
Turn on the expanded commands first:

```bash
$ openspec config profile # select the expanded workflows
$ openspec update # apply them to this project
openspec config profile # select the expanded workflows
openspec update # apply them to this project
```

Then in chat:
Expand Down
4 changes: 2 additions & 2 deletions spec/openspec/docs/opsx.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ A proposal defines three things:

The question is: which changed, and by how much?

### Update the Existing Change When:
### Update the Existing Change When

**Same intent, refined execution**
- You discover edge cases you didn't consider
Expand All @@ -242,7 +242,7 @@ The question is: which changed, and by how much?
- A dependency doesn't work as expected
- "Use CSS variables" → "Use Tailwind's dark: prefix instead"

### Start a New Change When:
### Start a New Change When

**Intent fundamentally changed**
- The problem itself is different now
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,3 @@ The update command SHALL report effective artifact behavior when delivery intent
- **AND** at least one updated tool is `skills-invocable`
- **THEN** output SHALL include a clear note that those tools use skills as their command surface
- **AND** output SHALL avoid implying that command generation was skipped due to an error

2 changes: 1 addition & 1 deletion spec/spec-kit/commands/analyze.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ At end of report, output a concise Next Actions block:

- If CRITICAL issues exist: Recommend resolving before `__SPECKIT_COMMAND_IMPLEMENT__`
- If only LOW/MEDIUM: User may proceed, but provide improvement suggestions
- Provide explicit command suggestions: e.g., "Run __SPECKIT_COMMAND_SPECIFY__ with refinement", "Run __SPECKIT_COMMAND_PLAN__ to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'"
- Provide explicit command suggestions: e.g., "Run **SPECKIT_COMMAND_SPECIFY** with refinement", "Run **SPECKIT_COMMAND_PLAN** to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'"

### 8. Offer Remediation

Expand Down
Loading