chore: neutralize internal references in code comments and migrations

This commit is contained in:
matevip 2026-05-02 15:42:10 +08:00
parent 2246df9d09
commit bc417d00ef
18 changed files with 40 additions and 45 deletions

4
.gitignore vendored
View File

@ -99,5 +99,5 @@ CLAUDE.md
# Codex CLI local artifacts
.codex/
# QwenPaw sync state (generated each run; report is intentionally tracked)
scripts/.qwenpaw-sync-state.json
# Sync tooling local state (generated each run; report is intentionally tracked)
scripts/.*-sync-state.json

View File

@ -382,7 +382,7 @@
<scope>test</scope>
</dependency>
<!-- RFC-03 Lane G2: distributed lock for the cron scheduler so a
<!-- ShedLock: distributed lock for the cron scheduler so a
multi-instance deployment doesn't fire the same job N times.
JDBC mode reuses the existing DataSource — no Redis dependency
on the desktop / single-node footprint. -->

View File

@ -41,9 +41,9 @@ import java.util.function.Function;
* agent graph layer.
*
* <p>Why not the official {@code acp} Python SDK: MateClaw runs on the
* JVM. The protocol is JSON-RPC 2.0 line-delimited over stdio (per the
* QwenPaw reference at {@code C:/codes/QwenPaw}); the surface we need
* for "test connection" is small enough to implement directly.
* JVM. The protocol is JSON-RPC 2.0 line-delimited over stdio; the
* surface we need for "test connection" is small enough to implement
* directly.
*
* <p>Each {@link AcpStdioClient} instance owns one Process. Use
* try-with-resources or call {@link #close()} explicitly.
@ -51,7 +51,7 @@ import java.util.function.Function;
@Slf4j
public class AcpStdioClient implements AutoCloseable {
/** ACP protocol version we advertise (matches QwenPaw v1 + Zed agents). */
/** ACP protocol version we advertise (matches v1 ACP-compatible agents). */
public static final int PROTOCOL_VERSION = 1;
private final ObjectMapper mapper;

View File

@ -46,9 +46,9 @@ public class AcpEndpointEntity {
private String envJson;
/**
* call_title | call_detail | update_detail (mirrors QwenPaw
* {@code tool_parse_mode}). Drives how the wrapper renders ACP
* tool-call events into MateClaw's stream protocol.
* call_title | call_detail | update_detail (mirrors the ACP
* {@code tool_parse_mode} convention). Drives how the wrapper
* renders ACP tool-call events into MateClaw's stream protocol.
*/
private String toolParseMode;

View File

@ -203,7 +203,7 @@ public class AcpDelegationService {
* Extract plain text from an ACP {@code content} field. The shape
* varies between agents Zed uses {@code [{type:"text",text:"..."}]},
* some emit a single object, others nest in {@code resource.text}.
* Mirror QwenPaw's tolerant extractor.
* Tolerant extractor that handles all known shapes.
*/
private String extractText(JsonNode content) {
if (content == null || content.isNull()) return "";

View File

@ -155,7 +155,7 @@ public class AgentGraphBuilder {
// the agent's bound-skill requires-model. Falls back to the
// global default when no preferred provider satisfies, so the
// existing "no default model" error path stays intact.
// RFC-03 Lane G1 honor per-Agent model override when set.
// Honor per-Agent model override when set.
// resolveModel() looks up entity.modelName in enabled-only models;
// null / blank / unmatched silently fall back to getDefaultModel(),
// preserving the legacy behavior for Agents without an override.
@ -229,7 +229,7 @@ public class AgentGraphBuilder {
}
// Default 100 if DB row leaves max_iterations null; clamp per-agent overrides
// to the hard ceiling (BaseAgent.MAX_ITERATIONS_HARD_CEILING) so a misconfigured
// row can never push an unbounded loop. Aligned with QwenPaw's 1..100 range.
// row can never push an unbounded loop. Effective range: 1..100.
int rawMaxIter = entity.getMaxIterations() != null ? entity.getMaxIterations() : 100;
int maxIter = Math.max(1, Math.min(rawMaxIter, BaseAgent.MAX_ITERATIONS_HARD_CEILING));
if (maxIter != rawMaxIter) {
@ -1099,10 +1099,10 @@ public class AgentGraphBuilder {
}
/**
* RFC-03 Lane B1 overload accepts a per-model read-timeout override
* (seconds). Threaded into both the sync RestClient and streaming
* WebClient so timeout behavior is consistent across blocking and
* streaming chat completions. Null falls back to the default 180s.
* Overload that accepts a per-model read-timeout override (seconds).
* Threaded into both the sync RestClient and streaming WebClient so
* timeout behavior is consistent across blocking and streaming chat
* completions. Null falls back to the default 180s.
*/
public OpenAiApi buildOpenAiApi(ModelProviderEntity provider, Integer readTimeoutOverride) {
if (provider == null || !modelProviderService.isProviderConfigured(provider.getProviderId())) {
@ -1489,8 +1489,8 @@ public class AgentGraphBuilder {
}
/**
* RFC-03 Lane B1 overload accepts a per-model read-timeout override
* (seconds). Null falls back to the default 180s.
* Overload that accepts a per-model read-timeout override (seconds).
* Null falls back to the default 180s.
*/
private RestClient.Builder applyHttpTimeouts(RestClient.Builder builder, Integer readTimeoutOverride) {
HttpClient httpClient = HttpClient.newBuilder()
@ -1521,7 +1521,7 @@ public class AgentGraphBuilder {
}
/**
* RFC-03 Lane B1 overload same per-model override semantics as
* Overload with the same per-model override semantics as
* {@link #applyHttpTimeouts(RestClient.Builder, Integer)}.
*/
private WebClient.Builder applyHttpTimeoutsToWebClient(WebClient.Builder builder, Integer readTimeoutOverride) {

View File

@ -49,7 +49,7 @@ public abstract class BaseAgent {
/**
* Max ReAct iterations (one reasoning + action + observation step counts as one).
* Default 100, hard ceiling 100 (enforced in AgentGraphBuilder so per-agent DB
* overrides cannot exceed it). Aligned with QwenPaw's _MAX_MAX_ITERATIONS.
* overrides cannot exceed it).
*/
public static final int MAX_ITERATIONS_HARD_CEILING = 100;
protected int maxIterations = 100;

View File

@ -57,10 +57,10 @@ public class ToolExecutionExecutor {
* this list.
*/
/**
* RFC-03 Lane A2 defense against runaway single-response tool floods.
* Defense against runaway single-response tool floods.
*
* <p>Some models (StreamLake's kat-coder-pro-v1 has been observed
* emitting 50+ in one shot, see QwenPaw #2055) return huge {@code tool_calls}
* emitting 50+ in one shot) return huge {@code tool_calls}
* batches in a single response. Without a cap, every call executes, which
* can saturate downstream provider QPS, multiply approval rows, and burn
* tokens. The cap is independent of {@code MAX_ITERATIONS} (which limits

View File

@ -16,7 +16,6 @@ import java.util.Set;
* checks extension allowlist here, size cap there, no path-traversal
* guard at all. The result is 8 places to keep in sync when a new file
* type is supported (or when a new exploit needs a defensive patch).
* Same gap as QwenPaw #1220.
*
* <p>This guard centralizes four checks that every adapter needs:
* <ol>

View File

@ -41,7 +41,7 @@ public record DeliveryConfig(
* is still persisted, audit + token-usage all work only the
* agent's narrative reply is suppressed from the channel.
*
* <p>Use cases (QwenPaw #2452): noon health-check cron that just
* <p>Use cases: noon health-check cron that just
* pokes a database and writes structured output, project-weekly
* report jobs that drop a file into a knowledge base, internal
* pipelines that don't need an IM-visible "I did the thing"

View File

@ -42,12 +42,10 @@ import java.util.concurrent.ConcurrentHashMap;
* without manual binding.
*
* <p>This solves the "ACP configured as skill cannot be called"
* usability bug (matches the inspiration from QwenPaw's
* {@code delegate_external_agent} pattern, but keeps MateClaw's
* skill-card affordance for endpoint discovery): the user manages
* endpoints in Settings ACP Endpoints, and a card automatically
* appears on the Skills page no per-endpoint SKILL.md authoring
* required.
* usability bug while keeping MateClaw's skill-card affordance for
* endpoint discovery: the user manages endpoints in Settings ACP
* Endpoints, and a card automatically appears on the Skills page
* no per-endpoint SKILL.md authoring required.
*
* <p>Lifecycle:
* <ul>

View File

@ -132,7 +132,7 @@ public class ShellExecuteTool {
* Windows: cmd.exe /D /S /C "command"
* /D 禁用 AutoRun 注册表项避免副作用
* /S 保留引号原样传递给命令
* Unix: $SHELL -c command (RFC-03 Lane A1, fixes QwenPaw #3767)
* Unix: $SHELL -c command (honors the user's interactive shell)
* honors the user's interactive shell so alias resolution / PATH
* from the calling environment still apply; falls back to /bin/sh
* when $SHELL is unset or points at a non-executable path.
@ -188,8 +188,7 @@ public class ShellExecuteTool {
}
/**
* RFC-03 Lane A1 pick the POSIX shell binary to invoke for a non-Windows
* tool call (fixes QwenPaw #3767).
* Pick the POSIX shell binary to invoke for a non-Windows tool call.
*
* <p>Returns {@code userShellEnv} verbatim when:
* <ul>

View File

@ -79,7 +79,7 @@ public class McpServerController {
}
/**
* RFC-03 Lane A3 list the tools surfaced by an MCP server (QwenPaw #2495).
* List the tools surfaced by an MCP server.
*
* <p>Reads from the in-memory cache populated on connect/refresh, so the
* call is non-blocking and safe to poll from the admin UI.

View File

@ -162,8 +162,7 @@ public class McpServerService {
}
/**
* RFC-03 Lane A3 list the tools the given MCP server has surfaced
* to the runtime (fixes QwenPaw #2495).
* List the tools the given MCP server has surfaced to the runtime.
*
* <p>Reads from {@link McpClientManager#getServerTools(Long)} which
* already caches the {@code listTools()} response on connect/refresh,

View File

@ -1,8 +1,8 @@
-- V47: Bump default agents' max_iterations to 100 (QwenPaw-style hard ceiling).
-- V47: Bump default agents' max_iterations to 100 (hard ceiling).
--
-- The previous defaults (25 for ReAct, 20 for plan-execute) ran the LimitExceededNode
-- too eagerly on substantive multi-tool tasks (e.g. document generation with image
-- conversion). New default is 100, matching QwenPaw's _MAX_MAX_ITERATIONS upper bound.
-- conversion). New default is 100, the hard upper bound enforced at runtime.
-- AgentGraphBuilder still clamps any per-agent override to MAX_ITERATIONS_HARD_CEILING
-- at runtime, so a user-configured 200 will be silently capped to 100.
--

View File

@ -4,7 +4,7 @@
-- User-customized rows (any value other than 25/20) were silently skipped, so the
-- StateGraph ReAct agent kept running with maxIterations=25 even after V47.
-- V48 widens the condition: any seeded agent row with max_iterations < 100 gets
-- bumped to 100, matching the QwenPaw-style ceiling. Custom rows above 100 still
-- bumped to 100, matching the hard ceiling. Custom rows above 100 still
-- get clamped at runtime by AgentGraphBuilder.
--
-- 2) AGENTS.md tool guidance: the workspace's seeded AGENTS.md only mentioned

View File

@ -1,6 +1,6 @@
-- V68: ACP (Agent Communication Protocol) endpoint registry (RFC-090 Phase 7)
-- One row per external coding agent the user can delegate to over stdio.
-- The 4 default rows mirror QwenPaw's bundled set (codex / claude-code / opencode / qwen-code).
-- The 4 default rows cover the common stdio agents (codex / claude-code / opencode / qwen-code).
CREATE TABLE IF NOT EXISTS mate_acp_endpoint (
id BIGINT NOT NULL PRIMARY KEY,
name VARCHAR(64) NOT NULL,
@ -11,12 +11,12 @@ CREATE TABLE IF NOT EXISTS mate_acp_endpoint (
args_json TEXT,
env_json TEXT,
-- Bookkeeping for the per-call parser.
-- One of call_title | call_detail | update_detail (matches QwenPaw tool_parse_mode).
-- One of call_title | call_detail | update_detail (matches the ACP tool_parse_mode convention).
tool_parse_mode VARCHAR(32) NOT NULL DEFAULT 'call_title',
builtin BOOLEAN NOT NULL DEFAULT FALSE,
trusted BOOLEAN NOT NULL DEFAULT TRUE,
enabled BOOLEAN NOT NULL DEFAULT FALSE,
-- Stdio buffer ceiling, default 50 MiB (mirrors QwenPaw default).
-- Stdio buffer ceiling, default 50 MiB.
stdio_buffer_limit_bytes BIGINT NOT NULL DEFAULT 52428800,
last_status VARCHAR(32),
last_tested_at DATETIME,

View File

@ -1,8 +1,8 @@
-- V47: Bump default agents' max_iterations to 100 (QwenPaw-style hard ceiling).
-- V47: Bump default agents' max_iterations to 100 (hard ceiling).
--
-- The previous defaults (25 for ReAct, 20 for plan-execute) ran the LimitExceededNode
-- too eagerly on substantive multi-tool tasks (e.g. document generation with image
-- conversion). New default is 100, matching QwenPaw's _MAX_MAX_ITERATIONS upper bound.
-- conversion). New default is 100, the hard upper bound enforced at runtime.
-- AgentGraphBuilder still clamps any per-agent override to MAX_ITERATIONS_HARD_CEILING
-- at runtime, so a user-configured 200 will be silently capped to 100.
--