feat(l1): adhoc walker variant with debounced notes autosave
The session variant that Phase 1 L1 users actually hit (intake creates adhoc sessions when no flow_id is provided). Single-pane note-taking surface with 300ms-debounced autosave to walk_notes. Shares header shape + Resolve/Escalate modals with the tree variant. Splits the notes textarea by paragraph and persists each as a structured AdhocNote entry. Stops saving once status leaves 'active'. L1WalkPage now dispatches both variants. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@ import { useParams, useNavigate } from 'react-router-dom'
|
||||
import { PageMeta } from '@/components/common/PageMeta'
|
||||
import { l1Api } from '@/api/l1'
|
||||
import { L1WalkTreeVariant } from '@/components/l1/L1WalkTreeVariant'
|
||||
import { L1WalkAdhocVariant } from '@/components/l1/L1WalkAdhocVariant'
|
||||
import type { WalkSession } from '@/types/l1'
|
||||
|
||||
export default function L1WalkPage() {
|
||||
@@ -42,16 +43,17 @@ export default function L1WalkPage() {
|
||||
|
||||
const handleDone = () => navigate('/l1')
|
||||
|
||||
// Phase 1: adhoc variant (T23) handles session_kind='adhoc'. Tree variant handles flow/proposal.
|
||||
// For T22, only the tree variant is implemented. Adhoc sessions render a placeholder until T23 lands.
|
||||
// Phase 1: adhoc variant handles session_kind='adhoc'. Tree variant handles flow/proposal.
|
||||
if (session.session_kind === 'adhoc') {
|
||||
return (
|
||||
<div className="overflow-y-auto h-full">
|
||||
<>
|
||||
<PageMeta title="L1 Walk" />
|
||||
<div className="max-w-4xl mx-auto px-6 pt-12 text-muted-foreground">
|
||||
Ad-hoc walker pending (T23).
|
||||
</div>
|
||||
</div>
|
||||
<L1WalkAdhocVariant
|
||||
session={session}
|
||||
onSessionUpdate={setSession}
|
||||
onDone={handleDone}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user