swarph-cli 0.13.4__tar.gz → 0.13.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {swarph_cli-0.13.4/src/swarph_cli.egg-info → swarph_cli-0.13.5}/PKG-INFO +1 -1
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/pyproject.toml +1 -1
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/__init__.py +1 -1
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/spawn.py +7 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5/src/swarph_cli.egg-info}/PKG-INFO +1 -1
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_spawn_command.py +12 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/LICENSE +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/README.md +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/setup.cfg +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/caller.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/capture/__init__.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/capture/harden.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/capture/lineage.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/capture/liveness.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/capture/manifest.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/capture/paths.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/capture/verify.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/cell.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/__init__.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/add.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/cell.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/chat.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/compress.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/daemon.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/hook_output.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/hooks.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/import_session.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/init.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/install_hook.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/mcp_server.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/memory_sync.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/mesh.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/onboard.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/protocol_handler.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/ratify.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/security.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/commands/watchdog.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/compress/__init__.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/compress/levers.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/compress/marker.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/compress/verify.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/main.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/parsers/__init__.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/parsers/claude.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/systemd/swarph-watchdog.default +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/systemd/swarph-watchdog.service +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli/systemd/swarph-watchdog.timer +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli.egg-info/SOURCES.txt +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli.egg-info/dependency_links.txt +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli.egg-info/entry_points.txt +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli.egg-info/requires.txt +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/src/swarph_cli.egg-info/top_level.txt +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_add_security_gate.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_artifact_add.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_artifact_hash.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_artifact_lib.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_artifact_mcp.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_artifact_skill.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_artifact_tool.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_artifact_uri.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_caller_meta_guard.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_capture_lineage.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_capture_liveness.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_capture_manifest.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_capture_paths.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_capture_security.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_cell_command_dispatch.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_cell_harden.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_cell_loader.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_cell_verify.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_chat_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_claude_parser.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_claude_tmux_template.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_compress_caller_convention.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_compress_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_compress_levers.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_compress_marker.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_compress_verify.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_daemon_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_feature_to_uri.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_hook_output.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_hooks_add.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_hooks_bundle.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_hooks_init.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_hooks_lifecycle.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_hooks_merge.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_import_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_init_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_install_hook.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_main.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_mcp_server.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_memory_sync.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_mesh_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_mesh_sidecar.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_onboard_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_protocol_handler.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_ratify_command.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_repl_caller_convention.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_security.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_session_path_role_gate.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_smoke_chat.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_smoke_one_shot.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_smoke_phase_5_5.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_spawn_live_pin.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_spawn_mitosis_lineage.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_spawn_tmux_session.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_spawn_windows_relaunch.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_version_consistency.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_watchdog.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_watchdog_dm_wake.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_watchdog_dm_wake_cooldown.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_watchdog_dm_wake_wiring.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_watchdog_model_rung.py +0 -0
- {swarph_cli-0.13.4 → swarph_cli-0.13.5}/tests/test_watchdog_stale_peers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: swarph-cli
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.5
|
|
4
4
|
Summary: The `swarph` binary — multi-LLM CLI + mesh-gateway integration: multi-provider `swarph spawn` (claude/codex/antigravity per cell.provider via a ProviderMembrane + subprocess billing-scrub), interactive `swarph init`, `swarph mesh` (send/inbox/register) + inbox sidecar, `assisted_memory` (git-backed durable memory), session import, watchdog. v0.9.5: foolproof Windows auto-relaunch (genuine-WT detection via process ancestry, not WT_SESSION).
|
|
5
5
|
Author: Pierre Samson, Claude Opus
|
|
6
6
|
License: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "swarph-cli"
|
|
7
|
-
version = "0.13.
|
|
7
|
+
version = "0.13.5"
|
|
8
8
|
description = "The `swarph` binary — multi-LLM CLI + mesh-gateway integration: multi-provider `swarph spawn` (claude/codex/antigravity per cell.provider via a ProviderMembrane + subprocess billing-scrub), interactive `swarph init`, `swarph mesh` (send/inbox/register) + inbox sidecar, `assisted_memory` (git-backed durable memory), session import, watchdog. v0.9.5: foolproof Windows auto-relaunch (genuine-WT detection via process ancestry, not WT_SESSION)."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -418,6 +418,13 @@ def _claude_env() -> dict[str, str]:
|
|
|
418
418
|
"""
|
|
419
419
|
env = scrub_env_for_subprocess()
|
|
420
420
|
env["SWARPH_SPAWN"] = "1"
|
|
421
|
+
# Disable the Claude Code in-session rating survey ("How is Claude doing this
|
|
422
|
+
# session?"). On a headless/automated cell it pops up as a modal that the
|
|
423
|
+
# wake-injector refuses to type into, so it stalls scheduled wakes
|
|
424
|
+
# indefinitely (a survey deferred the weekly newsletter 2+ hours — see
|
|
425
|
+
# feedback_modal_stalls_cell_wake). Suppresses ONLY the survey; does NOT
|
|
426
|
+
# touch telemetry / auto-update / error reporting.
|
|
427
|
+
env["CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY"] = "1"
|
|
421
428
|
return env
|
|
422
429
|
|
|
423
430
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: swarph-cli
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.5
|
|
4
4
|
Summary: The `swarph` binary — multi-LLM CLI + mesh-gateway integration: multi-provider `swarph spawn` (claude/codex/antigravity per cell.provider via a ProviderMembrane + subprocess billing-scrub), interactive `swarph init`, `swarph mesh` (send/inbox/register) + inbox sidecar, `assisted_memory` (git-backed durable memory), session import, watchdog. v0.9.5: foolproof Windows auto-relaunch (genuine-WT detection via process ancestry, not WT_SESSION).
|
|
5
5
|
Author: Pierre Samson, Claude Opus
|
|
6
6
|
License: MIT
|
|
@@ -1343,3 +1343,15 @@ def test_run_spawn_grok_assisted_memory_no_double_system_prompt(
|
|
|
1343
1343
|
assert "you are grok-researcher." in argv[argv.index("--system-prompt-override") + 1]
|
|
1344
1344
|
assert "--rules" in argv # CURRENT_TASK injected here, not as a 2nd override
|
|
1345
1345
|
assert "Active task body" in argv[argv.index("--rules") + 1]
|
|
1346
|
+
|
|
1347
|
+
|
|
1348
|
+
def test_claude_env_disables_feedback_survey(monkeypatch):
|
|
1349
|
+
"""The Claude Code session-rating survey ("How is Claude doing this
|
|
1350
|
+
session?") is a modal that stalls a headless cell's scheduled wake — the
|
|
1351
|
+
wake-injector refuses to type into a modal, so a survey deferred the weekly
|
|
1352
|
+
newsletter 2+ hours (feedback_modal_stalls_cell_wake). Spawned claude cells
|
|
1353
|
+
disable it at the source via env."""
|
|
1354
|
+
monkeypatch.setenv("PATH", "/usr/bin:/bin")
|
|
1355
|
+
from swarph_cli.commands.spawn import _claude_env
|
|
1356
|
+
env = _claude_env()
|
|
1357
|
+
assert env.get("CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY") == "1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|