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
2 changes: 1 addition & 1 deletion src/iac_code/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__version__ = "0.11.0"
__version__ = "0.11.1"
__release_date__ = ""
4 changes: 1 addition & 3 deletions src/iac_code/a2a/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,9 +206,7 @@ def _tool_result_metadata_value(value: Any, *, _depth: int = 0, _artifact_scope:
)
return output
if isinstance(value, list | tuple):
return [
_tool_result_metadata_value(item, _depth=_depth + 1, _artifact_scope=_artifact_scope) for item in value
]
return [_tool_result_metadata_value(item, _depth=_depth + 1, _artifact_scope=_artifact_scope) for item in value]
if value is None or isinstance(value, bool | int | float):
return value
return str(value)[:_METADATA_MAX_CHARS]
Expand Down
2 changes: 2 additions & 0 deletions src/iac_code/a2a/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@
_CANCEL_ACTIVE_TASK_DRAIN_TIMEOUT_SECONDS = 30
_ERROR_TEXT_MAX_CHARS = 1000
_DEFERRED_CLEANUP_PROMPTS_FILENAME = "cleanup-deferred-prompts.json"


def _format_exception(exc: BaseException) -> str:
message = str(exc)
raw = type(exc).__name__ if not message else f"{type(exc).__name__}: {message}"
Expand Down
10 changes: 6 additions & 4 deletions src/iac_code/a2a/pipeline_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@
_EXTREME_JOURNAL_FLUSH_EVENTS = 512
_RECOVERY_STATE_SCOPES = {"step", "candidate", "candidateStep", "candidate_step"}
_RECOVERY_STATE_STATUSES = {"working"}


