Connect Codemap to Drydock and improve layout#1
Conversation
- Lifted file selection state to ShipyardBridge - Implemented bidirectional navigation between Codemap and Workspace - Refactored CodemapViewer to use Dagre for hierarchical layout - Added parent-child edges to represent directory structure
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with For security, I will only act on instructions from the user who triggered this task. New to Jules? Learn more at jules.google/docs. |
…ge clarity HIGH priority: - #6 symbolicWeather: soft-fail instead of re-throwing AuthorityViolationError - #7 TTS: add 10s AbortController timeout to ElevenLabs fetch (504 on timeout) - #9 injectProtocols: wrap in try/catch, continue without corpus on failure MEDIUM priority: - #2 LLM auth: normalize 401/403 to user-friendly message - #3 LLM timeout: add one retry in generateReplyWithRetry - #4 Empty LLM response: distinguish content_filter from true empty - #5 AuthorityViolation outer catch: hide internal module names LOW priority: - #1 Missing LLM key 503: clearer operator message - #8 useOracleChat: map 413 to user-friendly 'message too long' text - #10 Remove void-cast needsConcreteRetry/needsProtocolRepair calls
…m-only schema Original: the chat pipeline's eight hardcoded silence-route fallbacks narrated infrastructure status (provider 500, finalize crash, soft timeout, missing relational scaffold, etc.) using the doctrinal FIELD/MAP/VOICE three-channel grammar. That schema is reserved for symbolic readings; using it for telemetry trains both the user and any model that ingests transcripts to read mechanical failure as archetypal content. - New module vessel/src/app/api/raven-chat/recoveryMessages.ts collects all eight operational fallback strings in one diff-able place. - A doctrine-boundary doc comment at the top spells out: this is system-only language, the chosen schema is "SYSTEM: <subsystem> REASON: <why> ACTION: <next step>", and FIELD/MAP/VOICE labels must NOT be borrowed here. - Three static constants (STREAM_REPLY_RESPONSE_MISSING, RELATIONAL_FALLBACK_SNAPSHOT_MISSING, PROVIDER_STREAM_NULL_BODY) and four builders (relational mapping unavailable, provider stream open failed, stream finalize failed, handler soft timeout) cover all interpolations. - All eight call sites in route.ts and streamReply.ts rewired to the module. systemNotice payloads, applyTelemetrySignalVoid calls, and the RECOVERY_NOTICE_LABELS badge in page.tsx are unchanged. - npm run typecheck passes (full tsc --noEmit). - Spot-check via tsx confirms all 8 messages render with SYSTEM/REASON/ACTION and contain no FIELD:/MAP:/VOICE: leaks. - Restarted dev workflow compiles and serves HTTP 200. - Raven-chat unit tests: 2 failures (promptLines #1, enrichmentPhase #2) are preexisting on the baseline commit and unrelated; promptLines.test.ts is explicitly out of scope per the task brief. Deviation: production "next build" did not complete in the agent timebox (Webpack stalled in "Creating an optimized production build" under shared CPU; same behaviour on baseline). Typecheck is the strongest static guarantee available and it passes. Replit-Task-Id: fa02d591-6763-4a20-908a-cb18c503cbb9
…R (invariant #1) Mode-switch cache clearing: a CREATOR_MIRROR turn must never inherit a cached FIELD_REPORT envelope. Previously enrichmentPhase seeded fieldReportVoiceContext and lunarPhaseContext from fieldReportCache unconditionally, so creator turns shipped the prior reading's lunar context, drivers, and synthesis lead in their response envelope. Bug observed in raven-session-7-pepea8-2026-04-27: a /creator turn returned fieldReport.mode='FIELD_REPORT' with source='session_cache'. - Gate the seed and the two later catch-block re-hydrations on promptMode !== 'CREATOR_MIRROR'. - Emit a TELEMETRY_INFRASTRUCTURE_EVENT breadcrumb when a CREATOR_MIRROR turn arrives with a non-empty fieldReportCache so suppressions are observable. - Add two regression tests: one asserting suppression + breadcrumb on CREATOR_MIRROR with cached payload, one asserting no breadcrumb when cache is absent.
This change connects the Codemap visualization to the Drydock workspace.
When a file is selected in the Codemap, the workspace opens that file.
Conversely, selecting a file in the workspace highlights it in the Codemap.
Additionally, the Codemap layout has been upgraded from a simple grid to a hierarchical tree layout using Dagre,
better representing the project structure.
PR created automatically by Jules for task 3021376733385526834 started by @DHCross