fix(flowpilot): widen message bar, add close/abandon session support
- Message bar now fixed-positioned above action bar with full-width
layout (respects both app sidebar and session sidebar)
- Added abandon_session endpoint (POST /ai-sessions/{id}/abandon)
- Added "Close" button to FlowPilot action bar with confirmation dialog
- Session can now be closed without resolving or escalating
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -396,6 +396,34 @@ async def resume_session(
|
||||
await db.commit()
|
||||
|
||||
|
||||
# ── Abandon / Close ──
|
||||
|
||||
@router.post("/{session_id}/abandon", status_code=204)
|
||||
@limiter.limit("15/minute")
|
||||
async def abandon_session(
|
||||
request: Request,
|
||||
session_id: UUID,
|
||||
current_user: Annotated[User, Depends(get_current_active_user)],
|
||||
db: Annotated[AsyncSession, Depends(get_db)],
|
||||
_: None = Depends(require_engineer_or_admin),
|
||||
reason: str | None = None,
|
||||
):
|
||||
"""Close a session without resolving or escalating."""
|
||||
try:
|
||||
await flowpilot_engine.abandon_session(
|
||||
session_id=session_id,
|
||||
user_id=current_user.id,
|
||||
reason=reason,
|
||||
db=db,
|
||||
)
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))
|
||||
except PermissionError as e:
|
||||
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=str(e))
|
||||
|
||||
await db.commit()
|
||||
|
||||
|
||||
# ── Escalation Queue ──
|
||||
|
||||
@router.get("/escalation-queue", response_model=list[AISessionSummary])
|
||||
|
||||
Reference in New Issue
Block a user