refactorai-cli 0.7.0__tar.gz → 0.7.1__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.
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/PKG-INFO +1 -1
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/pyproject.toml +1 -1
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/__init__.py +1 -1
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/watch_cmds.py +26 -1
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli.egg-info/PKG-INFO +1 -1
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/README.md +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/auth.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/client.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/cloud_rr.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/__init__.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/account_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/auth_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/branch_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/cloud_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/engine_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/hook_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/model_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/pre_push_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/request_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/rules_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/run_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/runtime_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/runtime_proxy_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/setup_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/toolchains_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commands/workspace_cmds.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commit_queue.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/commit_telemetry.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/control_plane.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/credentials.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/dotenv_loader.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/git_scope.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/local_constitution.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/local_engine_runtime.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/local_paths.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/main.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/model_policy.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/pre_push_gate.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/refactor_branch_store.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/review_runner.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/runtime_manager.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/settings.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/setup_flow.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/watch_ledger.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/watch_state.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli/watch_supervisor.py +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli.egg-info/SOURCES.txt +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli.egg-info/dependency_links.txt +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli.egg-info/entry_points.txt +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli.egg-info/requires.txt +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/refactorai_cli.egg-info/top_level.txt +0 -0
- {refactorai_cli-0.7.0 → refactorai_cli-0.7.1}/setup.cfg +0 -0
|
@@ -909,7 +909,29 @@ def _run_tui(project_root: Path, state: WatchState, runner: ReviewRunner) -> Non
|
|
|
909
909
|
_print_agent_intro("watch")
|
|
910
910
|
from rich.live import Live
|
|
911
911
|
|
|
912
|
-
|
|
912
|
+
# Without a real TTY (piped, captured, CI, some multiplexer log panes) Rich
|
|
913
|
+
# cannot move the cursor to overwrite the previous frame, so an inline Live
|
|
914
|
+
# re-emits the whole graph on every refresh and the terminal fills with
|
|
915
|
+
# stacked copies. In that case skip Live entirely: process the queue once and
|
|
916
|
+
# print a single static frame.
|
|
917
|
+
if not console.is_terminal:
|
|
918
|
+
process_pending(project_root, state, runner)
|
|
919
|
+
state.select_default()
|
|
920
|
+
console.print(render_graph(state))
|
|
921
|
+
return
|
|
922
|
+
|
|
923
|
+
# ``screen=True`` renders into the alternate screen buffer, which is cleared
|
|
924
|
+
# and redrawn each frame, so frames can never stack regardless of graph
|
|
925
|
+
# height; ``vertical_overflow="crop"`` keeps an oversized graph within the
|
|
926
|
+
# viewport instead of spilling extra lines. Normal scrollback is restored on
|
|
927
|
+
# exit, so a final static frame is printed afterwards for history.
|
|
928
|
+
live = Live(
|
|
929
|
+
render_graph(state),
|
|
930
|
+
console=console,
|
|
931
|
+
auto_refresh=False,
|
|
932
|
+
screen=True,
|
|
933
|
+
vertical_overflow="crop",
|
|
934
|
+
)
|
|
913
935
|
live.start()
|
|
914
936
|
refresh_lock = threading.Lock()
|
|
915
937
|
|
|
@@ -943,6 +965,9 @@ def _run_tui(project_root: Path, state: WatchState, runner: ReviewRunner) -> Non
|
|
|
943
965
|
refresh(state)
|
|
944
966
|
finally:
|
|
945
967
|
live.stop()
|
|
968
|
+
# ``screen=True`` tears down the alternate buffer on stop, taking the
|
|
969
|
+
# graph with it; reprint the last frame so it stays in scrollback.
|
|
970
|
+
console.print(render_graph(state))
|
|
946
971
|
|
|
947
972
|
|
|
948
973
|
watch_app = typer.Typer(
|
|
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
|