mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-06-12 18:08:54 +00:00
feat(channels): support multi-message sending via split marker (#2008)
* Add multi-message sending via split marker * Add marker and length split integration tests Tests that SplitByMarker and SplitMessage work together correctly, and that code block boundaries are preserved during marker splitting. * Simplify message chunking logic in channel worker Extract splitByLength helper function and remove goto-based control flow. The logic now flows more naturally - try marker splitting first, then fall back to length-based splitting. * Update multi-message output instructions in agent context * Add split_on_marker to config defaults * Add split_on_marker config option * Rename 'Multi-Message Sending' setting to 'Chatty Mode' * Add SplitOnMarker config option
This commit is contained in:
@@ -208,6 +208,7 @@ export function ConfigPage() {
|
||||
defaults: {
|
||||
workspace,
|
||||
restrict_to_workspace: form.restrictToWorkspace,
|
||||
split_on_marker: form.splitOnMarker,
|
||||
tool_feedback: {
|
||||
enabled: form.toolFeedbackEnabled,
|
||||
max_args_length: toolFeedbackMaxArgsLength,
|
||||
|
||||
@@ -95,6 +95,16 @@ export function AgentDefaultsSection({
|
||||
}
|
||||
/>
|
||||
|
||||
<SwitchCardField
|
||||
label={t("pages.config.split_on_marker")}
|
||||
hint={t("pages.config.split_on_marker_hint")}
|
||||
layout="setting-row"
|
||||
checked={form.splitOnMarker}
|
||||
onCheckedChange={(checked) =>
|
||||
onFieldChange("splitOnMarker", checked)
|
||||
}
|
||||
/>
|
||||
|
||||
<SwitchCardField
|
||||
label={t("pages.config.tool_feedback_enabled")}
|
||||
hint={t("pages.config.tool_feedback_enabled_hint")}
|
||||
|
||||
@@ -3,6 +3,7 @@ export type JsonRecord = Record<string, unknown>
|
||||
export interface CoreConfigForm {
|
||||
workspace: string
|
||||
restrictToWorkspace: boolean
|
||||
splitOnMarker: boolean
|
||||
toolFeedbackEnabled: boolean
|
||||
toolFeedbackMaxArgsLength: string
|
||||
execEnabled: boolean
|
||||
@@ -65,6 +66,7 @@ export const DM_SCOPE_OPTIONS = [
|
||||
export const EMPTY_FORM: CoreConfigForm = {
|
||||
workspace: "",
|
||||
restrictToWorkspace: true,
|
||||
splitOnMarker: false,
|
||||
toolFeedbackEnabled: true,
|
||||
toolFeedbackMaxArgsLength: "300",
|
||||
execEnabled: true,
|
||||
@@ -136,6 +138,10 @@ export function buildFormFromConfig(config: unknown): CoreConfigForm {
|
||||
defaults.restrict_to_workspace === undefined
|
||||
? EMPTY_FORM.restrictToWorkspace
|
||||
: asBool(defaults.restrict_to_workspace),
|
||||
splitOnMarker:
|
||||
defaults.split_on_marker === undefined
|
||||
? EMPTY_FORM.splitOnMarker
|
||||
: asBool(defaults.split_on_marker),
|
||||
toolFeedbackEnabled:
|
||||
toolFeedback.enabled === undefined
|
||||
? EMPTY_FORM.toolFeedbackEnabled
|
||||
|
||||
Reference in New Issue
Block a user