Skip to content

fix: restore inline image rendering and cross-chat stability#310

Closed
solidk1 wants to merge 21 commits intodatabricks-solutions:mainfrom
solidk1:feat-builder-steve-1
Closed

fix: restore inline image rendering and cross-chat stability#310
solidk1 wants to merge 21 commits intodatabricks-solutions:mainfrom
solidk1:feat-builder-steve-1

Conversation

@solidk1
Copy link
Copy Markdown

@solidk1 solidk1 commented Mar 16, 2026

Summary

  • Restore inline image detection for check_operation_status tool so charts from async operations render correctly
  • Fix SDK object content extraction in tool results (hasattr .text handling)
  • Persist inline image paths as markdown in conversation history so charts survive page reload
  • Guard setCurrentConversation to prevent cross-chat binding when user switches chats during streaming

Test plan

  • Generate a chart via execute_databricks_command and verify it renders inline
  • Generate a chart via async operation (check_operation_status) and verify it renders
  • Reload page and verify chart images persist in conversation history
  • Switch conversations while streaming and verify no cross-chat mingling

solidk1 and others added 21 commits February 28, 2026 12:24
Bring the full databricks-builder-app update set into the fork, including user PAT configuration, personal workspace sync, new API routes, database migrations, and frontend settings/runtime updates needed by the hosted Claude Code workflow.
Merge full databricks-builder-app updates
Improve the builder app with a dedicated Skills & MCP experience, durable partial stream persistence, synchronous deployment migrations, and stronger Databricks app/workspace MCP operations for deploys, logs, and workspace file CRUD.
Update app config env defaults and simplify app tool behavior so deployment and log retrieval paths are consistent with current Databricks Apps runtime behavior.
Resolved conflicts in app.yaml, ProjectPage.tsx, agent.py, user.py,
and test_clusters.py. Adopted upstream's approach of removing the
Anthropic proxy in favor of CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS.
Re-applied local IME fix and deploy.sh SP permission grant.
Prefer .venv/bin/python3 over system python3 so databricks-sdk is
importable during Lakebase URL construction and grant steps.
Avoid dropping execution events on transient DB write failures by only removing pending batches after successful persistence, and make SSE reconnect cursor parsing robust against missing or invalid timestamps.
- Track and persist token usage (input/output/cache) and duration per
  assistant message in Lakebase with new migration
- Display timestamps on user messages and stats on assistant responses,
  persisted across page reloads
- Fix thinking process rendering: clear live activity on completion,
  save to trace history for inline display above assistant messages
- Extend file upload to support PDF, Word, Excel, and PowerPoint
- Improve deploy script with --no-wait, --skip-migrations, and parallel
  prerequisite checks
- Add persistent httpx client in anthropic proxy for connection reuse
- Restore anthropic_proxy router, OBO auth, inline image support, and
  IME composition handling from custom fork
Keep per-conversation thinking activity during active streams so switching chats no longer drops the in-progress trace, and improve streamed/thinking readability by inserting paragraph breaks when chunks arrive concatenated.
Use tuple-based startswith calls for workspace path prefix checks in apps tools/core so the lint pipeline passes without behavior changes.
Rehydrate streaming ownership from active backend executions when loading conversations so in-progress thinking traces are preserved across navigation, and include ruff formatter cleanups in apps modules.
Point the app to the shared Lakebase instance and clear the default MLflow experiment path so deployment defaults are environment-agnostic.
Clean up unused imports flagged by Ruff so lint checks pass cleanly across skill tests, MCP workspace tooling, and SQL unit tests.
Rename server_name to _server_name in agent executor MCP env wiring to satisfy Ruff's unused loop variable rule in CI.
Run Ruff formatter on .test/src/skill_test in feat-builder-steve-1 so formatting checks pass on this branch.
Reset .test/src/skill_test files to match origin/main so branch-specific formatting and lint drift are removed before further test updates.
Commit all current branch updates, including skill_test formatting adjustments and builder app/tooling baseline changes needed for deployment and CI consistency.
- Restore _is_inline_image_tool with check_operation_status support so
  charts from async operations are detected as inline images
- Add hasattr(item, 'text') handling in _process_tool_result for SDK
  objects with .text attributes
- Track inline_image_paths in router and append image markdown to
  final_text before persistence so charts survive in conversation history
Guard setCurrentConversation calls so they only update the UI when the
user is still viewing the conversation that triggered the run, avoiding
cross-chat mingling when the user switches chats while streaming.
@solidk1 solidk1 closed this Mar 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant