fix: resolve merge conflict markers and ruff issues

This commit is contained in:
Richard Tang
2026-04-18 21:45:11 -07:00
parent 82ffcb17ac
commit ccf4216841
9 changed files with 19 additions and 47 deletions
@@ -4,7 +4,6 @@ import re
from framework.orchestrator import NodeSpec from framework.orchestrator import NodeSpec
# Wraps prompt sections that should only be shown to vision-capable models. # Wraps prompt sections that should only be shown to vision-capable models.
# Content inside `<!-- vision-only -->...<!-- /vision-only -->` is kept for # Content inside `<!-- vision-only -->...<!-- /vision-only -->` is kept for
# vision models and stripped for text-only models. Applied once per session # vision models and stripped for text-only models. Applied once per session
+5 -1
View File
@@ -680,7 +680,11 @@ class ColonyRuntime:
) )
_pre.load() _pre.load()
_spawn_catalog = _pre.skills_catalog_prompt _spawn_catalog = _pre.skills_catalog_prompt
_spawn_skill_dirs = list(_pre.allowlisted_dirs) if hasattr(_pre, "allowlisted_dirs") else self.skill_dirs _spawn_skill_dirs = (
list(_pre.allowlisted_dirs)
if hasattr(_pre, "allowlisted_dirs")
else self.skill_dirs
)
logger.info( logger.info(
"spawn: pre-activated hive.colony-progress-tracker " "spawn: pre-activated hive.colony-progress-tracker "
"(catalog %d%d chars) for worker with db_path=%s", "(catalog %d%d chars) for worker with db_path=%s",
+2 -2
View File
@@ -33,7 +33,7 @@ import json
import logging import logging
import sqlite3 import sqlite3
import uuid import uuid
from datetime import datetime, timezone from datetime import UTC, datetime
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
@@ -118,7 +118,7 @@ _PRAGMAS = (
def _now_iso() -> str: def _now_iso() -> str:
return datetime.now(timezone.utc).isoformat(timespec="seconds") return datetime.now(UTC).isoformat(timespec="seconds")
def _new_id() -> str: def _new_id() -> str:
+1 -7
View File
@@ -312,17 +312,14 @@ def create_app(model: str | None = None) -> web.Application:
app.router.add_get("/api/browser/status/stream", handle_browser_status_stream) app.router.add_get("/api/browser/status/stream", handle_browser_status_stream)
# Register route modules # Register route modules
from framework.server.routes_colony_workers import register_routes as register_colony_worker_routes
from framework.server.routes_config import register_routes as register_config_routes from framework.server.routes_config import register_routes as register_config_routes
from framework.server.routes_credentials import register_routes as register_credential_routes from framework.server.routes_credentials import register_routes as register_credential_routes
from framework.server.routes_events import register_routes as register_event_routes from framework.server.routes_events import register_routes as register_event_routes
from framework.server.routes_execution import register_routes as register_execution_routes from framework.server.routes_execution import register_routes as register_execution_routes
from framework.server.routes_logs import register_routes as register_log_routes from framework.server.routes_logs import register_routes as register_log_routes
from framework.server.routes_messages import register_routes as register_message_routes from framework.server.routes_messages import register_routes as register_message_routes
<<<<<<< HEAD
from framework.server.routes_colony_workers import register_routes as register_colony_worker_routes
=======
from framework.server.routes_prompts import register_routes as register_prompt_routes from framework.server.routes_prompts import register_routes as register_prompt_routes
>>>>>>> origin/main
from framework.server.routes_queens import register_routes as register_queen_routes from framework.server.routes_queens import register_routes as register_queen_routes
from framework.server.routes_sessions import register_routes as register_session_routes from framework.server.routes_sessions import register_routes as register_session_routes
from framework.server.routes_workers import register_routes as register_worker_routes from framework.server.routes_workers import register_routes as register_worker_routes
@@ -336,11 +333,8 @@ def create_app(model: str | None = None) -> web.Application:
register_worker_routes(app) register_worker_routes(app)
register_log_routes(app) register_log_routes(app)
register_queen_routes(app) register_queen_routes(app)
<<<<<<< HEAD
register_colony_worker_routes(app) register_colony_worker_routes(app)
=======
register_prompt_routes(app) register_prompt_routes(app)
>>>>>>> origin/main
# Static file serving — Option C production mode # Static file serving — Option C production mode
# If frontend/dist/ exists, serve built frontend files on / # If frontend/dist/ exists, serve built frontend files on /
+1 -7
View File
@@ -512,16 +512,10 @@ async def handle_pause(request: web.Request) -> web.Response:
# Pause timers so the next tick doesn't restart execution # Pause timers so the next tick doesn't restart execution
runtime.pause_timers() runtime.pause_timers()
<<<<<<< HEAD
# Switch to reviewing — workers stopped, queen now helps the user # Switch to reviewing — workers stopped, queen now helps the user
# interpret whatever they produced and decide next steps. # interpret whatever they produced and decide next steps.
if session.phase_state is not None: if session.phase_state is not None:
await session.phase_state.switch_to_reviewing(source="frontend") await session.phase_state.switch_to_reviewing(source="frontend")
=======
# Only switch to staging once every execution has actually stopped.
if session.phase_state is not None and not cancelling:
await session.phase_state.switch_to_staging(source="frontend")
>>>>>>> origin/main
return web.json_response( return web.json_response(
{ {
@@ -754,7 +748,7 @@ async def fork_session_into_colony(
from pathlib import Path from pathlib import Path
from framework.agent_loop.agent_loop import AgentLoop, LoopConfig from framework.agent_loop.agent_loop import AgentLoop, LoopConfig
from framework.agent_loop.types import AgentContext, AgentSpec from framework.agent_loop.types import AgentContext
from framework.host.progress_db import ensure_progress_db, seed_tasks from framework.host.progress_db import ensure_progress_db, seed_tasks
from framework.server.session_manager import _queen_session_dir from framework.server.session_manager import _queen_session_dir
@@ -46,13 +46,10 @@ from typing import TYPE_CHECKING, Any
from framework.credentials.models import CredentialError from framework.credentials.models import CredentialError
from framework.host.event_bus import AgentEvent, EventType from framework.host.event_bus import AgentEvent, EventType
from framework.loader.preload_validation import credential_errors_to_json from framework.loader.preload_validation import credential_errors_to_json
from framework.server.app import validate_agent_path
from framework.tools.flowchart_utils import ( from framework.tools.flowchart_utils import (
FLOWCHART_TYPES, FLOWCHART_TYPES,
classify_flowchart_node, classify_flowchart_node,
load_flowchart_file,
save_flowchart_file, save_flowchart_file,
synthesize_draft_from_runtime,
) )
if TYPE_CHECKING: if TYPE_CHECKING:
@@ -1901,8 +1898,6 @@ def register_queen_lifecycle_tools(
) )
tools_registered += 1 tools_registered += 1
<<<<<<< HEAD
=======
# --- stop_worker_and_review -------------------------------------------------- # --- stop_worker_and_review --------------------------------------------------
async def stop_worker_and_review() -> str: async def stop_worker_and_review() -> str:
@@ -2862,7 +2857,6 @@ def register_queen_lifecycle_tools(
) )
registry.register("stop_worker", _stop_worker_tool, lambda inputs: stop_worker_to_staging()) registry.register("stop_worker", _stop_worker_tool, lambda inputs: stop_worker_to_staging())
tools_registered += 1 tools_registered += 1
>>>>>>> origin/main
# --- get_worker_status ----------------------------------------------------- # --- get_worker_status -----------------------------------------------------
@@ -1,8 +1,4 @@
<<<<<<< HEAD
import { useState, useEffect, useCallback, useRef } from "react"; import { useState, useEffect, useCallback, useRef } from "react";
=======
import { useState, useEffect, useRef } from "react";
>>>>>>> origin/main
import { NavLink, useLocation, useNavigate } from "react-router-dom"; import { NavLink, useLocation, useNavigate } from "react-router-dom";
import { X, MessageSquare, Crown, ChevronRight, Briefcase, Award, Pencil, Check, Loader2, Camera } from "lucide-react"; import { X, MessageSquare, Crown, ChevronRight, Briefcase, Award, Pencil, Check, Loader2, Camera } from "lucide-react";
import { useColony } from "@/context/ColonyContext"; import { useColony } from "@/context/ColonyContext";
@@ -119,7 +115,6 @@ export default function QueenProfilePanel({ queenId, colonies, onClose }: QueenP
const name = profile?.name ?? summary?.name ?? "Queen"; const name = profile?.name ?? summary?.name ?? "Queen";
const title = profile?.title ?? summary?.title ?? ""; const title = profile?.title ?? summary?.title ?? "";
<<<<<<< HEAD
// ── Resizable width ────────────────────────────────────────────────── // ── Resizable width ──────────────────────────────────────────────────
const MIN_WIDTH = 280; const MIN_WIDTH = 280;
const MAX_WIDTH = 600; const MAX_WIDTH = 600;
@@ -153,17 +148,6 @@ export default function QueenProfilePanel({ queenId, colonies, onClose }: QueenP
document.body.style.userSelect = "none"; document.body.style.userSelect = "none";
}, [width]); }, [width]);
return (
<aside
className="flex-shrink-0 border-l border-border/60 bg-card overflow-y-auto relative"
style={{ width }}
>
{/* Drag handle */}
<div
onMouseDown={onDragStart}
className="absolute top-0 left-0 w-1 h-full cursor-col-resize hover:bg-primary/30 active:bg-primary/50 transition-colors z-10"
/>
=======
const inputCls = "w-full bg-muted/30 border border-border/50 rounded-lg px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-1 focus:ring-primary/40"; const inputCls = "w-full bg-muted/30 border border-border/50 rounded-lg px-3 py-2 text-sm text-foreground focus:outline-none focus:ring-1 focus:ring-primary/40";
const textareaCls = `${inputCls} resize-none`; const textareaCls = `${inputCls} resize-none`;
@@ -198,8 +182,15 @@ export default function QueenProfilePanel({ queenId, colonies, onClose }: QueenP
); );
return ( return (
<aside className="w-[340px] flex-shrink-0 border-l border-border/60 bg-card overflow-y-auto overscroll-contain"> <aside
>>>>>>> origin/main className="flex-shrink-0 border-l border-border/60 bg-card overflow-y-auto overscroll-contain relative"
style={{ width }}
>
{/* Drag handle */}
<div
onMouseDown={onDragStart}
className="absolute top-0 left-0 w-1 h-full cursor-col-resize hover:bg-primary/30 active:bg-primary/50 transition-colors z-10"
/>
{/* Header */} {/* Header */}
<div className="flex items-center justify-between px-5 py-3.5 border-b border-border/60"> <div className="flex items-center justify-between px-5 py-3.5 border-b border-border/60">
<div className="flex items-center gap-2 text-sm font-semibold text-foreground"> <div className="flex items-center gap-2 text-sm font-semibold text-foreground">
-3
View File
@@ -854,11 +854,8 @@ export default function QueenDM() {
}} }}
supportsImages={true} supportsImages={true}
initialDraft={initialDraft} initialDraft={initialDraft}
<<<<<<< HEAD
queenProfileId={queenId ?? null} queenProfileId={queenId ?? null}
=======
queenId={queenId} queenId={queenId}
>>>>>>> origin/main
/> />
</div> </div>
+1 -2
View File
@@ -11,14 +11,13 @@ import pytest
from framework.host.progress_db import ( from framework.host.progress_db import (
SCHEMA_VERSION, SCHEMA_VERSION,
enqueue_task,
ensure_all_colony_dbs, ensure_all_colony_dbs,
ensure_progress_db, ensure_progress_db,
enqueue_task,
reclaim_stale, reclaim_stale,
seed_tasks, seed_tasks,
) )
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# Schema / init # Schema / init
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------