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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-native-design",
"version": "1.0.0+codex.e5519282396d",
"version": "1.0.0+codex.66dbb8d10905",
"description": "Explore, compare, iterate, and export interactive UI design prototypes from the Design app.",
"author": { "name": "Agent-Native", "url": "https://agent-native.com" },
"homepage": "https://design.agent-native.com",
Expand Down
14 changes: 14 additions & 0 deletions .agents/plugins/agent-native-design/skills/visual-edit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,20 @@ replace them with copied `srcdoc` HTML unless the user explicitly asks for a
frozen snapshot. To change a state, rerun `add-localhost-screens` with the new
path/query or duplicate the screen and update the copy's URL metadata.

## React Source Writeback

- Use compiler/debug provenance (project-relative file, line, column,
component, and runtime multiplicity) to locate React/TSX source. Treat it as
evidence, not as permission for a generic AST structural transform.
- Reparenting, grouping/ungrouping, wrappers, dynamic expressions, repeated
`.map()` instances, shared components, and cross-file changes go through the
coding agent with exact subject/target anchors and their runtime
relationship.
- Before each write, read the file and pass its exact `versionHash` to
`write-local-file` with `requireExpectedVersionHash: true`; on conflict,
re-read and re-plan. Keep the optimistic preview until HMR/runtime confirms
the result. Human write consent remains mandatory and agents cannot grant it.

## Verification

- `list-localhost-connections` returns the expected connection and routes.
Expand Down
5 changes: 5 additions & 0 deletions .changeset/bright-local-react-previews.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Keep local React visual-edit previews hydrated by preserving Vite request metadata and response lengths through the bridge, and recover exact development source locations from React jsxDEV Fiber stacks.
5 changes: 5 additions & 0 deletions .changeset/calm-content-flushes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Expose strict active-collaboration awareness reads so safety-critical sync flows can distinguish no open editor from presence-storage failures.
5 changes: 5 additions & 0 deletions .changeset/confirmed-local-chat-delivery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Add cancellation-safe `sendToAgentChatAndConfirm` delivery confirmation and its submit-result event contract so callers can preserve user work when a local chat message is rejected or times out, without allowing that timed-out message to arrive later.
5 changes: 5 additions & 0 deletions .changeset/f3b-fig-binary-builder-index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Fix `.fig` and other binary files silently corrupting when uploaded through `index-design-system-with-builder`: `buildBuilderDesignSystemIndexFiles` always UTF-8-encoded file content even though `mimeTypeForBuilderDesignSystemFilename` already recognized `.fig` as binary (`application/octet-stream`). Add an optional per-file `encoding: "utf8" | "base64"` (defaults to `utf8`, unchanged for existing text-file callers) so binary files can be base64-encoded by the caller and decoded byte-exact here.
5 changes: 5 additions & 0 deletions .changeset/fresh-authoritative-reverts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Prevent pre-seed collaborative editor updates from reaching autosave, and allow newer authoritative restores to reapply content previously emitted during mount while retaining stale-echo protection during active typing.
5 changes: 5 additions & 0 deletions .changeset/guard-recap-ssr-failures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Prevent PR recap workflows from publishing screenshots of failed recap pages, and report SSR render failures through configured error monitoring.
5 changes: 5 additions & 0 deletions .changeset/loop-protection-background-continuation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Fix long agent-chat turns dying with a Netlify "508 Loop Detected" error after several server-driven continuation chunks: nested self-dispatch chains now break proactively before the platform's undocumented loop-protection limit, and a 508 that does occur is classified distinctly and deferred to the existing unclaimed-run sweep for recovery instead of failing the turn outright.
7 changes: 7 additions & 0 deletions .changeset/lost-turns-recover-lost-handoffs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@agent-native/core": patch
---

Recover background chat turns whose continuation handoff dispatch failed instead of failing them immediately: the pre-inserted successor run is left claimable so the unclaimed-run sweep can redispatch it (and the client poll defers to that sweep within a bound), backed by a backstop that still fails loud if the handoff never lands.

Operational note — terminal-reason change: when a continuation handoff exhausts its dispatch retry budget but the successor row exists, the run's `terminal_reason` is now `background_continuation_dispatch_deferred` (recoverable, awaiting sweep redispatch) instead of `background_continuation_dispatch_failed`. The old `background_continuation_dispatch_failed` reason is still emitted, but now only in the narrower case where the successor row itself could not be pre-inserted. Any dashboards, alerts, or audit queries matching `background_continuation_dispatch_failed` should add `background_continuation_dispatch_deferred` to keep covering this failure class.
7 changes: 7 additions & 0 deletions .changeset/plenty-cobras-cursor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@agent-native/core": patch
---

Fix an awareness "storm" in `useCollaborativeDoc`: the shared collab connection's fast awareness-push path re-broadcast a client's own (unchanged) presence state whenever ANY remote participant's awareness changed, not just when the local user actually moved their cursor or updated their presence. With several people collaborating on the same document, every peer's cursor move caused every other connected client to also re-POST its own state, multiplying awareness traffic roughly quadratically with participant count. The fast-push listener now only fires on locally-originated awareness changes (`origin === "local"`), matching the equivalent guard already present in `usePresence`.

Also add a defensive size cap to the collab `recentEdits` ring (`appendRecentEdit`): descriptor strings (`quote`, `selector`, path entries) and the edit `label` are now truncated to 500 characters. The ring was already bounded in length, but an app forgetting to trim its own excerpt before publishing (e.g. passing a whole paragraph or document as `quote`) could otherwise push an oversized payload through the awareness fast-path broadcast and into the `_collab_awareness` SQL mirror.
5 changes: 5 additions & 0 deletions .changeset/rare-bridges-reconnect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Give the Design localhost bridge a per-boot `bridgeInstanceId`, exposed on `/health`, the `/live-edit-bridge` registration response, and the `/live-edit` "unknown bridge key" 409 (now carrying a machine-readable `code: "unknown-bridge-key"` and the echoed `bridgeKey`). This lets a client distinguish a bridge process restart — which silently empties the in-memory live-edit bridge script registry — from a genuine registration bug, instead of guessing from free-text error strings.
5 changes: 5 additions & 0 deletions .changeset/silly-slots-sanitize.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Fix a recurring `DataCloneError` console error when any embedded extension (Design's Tools/Extensions panel, or any other app using `EmbeddedExtension`) loads or its slot context updates. Slot contexts commonly carry live callback functions the host uses internally; `postMessage`'s structured clone algorithm throws on function-valued properties, so the context update silently never reached the extension iframe. Sanitize the context through a JSON round-trip (dropping functions) before posting it.
5 changes: 5 additions & 0 deletions .changeset/strong-local-source-writes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@agent-native/core": patch
---

Harden local Design source writes with SHA-256 version checks, per-file serialization, atomic replacement, and repeated symlink containment validation.
16 changes: 16 additions & 0 deletions .claude/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,22 @@
"3104"
],
"port": 3104
},
{
"name": "slides",
"runtimeExecutable": "env",
"runtimeArgs": [
"DATABASE_URL=file:/private/tmp/claude-501/-Users-steve-Projects-builder-agent-native-framework/726cb1e5-ab5f-4658-b340-e7877455395b/scratchpad/slides-verify.sqlite",
"PORT=3106",
"AUTH_MODE=local",
"pnpm",
"--dir",
"templates/slides",
"dev",
"--port",
"3106"
],
"port": 3106
}
]
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ test-results/
e2e/.auth/
**/.auth/
**/.auth-debug/
**/.auth-*/

# Wrangler local state
.wrangler
Expand Down
Loading
Loading