---
title: "Consistent workspace globs and model-native agents"
date: "2026-07-25"
---

<Warning>
**Glob semantics changed.** Artifact patterns are now rooted at the sandbox working directory, and the agent's `glob` tool roots patterns at its `path` argument. Both use the same path-segment semantics.

- Replace `*.trace.zip` with `**/*.trace.zip` when traces may be nested.
- Replace `test-results/**` with `**/test-results/**` only when `test-results` may appear below any directory instead of at the workspace root.
- Absolute patterns, backslashes, and patterns containing a `..` segment are now rejected.
- Agent `glob` results are now sorted lexicographically; local results are no longer ordered by modification time.
</Warning>

## One glob language in every sandbox

Fabro now compiles workspace globs once and applies them to normalized relative paths in Rust. Local, Docker, and Daytona sandboxes only enumerate files; provider commands and APIs no longer interpret user patterns.

`*` and `?` stay within one path segment, bracket expressions match one character, and a complete `**` segment crosses directories. Matching is case-sensitive, leading dots are ordinary characters, and `/` is the separator everywhere. Artifact capture and the agent `glob` tool therefore agree on patterns such as `.ai/reports/*.md`, `.ai/reports/**/*.md`, and `.ai/plans/????-??-??-*.md`.

Artifact traversal also uses structured provider metadata for file-size limits and prunes dependency, cache, and build directories before matching.

Artifact collection now treats each post-stage workspace state as authoritative instead of relying on modification timestamps. Fabro records the same path and content hash only once per run and captures the path again when its content changes.

## Model-native Claude 5 and GPT-5.6 agents

Claude 5 and GPT-5.6 Sol, Terra, and Luna now use profiles that match each model family's preferred tools and instructions. Child agents inherit the same task runtime, so background work and completion notifications behave consistently across profiles.

## More

<Accordion title="Fixes">
- Fixed active-time totals for stages that are still running
- Fixed background-agent completion notifications and event delivery
- Fixed Daytona streaming completion and cleanup after failed probes
- Removed the read-before-write guard that could reject valid agent edits
</Accordion>

<Accordion title="Improvements">
- The stage activity panel now opens on Chat and shows disclosed reasoning in Thread details
- Open browser tabs now report when a newer Fabro web build is available
</Accordion>
