Skip to content

Fix schema gemini#3

Open
snapspecter wants to merge 90 commits intomainfrom
fix-schema-gemini
Open

Fix schema gemini#3
snapspecter wants to merge 90 commits intomainfrom
fix-schema-gemini

Conversation

@snapspecter
Copy link
Owner

No description provided.

MarlBurroW and others added 28 commits March 20, 2026 09:58
…loses MarlBurroW#282)

Switch from message-count to turn-count for compacting triggers and
proximity display. Mask verbose tool results in summarization payloads
to reduce token costs and prevent oversized API calls.
…arlBurroW#273)

Add a task dispatch mode to webhooks: incoming payloads can now spawn
autonomous sub-tasks with configurable prompt templates instead of only
injecting messages into the Kin's conversation.

- Schema: add dispatchMode, taskTitleTemplate, taskPromptTemplate,
  maxConcurrentTasks to webhooks; add webhookId to tasks
- Template system: resolveTemplate() with {{field.path}} placeholders
  and {{__payload__}} special variable, reusing extractByPath()
- Concurrency: leverages existing task concurrencyGroup/concurrencyMax
  system with group key 'webhook:{id}'
- API: create/update/serialize routes accept dispatch fields
- Tools: create/update/list webhook tools extended per MarlBurroW#273 comment
- UI: dispatch mode toggle, task template fields with live preview,
  task badge on WebhookCard
- i18n: en/fr/de/es keys for all new UI elements
…rea overflow (closes MarlBurroW#284) (MarlBurroW#286)

Co-authored-by: MarlBurroW <marlburrow@gmail.com>
MarlBurroW#288)

Every model reference is now a {modelId, providerId} couple instead of a
bare string. ModelPicker emits both values, ProviderSelector is removed
from model contexts, backend call sites pass providerId through to
resolveLLMModel, and a one-time startup migration backfills orphaned
records using the guessProviderType heuristic.
…mModal

- QuickChatPanel.onModelChange now accepts (modelId, providerId) to match ChatPanel
- CronFormModal.onCreate type now includes optional providerId field
…/tools.md, memory/configuration.md] based on recent changes
- Add missing stack property to ConsoleEntry literals
- Add as any casts for null mock implementations
- Fix callArgs tuple type assertion
…ete sanitization and identity replacement

- Fix escapeTelegramMarkdown to escape backslashes before other special chars (alerts MarlBurroW#4, MarlBurroW#10)
- Remove no-op .replace(/:/g, ":") identity replacement in NotificationPreferences (alert #1)
- Replace z.literal(true) with z.boolean() in kin-management-tools
  to fix Gemini TYPE_STRING enum rejection
- Remove .default(false) from generate_avatar fields to prevent
  boolean values leaking into JSON Schema enums
- Add availability fallback in ToolRegistry.register() for plugins
  that omit the availability array
- Use openai.chat() instead of openai() for all third-party
  providers (OpenRouter, DeepSeek, Groq, etc.) to force Chat
  Completions API instead of Responses API
- Clamp file storage cleanup interval to max 59 to prevent invalid
  cron expressions
MarlBurroW and others added 30 commits March 23, 2026 22:57
- Add MEMORY_SCOPES, MAX_MESSAGE_LENGTH, KNOWN_CHANNEL_PLATFORMS tests
  to constants-extended.test.ts (15 new tests, 25 new assertions)
- Add memory scope default behavior and shared memory filtering logic
  tests to memory.test.ts (9 new tests, 10 new assertions)
- Cross-validate MEMORY_CATEGORIES and MEMORY_SCOPES are disjoint
- Total: 3386 tests, 10962 assertions (all passing)
…ecent changes

- Add settings.ts route, app-settings.ts service, and provider-tools.ts to project structure
- Add complete Settings API section to internal api.md (default-models, default-llm, default-image, default-compacting, extraction, embedding, search, hub)
- Remove phantom compacting-threshold endpoints from docs-site/api/rest.md (routes don't exist in codebase)
…ary accumulation, and full UI transparency

Replace turn-based compaction with token-percentage threshold (default 75% of context window).
New keep-window approach preserves recent messages within configurable % of context.
Telescopic summary merge: oldest summaries merge when count > maxSummaries or tokens > budget.
Multi-summary accumulation in system prompt with [compressed] markers for merged summaries.

Backend: new compactingSummaries table, enriched getCompactingProximity() with merge data,
context-usage API exposes summaryTokens/summaryBudgetTokens/maxSummaries, history tools
(list_summaries, read_summary, search, browse), compacting errors persisted in conversation.

Frontend: ContextBar shows threshold marker on progress bars, tooltip with summary merge
gauges (count + token budget), per-Kin config UI (keepPercent, summaryBudgetPercent,
maxSummaries), compacting animation with gradient bars, error cards persisted in history.

i18n: all keys added for en, fr, de, es.
Update all documentation and marketing copy to reflect the new
compacting architecture: token-percentage triggers, keep-window,
multi-summary accumulation, and telescopic merge. Replace all
references to the old turn-count/snapshot system.
…ons, and individual summaries

- Add compacting threshold marker (red line) on context bar for main conversations
- Replace scroll-based sections with smart collapsible sections using CSS mask fade
- Auto-detect content height: short sections stay expanded, long ones collapse
- Show individual summary cards with date ranges, depth badges, and token counts
- Add token count legend under context bar
- Backend returns compactingThresholdPercent in context preview response
… (see MarlBurroW#307)

The mutex approach serialized tool execution but did not solve the core
problem: the LLM still hallucinates tool results in tokens generated
before execution, wasting tokens. A custom single-step streaming loop
will replace the SDK's internal multi-step loop entirely.
…/sse.md, docs-site/kins/tools.md] based on recent changes

- Add new compacting_summaries table to schema.md (multi-summary accumulation with telescopic merge)
- Mark compacting_snapshots as legacy in schema.md
- Add processingStartedAt to queue:update SSE event in api.md
- Update compacting API endpoints in docs-site/api/rest.md (new summaries endpoint, snapshots as alias)
- Update queue:update SSE description in docs-site/api/sse.md
- Add browse_history, list_summaries, read_summary tools to docs-site/kins/tools.md
…ay valid (MarlBurroW#309)

The custom streaming loop was resetting fullContent to '' between steps,
causing tool call offsets from step N to point into the wrong position in
the step N+1 text. Keeping text accumulated across all steps ensures
offsets remain valid indices into the final content string.

Also fix stepLimitReached detection to use step counter instead of
checking fullContent emptiness.
Instruct Kins to not narrate or predict tool results — just call the
tool silently. This prevents hallucinated results from appearing in
the response text before tools have actually executed.

Applied to both main Kin prompts (Core principles) and sub-Kin prompts
(Constraints).
The model was emitting multiple tool calls in a single step even when
they depended on each other's results, causing hallucinated arguments.
The instruction now explicitly tells the model to call dependent tools
one at a time across separate steps and wait for each result.
…pts.md, docs-site/getting-started/configuration.md, docs-site/kins/tools.md] based on recent changes

- Add tool-call narration and sequential dependency instructions to Core principles and Sub-Kin constraints in prompt-system.md
- Add KINBOT_CUSTOM_TOOL_TIMEOUT and KINBOT_CUSTOM_TOOL_MAX_TIMEOUT env vars to config.md
- Update docs-site/kins/system-prompts.md Core principles description to include tool-call discipline
- Add custom tool timeout vars to docs-site/getting-started/configuration.md Advanced options
- Add configurable timeout note for custom tools in docs-site/kins/tools.md
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
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.

3 participants