mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
fix(client): fixture rename via requireSession, unchanged-title pin gesture
The fixture route shares the requireSession guard, reads the accepted seq off the appended event, and gains the error-arm spec the workspace.rename case set as precedent; WorkspaceBrowser drops the unchanged-title block — confirming the current automatic title IS the pin gesture — and both touched client READMEs document the new dialog and the unary-settle rule bilingually.
This commit is contained in:
@@ -316,13 +316,14 @@ export function WorkspaceBrowser({
|
||||
|
||||
// Session rename dialog (same browser-owned pattern as workspace rename;
|
||||
// sessions have no client-side name-conflict rule — the host normalizes).
|
||||
// Unlike workspace rename, an unchanged title is NOT blocked: confirming
|
||||
// the current automatic title is the gesture that pins it.
|
||||
const [sessionRenameTarget, setSessionRenameTarget] = useState<{ sessionId: SessionNode['id']; currentTitle: string } | null>(null)
|
||||
const [sessionRenameDraft, setSessionRenameDraft] = useState('')
|
||||
const [sessionRenaming, setSessionRenaming] = useState(false)
|
||||
const [sessionRenameError, setSessionRenameError] = useState<string | null>(null)
|
||||
const sessionRenameTrimmed = sessionRenameDraft.trim()
|
||||
const sessionRenameBlocked = sessionRenaming || sessionRenameTrimmed === ''
|
||||
|| sessionRenameTarget === null || sessionRenameTrimmed === sessionRenameTarget.currentTitle
|
||||
const sessionRenameBlocked = sessionRenaming || sessionRenameTrimmed === '' || sessionRenameTarget === null
|
||||
const closeSessionRename = () => {
|
||||
if (sessionRenaming) return
|
||||
setSessionRenameTarget(null)
|
||||
|
||||
Reference in New Issue
Block a user