Skip to content

add: file attachments, run_id grouping, and invocation log UI improve…#555

Closed
shahharsh176 wants to merge 28 commits into
zango-aifrom
agent_features
Closed

add: file attachments, run_id grouping, and invocation log UI improve…#555
shahharsh176 wants to merge 28 commits into
zango-aifrom
agent_features

Conversation

@shahharsh176
Copy link
Copy Markdown
Contributor

…ments

shahharsh176 and others added 28 commits April 21, 2026 18:05
  - Add AppLLMMemorySession/AppLLMMemoryMessage models with
  migrations for
    per-session conversation history storage
  - Add memory_enabled, memory_max_messages fields to AppLLMAgent
  - Add session_id field to AppLLMInvocation for cross-round grouping
  - AgentClient.run() now accepts input= (plain string) and
  session_id=, loads
    prior history and persists exchanges when memory_enabled
  - Invocation log UI: improved filtering, session grouping, and
  detail views
  - Agent UI: expose memory settings in agent builder form
  - API: new serializer fields and endpoints for memory/session
  management
- Add __all__ and noqa comment to ai/tools/__init__.py for intentional re-exports
- Remove unused datetime import from apps/ai/models/provider.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ment

- Add OutputParseError and OutputValidationError exceptions for structured output failures
- Switch Anthropic provider to use native output_config JSON schema instead of prompt-engineering prefill
- Add parsed_content field to LLMResponse for validated JSON output
- Add provider logo SVGs (Anthropic, OpenAI, Azure, Bedrock) replacing colored initials in Agents UI
- Add collapsible JSON schema viewer in agent detail row
- Fix InvocationLogs to skip tool_result messages when identifying user input

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- AppAi: add staleness-aware tab activation with per-tab STALE_AFTER
  thresholds (2-5 min), refreshSignals counter, lastFetchedAt tracking,
  and cross-tab invalidation via markStale/onInvalidate
- InvocationLogs: manual Refresh button + "Updated X ago" indicator;
  tab activation only re-fetches invocations (not stats); stats refreshed
  only on manual refresh; searchable paginated agent filter dropdown
  replaces static select; removes upfront agents pre-fetch
- Prompts: Refresh button in header; background re-fetch on activation
  without skeleton or filter reset
- Agents: thread onInvalidate through AgentBuilder → PromptSelector →
  InlinePromptCreator so creating a prompt marks Prompts tab stale
- Providers, Tools: accept refreshSignal/onFetchComplete; background
  re-fetch on tab activation
- Fix: stabilise onFetchComplete refs with useCallback to prevent
  infinite fetch loop from inline lambda deps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Drop estimate_tokens() from all providers and base ABC (unused)
- Remove compute_cost() in favour of compute_anthropic_cost only
- Remove unused guardrails field from AppLLMAgent + serializers
- Remove ProviderUsage, ProviderResetBudget, ProviderDependencies,
  and PromptDependencies views + URL patterns (dead API surface)
- Remove tool_calls / tool_call_id columns from AppLLMMemoryMessage
- Fix tool stats update to use F() expressions for atomicity
- Add optional ModalFooter prop with sticky pinned footer to StandardModal
- Sticky action buttons in Add/Edit provider wizard steps
- Mark Bedrock and Azure OpenAI as "Coming Soon" in provider picker
- Re-fetch providers on each agent-builder open for freshness
- Rename "Avg Time" label to "Avg Time (24h)" in Tools list/detail
- Register update_tool_usage_stats in Celery beat (daily at 2 AM)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…cation_logs

Improve grouped invocation logs, use pagination size 10 always
Tool call and result messages are now saved to AppLLMMemoryMessage and
replayed verbatim on subsequent agent.run() calls, giving the LLM full
awareness of prior tool interactions within a session.

- Added memory_policy ("include"/"exclude") to @tool decorator and
  AppLLMTool model — exclude drops side-effect tools from loaded history
- Migration 0002 adds memory_policy column to AppLLMTool
- sync_tools() syncs memory_policy from decorator to DB
- InvocationLogs UI: memory-injected tool calls no longer shown as live
- Tools UI: memory_policy badge added to tool metadata section
- Serializers expose memory_policy on list and detail endpoints

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat(ai): persist tool call/result rounds in session memory
…ent_json

fix json schema copy for duplicate agent
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.

2 participants