def backup_committed_delivery_envelope(
ack_envelope: dict[str, Any],
committed_envelope: dict[str, Any],
Expand Down Expand Up @@ -1034,10 +1036,10 @@ async def _maybe_externalize_artifact(

async def _enqueue_artifact_update(self, envelope: dict[str, Any], artifact_metadata: dict[str, Any]) -> None:
event = _artifact_update_event(
task_id=self._delivery_task_id(envelope),
context_id=self._delivery_context_id(envelope),
metadata=artifact_metadata,
)
task_id=self._delivery_task_id(envelope),
context_id=self._delivery_context_id(envelope),
metadata=artifact_metadata,
)
await self.event_queue.enqueue_event(event)

async def _apply_permission_metadata(
Expand Down
4 changes: 1 addition & 3 deletions src/iac_code/a2a/projection.py
Original file line number Diff line number Diff line change
Expand Up @@ -386,9 +386,7 @@ def _project_mapping(
public_path_roots: Iterable[Mapping[str, str]] | None,
) -> dict[Any, Any]:
unchanged_keys = {
key
for key in value
if not isinstance(key, str) or redact_known_public_paths(key, public_path_roots) == key
key for key in value if not isinstance(key, str) or redact_known_public_paths(key, public_path_roots) == key
}
used_keys: set[Any] = set()
projected: dict[Any, Any] = {}
Expand Down
8 changes: 2 additions & 6 deletions src/iac_code/acp/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,16 +95,12 @@ def _history_tool_input_text(tool_name: str, tool_input: dict[str, Any]) -> str:
del tool_name
if not tool_input:
return ""
return _("Input: {input}").format(
input=json.dumps(tool_input, ensure_ascii=False, sort_keys=True, default=str)
)
return _("Input: {input}").format(input=json.dumps(tool_input, ensure_ascii=False, sort_keys=True, default=str))


def _display_tool_input_text(tool_name: str, tool_input: dict[str, Any]) -> str:
del tool_name
return _("Input: {input}").format(
input=json.dumps(tool_input, ensure_ascii=False, sort_keys=True, default=str)
)
return _("Input: {input}").format(input=json.dumps(tool_input, ensure_ascii=False, sort_keys=True, default=str))


def _permission_request_event(event: Any) -> PermissionRequestEvent | None:
Expand Down
2 changes: 1 addition & 1 deletion src/iac_code/i18n/locales/de/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: iac-code 0.11.0\n"
"Project-Id-Version: iac-code 0.11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-04 15:58+0800\n"
"PO-Revision-Date: 2026-05-13 00:00+0000\n"
Expand Down
12 changes: 9 additions & 3 deletions src/iac_code/i18n/locales/de/LC_MESSAGES/webui.po
Original file line number Diff line number Diff line change
Expand Up @@ -3629,15 +3629,19 @@ msgstr "Entwicklermodus"

#: src/iac_code/web/static/js/components/workspace.js
msgid "When enabled, a Developer settings tab appears with additional tools."
msgstr "Wenn aktiviert, erscheint ein Entwickler-Einstellungstab mit zusätzlichen Werkzeugen."
msgstr ""
"Wenn aktiviert, erscheint ein Entwickler-Einstellungstab mit zusätzlichen"
" Werkzeugen."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Enable developer mode"
msgstr "Entwicklermodus aktivieren"

#: src/iac_code/web/static/js/components/workspace.js
msgid "Reveals the Developer settings tab. Turning it off hides that tab again."
msgstr "Zeigt den Entwickler-Einstellungstab an. Beim Deaktivieren wird dieser Tab wieder ausgeblendet."
msgstr ""
"Zeigt den Entwickler-Einstellungstab an. Beim Deaktivieren wird dieser "
"Tab wieder ausgeblendet."

#: src/iac_code/web/static/js/components/workspace.js
msgid ""
Expand Down Expand Up @@ -3788,7 +3792,9 @@ msgstr "Fehlgeschlagene Tool-Aufrufe rot hervorheben"
msgid ""
"When enabled, failed tool calls are painted red. When disabled, they look"
" like any other tool call."
msgstr "Wenn aktiviert, werden fehlgeschlagene Tool-Aufrufe rot dargestellt. Wenn deaktiviert, sehen sie aus wie jeder andere Tool-Aufruf."
msgstr ""
"Wenn aktiviert, werden fehlgeschlagene Tool-Aufrufe rot dargestellt. Wenn"
" deaktiviert, sehen sie aus wie jeder andere Tool-Aufruf."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Restart service"
Expand Down
2 changes: 1 addition & 1 deletion src/iac_code/i18n/locales/es/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: iac-code 0.11.0\n"
"Project-Id-Version: iac-code 0.11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-04 15:58+0800\n"
"PO-Revision-Date: 2026-05-13 00:00+0000\n"
Expand Down
17 changes: 13 additions & 4 deletions src/iac_code/i18n/locales/es/LC_MESSAGES/webui.po
Original file line number Diff line number Diff line change
Expand Up @@ -3617,15 +3617,19 @@ msgstr "Modo de desarrollador"

#: src/iac_code/web/static/js/components/workspace.js
msgid "When enabled, a Developer settings tab appears with additional tools."
msgstr "Cuando se activa, aparece una pestaña de ajustes de Desarrollador con herramientas adicionales."
msgstr ""
"Cuando se activa, aparece una pestaña de ajustes de Desarrollador con "
"herramientas adicionales."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Enable developer mode"
msgstr "Activar el modo de desarrollador"

#: src/iac_code/web/static/js/components/workspace.js
msgid "Reveals the Developer settings tab. Turning it off hides that tab again."
msgstr "Muestra la pestaña de ajustes de Desarrollador. Al desactivarlo, esa pestaña se oculta de nuevo."
msgstr ""
"Muestra la pestaña de ajustes de Desarrollador. Al desactivarlo, esa "
"pestaña se oculta de nuevo."

#: src/iac_code/web/static/js/components/workspace.js
msgid ""
Expand Down Expand Up @@ -3763,7 +3767,9 @@ msgstr "Llamadas a herramientas fallidas"

#: src/iac_code/web/static/js/components/workspace.js
msgid "Control how failed tool calls are shown in the transcript."
msgstr "Controla cómo se muestran en la transcripción las llamadas a herramientas fallidas."
msgstr ""
"Controla cómo se muestran en la transcripción las llamadas a herramientas"
" fallidas."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Highlight failed tool calls in red"
Expand All @@ -3773,7 +3779,10 @@ msgstr "Resaltar en rojo las llamadas a herramientas fallidas"
msgid ""
"When enabled, failed tool calls are painted red. When disabled, they look"
" like any other tool call."
msgstr "Cuando se activa, las llamadas a herramientas fallidas se muestran en rojo. Cuando se desactiva, se ven como cualquier otra llamada a herramientas."
msgstr ""
"Cuando se activa, las llamadas a herramientas fallidas se muestran en "
"rojo. Cuando se desactiva, se ven como cualquier otra llamada a "
"herramientas."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Restart service"
Expand Down
2 changes: 1 addition & 1 deletion src/iac_code/i18n/locales/fr/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: iac-code 0.11.0\n"
"Project-Id-Version: iac-code 0.11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-04 15:58+0800\n"
"PO-Revision-Date: 2026-05-13 00:00+0000\n"
Expand Down
17 changes: 13 additions & 4 deletions src/iac_code/i18n/locales/fr/LC_MESSAGES/webui.po
Original file line number Diff line number Diff line change
Expand Up @@ -3631,15 +3631,19 @@ msgstr "Mode développeur"

#: src/iac_code/web/static/js/components/workspace.js
msgid "When enabled, a Developer settings tab appears with additional tools."
msgstr "Lorsqu’il est activé, un onglet de paramètres Développeur apparaît avec des outils supplémentaires."
msgstr ""
"Lorsqu’il est activé, un onglet de paramètres Développeur apparaît avec "
"des outils supplémentaires."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Enable developer mode"
msgstr "Activer le mode développeur"

#: src/iac_code/web/static/js/components/workspace.js
msgid "Reveals the Developer settings tab. Turning it off hides that tab again."
msgstr "Affiche l’onglet de paramètres Développeur. Le désactiver masque à nouveau cet onglet."
msgstr ""
"Affiche l’onglet de paramètres Développeur. Le désactiver masque à "
"nouveau cet onglet."

#: src/iac_code/web/static/js/components/workspace.js
msgid ""
Expand Down Expand Up @@ -3780,7 +3784,9 @@ msgstr "Appels d’outils en échec"

#: src/iac_code/web/static/js/components/workspace.js
msgid "Control how failed tool calls are shown in the transcript."
msgstr "Contrôle la façon dont les appels d’outils en échec sont affichés dans la transcription."
msgstr ""
"Contrôle la façon dont les appels d’outils en échec sont affichés dans la"
" transcription."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Highlight failed tool calls in red"
Expand All @@ -3790,7 +3796,10 @@ msgstr "Surligner en rouge les appels d’outils en échec"
msgid ""
"When enabled, failed tool calls are painted red. When disabled, they look"
" like any other tool call."
msgstr "Lorsqu’il est activé, les appels d’outils en échec sont affichés en rouge. Lorsqu’il est désactivé, ils ressemblent à n’importe quel autre appel d’outil."
msgstr ""
"Lorsqu’il est activé, les appels d’outils en échec sont affichés en "
"rouge. Lorsqu’il est désactivé, ils ressemblent à n’importe quel autre "
"appel d’outil."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Restart service"
Expand Down
2 changes: 1 addition & 1 deletion src/iac_code/i18n/locales/ja/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: iac-code 0.11.0\n"
"Project-Id-Version: iac-code 0.11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-04 15:58+0800\n"
"PO-Revision-Date: 2026-05-13 00:00+0000\n"
Expand Down
2 changes: 1 addition & 1 deletion src/iac_code/i18n/locales/pt/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: iac-code 0.11.0\n"
"Project-Id-Version: iac-code 0.11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-04 15:58+0800\n"
"PO-Revision-Date: 2026-05-13 00:00+0000\n"
Expand Down
16 changes: 12 additions & 4 deletions src/iac_code/i18n/locales/pt/LC_MESSAGES/webui.po
Original file line number Diff line number Diff line change
Expand Up @@ -3610,15 +3610,19 @@ msgstr "Modo de desenvolvedor"

#: src/iac_code/web/static/js/components/workspace.js
msgid "When enabled, a Developer settings tab appears with additional tools."
msgstr "Quando ativado, uma aba de configurações de Desenvolvedor aparece com ferramentas adicionais."
msgstr ""
"Quando ativado, uma aba de configurações de Desenvolvedor aparece com "
"ferramentas adicionais."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Enable developer mode"
msgstr "Ativar o modo de desenvolvedor"

#: src/iac_code/web/static/js/components/workspace.js
msgid "Reveals the Developer settings tab. Turning it off hides that tab again."
msgstr "Mostra a aba de configurações de Desenvolvedor. Ao desativá-lo, essa aba é ocultada novamente."
msgstr ""
"Mostra a aba de configurações de Desenvolvedor. Ao desativá-lo, essa aba "
"é ocultada novamente."

#: src/iac_code/web/static/js/components/workspace.js
msgid ""
Expand Down Expand Up @@ -3755,7 +3759,9 @@ msgstr "Chamadas de ferramenta com falha"

#: src/iac_code/web/static/js/components/workspace.js
msgid "Control how failed tool calls are shown in the transcript."
msgstr "Controla como as chamadas de ferramenta com falha são exibidas na transcrição."
msgstr ""
"Controla como as chamadas de ferramenta com falha são exibidas na "
"transcrição."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Highlight failed tool calls in red"
Expand All @@ -3765,7 +3771,9 @@ msgstr "Destacar em vermelho as chamadas de ferramenta com falha"
msgid ""
"When enabled, failed tool calls are painted red. When disabled, they look"
" like any other tool call."
msgstr "Quando ativado, as chamadas de ferramenta com falha ficam em vermelho. Quando desativado, elas parecem qualquer outra chamada de ferramenta."
msgstr ""
"Quando ativado, as chamadas de ferramenta com falha ficam em vermelho. "
"Quando desativado, elas parecem qualquer outra chamada de ferramenta."

#: src/iac_code/web/static/js/components/workspace.js
msgid "Restart service"
Expand Down
2 changes: 1 addition & 1 deletion src/iac_code/i18n/locales/zh/LC_MESSAGES/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: iac-code 0.11.0\n"
"Project-Id-Version: iac-code 0.11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-04 15:58+0800\n"
"PO-Revision-Date: 2026-04-02 00:00+0000\n"
Expand Down
4 changes: 1 addition & 3 deletions src/iac_code/services/telemetry/content_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,7 @@ def serialize_input_messages(messages: list) -> str:
for block in content:
btype = getattr(block, "type", "text")
if btype == "text":
parts.append(
{"type": "text", "content": _truncate(_strict_text(getattr(block, "text", "") or ""))}
)
parts.append({"type": "text", "content": _truncate(_strict_text(getattr(block, "text", "") or ""))})
elif btype == "tool_use":
tool_use_id = _tool_call_id(block)
tool_name = _strict_text(getattr(block, "name", ""))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,11 +252,7 @@ def apply_contract_corrections(payload: Mapping[str, Any]) -> dict[str, Any]:
frozenset({"component", "deprecated", "replacement", "scope"}),
),
"common_metadata": (
{
field: deepcopy(common[field])
for field in ("coverage", "schema", "semantic_rules")
if field in common
}
{field: deepcopy(common[field]) for field in ("coverage", "schema", "semantic_rules") if field in common}
if isinstance(common, Mapping)
else deepcopy(common)
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -733,9 +733,7 @@ def _validate_parameter(
"ROS5305",
Severity.WARNING,
_("AssociationProperty availability depends on the stock form read-only state."),
_(
"The editable form path does not support this value, while the read-only path may bypass it."
),
_("The editable form path does not support this value, while the read-only path may bypass it."),
association_path,
subject=normalized_association,
stable_args=("excluded-read-only-unknown", normalized_association),
Expand Down Expand Up @@ -2155,9 +2153,7 @@ def _emit_reference_limitation(self, name: str, path: RosPath, reference_context
self._emit(
"ROS5305",
Severity.WARNING,
_(
"Metadata reference {} has more than one possible lookup scope."
).format(name),
_("Metadata reference {} has more than one possible lookup scope.").format(name),
_(
"It may resolve from template Parameters or component-local data. The runtime component is "
"unknown, so local validation leaves the reference unchecked."
Expand Down
3 changes: 1 addition & 2 deletions src/iac_code/utils/public_paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,7 @@ def _redact_known_path_token(
def _path_matches_roots(path: str, roots: list[_NormalizedRoot]) -> bool:
windows = _is_windows_path(path)
return any(
root.windows == windows
and _path_is_under_root(candidate, root.norm_path, windows=windows)
root.windows == windows and _path_is_under_root(candidate, root.norm_path, windows=windows)
for candidate in _candidate_norm_paths(path, windows=windows)
for root in roots
)
Expand Down
4 changes: 1 addition & 3 deletions src/iac_code/web/runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -471,9 +471,7 @@ async def start_turn(self, request: WebTurnRequest) -> dict[str, Any]:
"user.message", _user_message_payload(request, turn_id=turn_id)
)
input_consumed = True
self.manager.schedule_llm_title(
self.session, text=request.text, image_ids=request.image_ids
)
self.manager.schedule_llm_title(self.session, text=request.text, image_ids=request.image_ids)
# 记录本轮“回放下界”:重载进行中会话时只回放本轮事件(尚未持久化),已完成
# 轮次由存储转录提供,避免完成轮次被回放而重复渲染。
self.session.active_turn_floor_sequence = int(user_event["sequence"]) - 1
Expand Down
4 changes: 1 addition & 3 deletions src/iac_code/web/session_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -2455,9 +2455,7 @@ async def _run() -> None:
img = load_cached_image(image_id, cwd=session.cwd, session_id=session.session_id)
except Exception: # noqa: BLE001 - 图片缺失不应中断标题生成
continue
image_blocks.append(
ContentBlock(type="image", media_type=img.media_type, data=img.base64_data)
)
image_blocks.append(ContentBlock(type="image", media_type=img.media_type, data=img.base64_data))
title = await session_titler.generate_session_title(
text=text,
image_blocks=image_blocks,
Expand Down
4 changes: 1 addition & 3 deletions src/iac_code/web/session_titler.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,7 @@ def _build_manager(selection: WebModelSelection) -> ProviderManager:
return ProviderManager(
model=selection.model,
credentials=credentials,
effort_override=_title_effort_override(
selection.provider or get_active_provider_key(), selection.model
),
effort_override=_title_effort_override(selection.provider or get_active_provider_key(), selection.model),
**overrides,
)

Expand Down
4 changes: 1 addition & 3 deletions tests/a2a/test_grpc_transport.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,9 +191,7 @@ def __init__(self, *, message, data=None) -> None:
ParseDict({"path": server_path, "password": "real-secret"}, response.message.metadata)

projected = await handler._handle_unary(request, object(), None, response)
handler.error_to_abort = WireError(
message=f"failed token=real-secret at {server_path}", data={"path": server_path}
)
handler.error_to_abort = WireError(message=f"failed token=real-secret at {server_path}", data={"path": server_path})
await handler._handle_unary(request, object(), None, a2a_pb2.SendMessageResponse())

assert MessageToDict(projected.message.metadata) == {"path": "[PATH]", "password": "real-secret"}
Expand Down
Loading
Loading