mirror of
https://github.com/morluto/rea.git
synced 2026-11-13 10:12:50 +00:00
feat(settings)!: report when a limit change takes effect
Part of #9881. Add effect immediate or next_process and keep rea_restart_required, restart_required, and restartRequired as compatibility aliases.
This commit is contained in:
1 parent
cc6c52b886
commit
aee1178839
17 files changed
+79
-42
No files matched your search
@@ -275,7 +275,8 @@ that argument; raising a runtime default cannot override it.
|
||||
|
||||
The resource owner constructs `details.limit` from the registry plus the budget
|
||||
it actually enforced. Metadata includes `agent_editable: true`,
|
||||
`scope: "rea-runtime"`, and `rea_restart_required: false`. Optional
|
||||
`scope: "rea-runtime"`, and `effect: "immediate"`. `rea_restart_required: false`
|
||||
remains as a compatibility alias of that effect. Optional
|
||||
`required_value`, `source`, and `parameter` fields are supplied only where known
|
||||
or applicable. Do not infer a source because a value happens to equal a default.
|
||||
Error copying, attribution, redaction, and delivery must preserve these facts.
|
||||
@@ -290,8 +291,11 @@ so its adapter projects with an explicit `"invocation"` caller lifetime.
|
||||
`scope: "rea-invocation"`, `applies_at: "next_invocation"` and the launch
|
||||
`environment` seed when one exists. `agent_editable: true` still holds, because
|
||||
the caller chooses that environment value or per-call `parameter` for the new
|
||||
invocation; `rea_restart_required: false` means no running REA process needs a
|
||||
restart. A producer keeps guidance that holds only while its caller retains the
|
||||
invocation; `effect: "immediate"` (and its compatibility alias
|
||||
`rea_restart_required: false`) means no running REA process needs a
|
||||
restart. `effect: "next_process"` is the other value, used when a change waits
|
||||
for the next REA process. `restart_required` and `restartRequired` are the same
|
||||
alias under older names. A producer keeps guidance that holds only while its caller retains the
|
||||
session, such as "the Ghidra session remains usable" or a same-session runtime
|
||||
update, in `continuingCallerGuidance`; the shared presentation adds it only for
|
||||
a continuing caller. The producer's own message and remediation must stay true
|
||||
|
||||
@@ -21,9 +21,13 @@ with an injected timeout; `npm run test:local -- src/hopper/bridgeBootstrapLimit
|
||||
verifies the separate launcher output. Neither test is run by Node lint. A
|
||||
skipped Python test leaves its behavior unverified.
|
||||
|
||||
`effect` is not unified yet. The restart column is the structured field a
|
||||
failure uses today. Prose that only says to restart REA is marked `prose`.
|
||||
`mcp_server_restart_required` is a server-identity alignment state in
|
||||
The field that says when a change takes effect is `effect`: `immediate` or
|
||||
`next_process`. Runtime analysis settings, per-call parameters, and artifact
|
||||
reader limits use `immediate`. Debugger pool caps and an invalid Windows
|
||||
ChangeTime launch value use `next_process`. `rea_restart_required`,
|
||||
`restart_required`, and `restartRequired` remain as compatibility aliases and
|
||||
are true only for `next_process`. Prose that only says to restart REA is marked
|
||||
`prose`. `mcp_server_restart_required` is a server-identity alignment state in
|
||||
`src/serverIdentity.ts`, not a setting flag.
|
||||
|
||||
Three numeric limits are absent from this tree and are being moved into the
|
||||
@@ -54,9 +58,9 @@ settings. They are not on the restart-only list.
|
||||
|
||||
Already adjustable with `update_analysis_settings`. Each call reads the snapshot
|
||||
accepted for that operation. Launch source is `default` or `setting`; a runtime
|
||||
override is `source: "runtime"`. The structured restart field is
|
||||
`rea_restart_required: false`. `applies_at` is the finer point (`next_operation`,
|
||||
`next_worker`, or `next_startup`).
|
||||
override is `source: "runtime"`. The structured field is `effect: "immediate"`. `rea_restart_required: false`
|
||||
remains as a compatibility alias. `applies_at` is the finer point
|
||||
(`next_operation`, `next_worker`, or `next_startup`).
|
||||
|
||||
| Setting | Environment seed | Owner | Default | Floor | Maximum | Read |
|
||||
| -------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------- | ----------------------------------------- | ---------------: | -------------------------------------: | --------------------- |
|
||||
@@ -89,47 +93,46 @@ floor, and maximum, and the migration reads the accepted snapshot instead of a
|
||||
value copied at process start. Until that lands they are `policy: "per-call"` in
|
||||
the registry so the static check still requires a reason.
|
||||
|
||||
| Environment | Owner | Default | Floor | Maximum | Read today | Restart field |
|
||||
| ------------------------------------------ | ------------------------------------------- | ----------------------: | ----: | ---------: | ------------------------------------------------------------------------------------- | -------------------------------------------------- |
|
||||
| `REA_BRIDGE_MAX_REQUEST_BYTES` | `src/config/bridgeMaxRequestBytes.ts` | 16777216 | 7464 | 536870887 | each bridge request, from the launch value | prose |
|
||||
| `REA_DEBUGGER_COMMAND_DEADLINE_MS` | `src/domain/analysisResourceLimits.ts` | 120000 | 1 | 2147483647 | copied when the debugger manager is constructed; applied to each command | `restart_required: true` |
|
||||
| `REA_DEBUGGER_MAX_COMMAND_OUTPUT_BYTES` | `src/domain/analysisResourceLimits.ts` | 16777216 | 1 | 89303718 | copied when the debugger manager is constructed; applied to each command | `restart_required: true` |
|
||||
| `REA_HOPPER_CALLER_SCAN_BUDGET_MS` | `src/domain/analysisResourceLimits.ts` | 2000 | 1 | 2147483647 | each caller-scan operation, from config resolved at launch | prose |
|
||||
| `REA_JEB_MCP_TIMEOUT_MS` | `src/jeb/JebMcpConnection.ts` | 60000 (MCP SDK default) | 1 | 2147483647 | captured when the JEB connection is created; applied to discovery and each tools/call | prose |
|
||||
| `REA_KUNA_PROJECT_TIMEOUT_MS` | `src/kuna/KunaConfiguration.ts` | 1800000 | 1 | 2147483647 | project export and whole-program scans, from the launch configuration | prose |
|
||||
| `REA_KUNA_TIMEOUT_MS` | `src/kuna/KunaConfiguration.ts` | 120000 | 1 | 2147483647 | each function decompile, from the launch configuration | prose |
|
||||
| `REA_PWNTOOLS_MAX_INPUT_BYTES` | `src/native/pwntools/PwntoolsInputLimit.ts` | 33554432 | 1 | 1073741824 | each pwntools decode, unless the call passes `producer_limits.input_bytes` | prose |
|
||||
| `REA_WINDOWS_CHANGE_TIME_DRIFT_MS` | `src/config/windowsChangeTimeSettle.ts` | 2000 | 1 | 60000 | each ChangeTime observation | `restartRequired: true` on an invalid launch value |
|
||||
| `REA_WINDOWS_CHANGE_TIME_SETTLE_POLL_MS` | `src/config/windowsChangeTimeSettle.ts` | 25 | 1 | 1000 | each ChangeTime observation | `restartRequired: true` on an invalid launch value |
|
||||
| `REA_WINDOWS_CHANGE_TIME_SETTLE_MAX_POLLS` | `src/config/windowsChangeTimeSettle.ts` | 40 | 1 | 1000 | each ChangeTime observation | `restartRequired: true` on an invalid launch value |
|
||||
| Environment | Owner | Default | Floor | Maximum | Read today | Restart field |
|
||||
| ------------------------------------------ | ------------------------------------------- | ----------------------: | ----: | ---------: | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
||||
| `REA_BRIDGE_MAX_REQUEST_BYTES` | `src/config/bridgeMaxRequestBytes.ts` | 16777216 | 7464 | 536870887 | each bridge request, from the launch value | prose |
|
||||
| `REA_DEBUGGER_COMMAND_DEADLINE_MS` | `src/domain/analysisResourceLimits.ts` | 120000 | 1 | 2147483647 | copied when the debugger manager is constructed; applied to each command | `effect: "next_process"` (`restart_required: true`) |
|
||||
| `REA_DEBUGGER_MAX_COMMAND_OUTPUT_BYTES` | `src/domain/analysisResourceLimits.ts` | 16777216 | 1 | 89303718 | copied when the debugger manager is constructed; applied to each command | `effect: "next_process"` (`restart_required: true`) |
|
||||
| `REA_HOPPER_CALLER_SCAN_BUDGET_MS` | `src/domain/analysisResourceLimits.ts` | 2000 | 1 | 2147483647 | each caller-scan operation, from config resolved at launch | prose |
|
||||
| `REA_JEB_MCP_TIMEOUT_MS` | `src/jeb/JebMcpConnection.ts` | 60000 (MCP SDK default) | 1 | 2147483647 | captured when the JEB connection is created; applied to discovery and each tools/call | prose |
|
||||
| `REA_KUNA_PROJECT_TIMEOUT_MS` | `src/kuna/KunaConfiguration.ts` | 1800000 | 1 | 2147483647 | project export and whole-program scans, from the launch configuration | prose |
|
||||
| `REA_KUNA_TIMEOUT_MS` | `src/kuna/KunaConfiguration.ts` | 120000 | 1 | 2147483647 | each function decompile, from the launch configuration | prose |
|
||||
| `REA_PWNTOOLS_MAX_INPUT_BYTES` | `src/native/pwntools/PwntoolsInputLimit.ts` | 33554432 | 1 | 1073741824 | each pwntools decode, unless the call passes `producer_limits.input_bytes` | prose |
|
||||
| `REA_WINDOWS_CHANGE_TIME_DRIFT_MS` | `src/config/windowsChangeTimeSettle.ts` | 2000 | 1 | 60000 | each ChangeTime observation | `effect: "next_process"` (`restartRequired: true`) on an invalid launch value |
|
||||
| `REA_WINDOWS_CHANGE_TIME_SETTLE_POLL_MS` | `src/config/windowsChangeTimeSettle.ts` | 25 | 1 | 1000 | each ChangeTime observation | `effect: "next_process"` (`restartRequired: true`) on an invalid launch value |
|
||||
| `REA_WINDOWS_CHANGE_TIME_SETTLE_MAX_POLLS` | `src/config/windowsChangeTimeSettle.ts` | 40 | 1 | 1000 | each ChangeTime observation | `effect: "next_process"` (`restartRequired: true`) on an invalid launch value |
|
||||
|
||||
## Restart-only numeric limits
|
||||
|
||||
These stay out of `update_analysis_settings`.
|
||||
|
||||
| Environment | Owner | Default | Floor | Maximum | Read | Why restart-only |
|
||||
| ----------------------------------- | -------------------------------------- | ------------------: | -------: | ------------------------: | ------------------------------------------- | ------------------------------------------------------------------------------------- |
|
||||
| `REA_DEBUGGER_MAX_PENDING_COMMANDS` | `src/domain/analysisResourceLimits.ts` | 16 | 1 | 256 | debugger manager construction | Queue capacity of the manager created at startup. Field: `restart_required: true`. |
|
||||
| `REA_DEBUGGER_MAX_SESSIONS` | `src/domain/analysisResourceLimits.ts` | 8 | 1 | 64 | debugger manager construction | Session-pool size of the manager created at startup. Field: `restart_required: true`. |
|
||||
| `REA_HOPPER_DEMO_DIALOG_TIMEOUT_MS` | `src/domain/hopperStartupFailure.ts` | 10000 | 1 | 2147483647 | Linux private-display adapter start | The helper reads the process environment. Prose restart. |
|
||||
| `REA_JADX_ACTIVE_PROCESSOR_COUNT` | `src/android/JadxConfiguration.ts` | unset (JVM default) | 1 | 2147483647 | JADX JVM launch | `-XX:ActiveProcessorCount` is fixed for that JVM. Prose on invalid values. |
|
||||
| `REA_JADX_HEAP_MIB` | `src/android/JadxConfiguration.ts` | unset (JVM default) | 1 | `Number.MAX_SAFE_INTEGER` | JADX JVM launch | `-Xmx` is fixed for that JVM. Prose on invalid values. |
|
||||
| `REA_KUNA_CACHE_MAX_BYTES` | `src/kuna/KunaConfiguration.ts` | 4294967296 | 1048576 | `Number.MAX_SAFE_INTEGER` | Kuna cache construction | The cache is sized once for the provider. Prose restart. |
|
||||
| `REA_KUNA_JOBS` | `src/kuna/KunaConfiguration.ts` | 1 | 1 | 32 | Kuna run-slot construction | Worker-pool width for the provider. Prose restart. |
|
||||
| `REA_MCP_DOCTOR_DEADLINE_MS` | `src/config/mcpStartupBudgets.ts` | 30000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_MCP_FIRST_CATALOG_BUDGET_MS` | `src/config/mcpStartupBudgets.ts` | 20000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_MCP_INITIALIZE_BUDGET_MS` | `src/config/mcpStartupBudgets.ts` | 15000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_MCP_MAX_INPUT_ELEMENTS` | `src/config/mcpInputBudget.ts` | 1024 | 1 | `Number.MAX_SAFE_INTEGER` | MCP server creation | Argument admission for the server process. Prose restart. |
|
||||
| `REA_MCP_MAX_RESPONSE_BYTES` | `src/config/mcpResponseBudget.ts` | 10485760 when unset | 10485760 | `Number.MAX_SAFE_INTEGER` | MCP server creation | Stdio receive buffer and the paired client buffer. Prose restart. |
|
||||
| `REA_MCP_TOOLS_LIST_BUDGET_MS` | `src/config/mcpStartupBudgets.ts` | 5000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_RECONNECT_TIMEOUT_SECONDS` | `src/hopper/BridgeLauncher.ts` | 30 | 30 | 30 | written into the Hopper bridge helper | Not a caller setting. It is `HOPPER_SHUTDOWN_TIMEOUT_MS / 1000`. |
|
||||
| `REA_SWIFTC_COMPILE_TIMEOUT_MS` | `src/config/providerStartupTimeout.ts` | 120000 | 1 | 2147483647 | Darwin ownership-helper reader construction | Captured at process start for that helper compile. Prose restart. |
|
||||
| Environment | Owner | Default | Floor | Maximum | Read | Why restart-only |
|
||||
| ----------------------------------- | -------------------------------------- | ------------------: | -------: | ------------------------: | ------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||
| `REA_DEBUGGER_MAX_PENDING_COMMANDS` | `src/domain/analysisResourceLimits.ts` | 16 | 1 | 256 | debugger manager construction | Queue capacity of the manager created at startup. `effect: "next_process"` (`restart_required: true`). |
|
||||
| `REA_DEBUGGER_MAX_SESSIONS` | `src/domain/analysisResourceLimits.ts` | 8 | 1 | 64 | debugger manager construction | Session-pool size of the manager created at startup. `effect: "next_process"` (`restart_required: true`). |
|
||||
| `REA_HOPPER_DEMO_DIALOG_TIMEOUT_MS` | `src/domain/hopperStartupFailure.ts` | 10000 | 1 | 2147483647 | Linux private-display adapter start | The helper reads the process environment. Prose restart. |
|
||||
| `REA_JADX_ACTIVE_PROCESSOR_COUNT` | `src/android/JadxConfiguration.ts` | unset (JVM default) | 1 | 2147483647 | JADX JVM launch | `-XX:ActiveProcessorCount` is fixed for that JVM. Prose on invalid values. |
|
||||
| `REA_JADX_HEAP_MIB` | `src/android/JadxConfiguration.ts` | unset (JVM default) | 1 | `Number.MAX_SAFE_INTEGER` | JADX JVM launch | `-Xmx` is fixed for that JVM. Prose on invalid values. |
|
||||
| `REA_KUNA_CACHE_MAX_BYTES` | `src/kuna/KunaConfiguration.ts` | 4294967296 | 1048576 | `Number.MAX_SAFE_INTEGER` | Kuna cache construction | The cache is sized once for the provider. Prose restart. |
|
||||
| `REA_KUNA_JOBS` | `src/kuna/KunaConfiguration.ts` | 1 | 1 | 32 | Kuna run-slot construction | Worker-pool width for the provider. Prose restart. |
|
||||
| `REA_MCP_DOCTOR_DEADLINE_MS` | `src/config/mcpStartupBudgets.ts` | 30000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_MCP_FIRST_CATALOG_BUDGET_MS` | `src/config/mcpStartupBudgets.ts` | 20000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_MCP_INITIALIZE_BUDGET_MS` | `src/config/mcpStartupBudgets.ts` | 15000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_MCP_MAX_INPUT_ELEMENTS` | `src/config/mcpInputBudget.ts` | 1024 | 1 | `Number.MAX_SAFE_INTEGER` | MCP server creation | Argument admission for the server process. Prose restart. |
|
||||
| `REA_MCP_MAX_RESPONSE_BYTES` | `src/config/mcpResponseBudget.ts` | 10485760 when unset | 10485760 | `Number.MAX_SAFE_INTEGER` | MCP server creation | Stdio receive buffer and the paired client buffer. Prose restart. |
|
||||
| `REA_MCP_TOOLS_LIST_BUDGET_MS` | `src/config/mcpStartupBudgets.ts` | 5000 | 1 | 2147483647 | MCP server startup | Startup phase of the MCP server itself. Prose. |
|
||||
| `REA_RECONNECT_TIMEOUT_SECONDS` | `src/hopper/BridgeLauncher.ts` | 30 | 30 | 30 | written into the Hopper bridge helper | Not a caller setting. It is `HOPPER_SHUTDOWN_TIMEOUT_MS / 1000`. |
|
||||
| `REA_SWIFTC_COMPILE_TIMEOUT_MS` | `src/config/providerStartupTimeout.ts` | 120000 | 1 | 2147483647 | Darwin ownership-helper reader construction | Captured at process start for that helper compile. Prose restart. |
|
||||
|
||||
## Restart-only non-numeric settings
|
||||
|
||||
No floor or maximum. They are read from the launch environment (startup). None
|
||||
of them use `rea_restart_required`, `restart_required`, or `restartRequired`;
|
||||
recovery text tells the caller to change the launch environment. They stay
|
||||
No floor or maximum. They are read from the launch environment (startup). None of them set `effect`. Recovery text tells the caller to change the launch
|
||||
environment, which takes effect on the next process. They stay
|
||||
restart-only because they choose a command, a binary, a filesystem root, the
|
||||
browser sandbox, secret patterns, the provider, or the shape of the MCP server
|
||||
or logger.
|
||||
|
||||
@@ -134,6 +134,7 @@ export class AnalysisSettings {
|
||||
};
|
||||
}),
|
||||
active_work_changed: false as const,
|
||||
effect: "immediate" as const,
|
||||
rea_restart_required: false as const,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ export const artifactReaderLimitFailure = (
|
||||
applies_at: "next_operation",
|
||||
agent_editable: true,
|
||||
can_increase: canIncrease,
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -171,6 +171,7 @@ it("names the session setting on a Rizin capacity refusal", async () => {
|
||||
minimum: MINIMUM_DEBUGGER_MAX_SESSIONS,
|
||||
maximum: MAXIMUM_DEBUGGER_MAX_SESSIONS,
|
||||
unit: "sessions",
|
||||
effect: "next_process",
|
||||
restart_required: true,
|
||||
max_sessions: 1,
|
||||
active_or_reserved_sessions: 1,
|
||||
|
||||
@@ -55,6 +55,8 @@ export interface WindowsChangeTimeSettingFailure {
|
||||
readonly floor: number;
|
||||
readonly maximum: number;
|
||||
readonly unit: "ms" | "polls";
|
||||
readonly effect: "next_process";
|
||||
/** Compatibility alias of `effect: "next_process"`. */
|
||||
readonly restartRequired: true;
|
||||
}
|
||||
|
||||
@@ -79,6 +81,7 @@ const windowsChangeTimeSettingFailure = (
|
||||
floor: bound.floor,
|
||||
maximum: bound.maximum,
|
||||
unit: bound.unit,
|
||||
effect: "next_process",
|
||||
restartRequired: true,
|
||||
});
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ export const updateAnalysisSettingsResultSchema =
|
||||
}),
|
||||
),
|
||||
active_work_changed: z.literal(false),
|
||||
effect: z.literal("immediate"),
|
||||
rea_restart_required: z.literal(false),
|
||||
});
|
||||
export const ANALYSIS_SETTINGS_TOOL_CONTRACTS = [
|
||||
|
||||
@@ -1512,6 +1512,7 @@ describe("analysis error projection: caller lifetime", () => {
|
||||
minimum: limit.minimum,
|
||||
maximum: limit.maximum,
|
||||
agent_editable: true,
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
applies_at: "next_invocation",
|
||||
scope: "rea-invocation",
|
||||
|
||||
@@ -332,6 +332,7 @@ export const analysisSettingLimit = (
|
||||
applies_at: definition.appliesAt,
|
||||
agent_editable: true,
|
||||
scope: "rea-runtime",
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
...(definition.parameter === undefined
|
||||
? {}
|
||||
|
||||
@@ -26,6 +26,14 @@ export interface AnalysisSettingsSnapshot {
|
||||
/** Injected by the runtime owner; reads the accepted operation's immutable snapshot. */
|
||||
export type AnalysisSettingsReader = () => AnalysisSettingsSnapshot;
|
||||
|
||||
/**
|
||||
* When a change takes effect for a running REA process.
|
||||
* `immediate` needs no new process. `next_process` waits for the next start.
|
||||
* Older booleans (`rea_restart_required`, `restart_required`, `restartRequired`)
|
||||
* stay as compatibility aliases: true only when the effect is `next_process`.
|
||||
*/
|
||||
export type SettingChangeEffect = "immediate" | "next_process";
|
||||
|
||||
/** Limit facts supplied by the failing owner, never inferred from error prose. */
|
||||
export interface AnalysisSettingLimit {
|
||||
readonly setting: AnalysisSettingId;
|
||||
@@ -37,6 +45,8 @@ export interface AnalysisSettingLimit {
|
||||
readonly applies_at: "next_operation" | "next_worker" | "next_startup";
|
||||
readonly agent_editable: true;
|
||||
readonly scope: "rea-runtime";
|
||||
readonly effect: "immediate";
|
||||
/** Compatibility alias of `effect: "immediate"`. */
|
||||
readonly rea_restart_required: false;
|
||||
readonly required_value?: number;
|
||||
readonly parameter?: string;
|
||||
|
||||
@@ -191,6 +191,8 @@ export interface ArtifactReaderLimitFact {
|
||||
readonly applies_at: "next_operation";
|
||||
readonly agent_editable: true;
|
||||
readonly can_increase: boolean;
|
||||
readonly effect: "immediate";
|
||||
/** Compatibility alias of `effect: "immediate"`. */
|
||||
readonly rea_restart_required: false;
|
||||
}
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ export const webNetworkCaptureBudgetFacts = (
|
||||
? MAX_WEB_NETWORK_CAPTURE_NESTING_DEPTH
|
||||
: Number.MAX_SAFE_INTEGER,
|
||||
applies_at: "next_operation",
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1983,6 +1983,7 @@ describe("Ghidra decompile deadline for a finished invocation", () => {
|
||||
minimum: 1,
|
||||
maximum: 2_147_483,
|
||||
agent_editable: true,
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
};
|
||||
expect(invocation.details?.limit).toEqual({
|
||||
@@ -4365,6 +4366,7 @@ describe("Ghidra startup deadline for a finished invocation", () => {
|
||||
setting: "ghidra.startup_timeout_ms",
|
||||
effective_value: 250,
|
||||
agent_editable: true,
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
};
|
||||
const invocationLimit = {
|
||||
|
||||
@@ -188,6 +188,7 @@ it.each(["initialize", "transport"])(
|
||||
applies_at: "next_operation",
|
||||
agent_editable: true,
|
||||
scope: "rea-runtime",
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
},
|
||||
diagnostics: { producer_fact: "retained" },
|
||||
|
||||
@@ -22,6 +22,8 @@ export const debuggerAdmissionDiagnostics = (
|
||||
readonly minimum: number;
|
||||
readonly maximum: number;
|
||||
readonly unit: DebuggerAdmissionLimit["unit"];
|
||||
readonly effect: "next_process";
|
||||
/** Compatibility alias of `effect: "next_process"`. */
|
||||
readonly restart_required: true;
|
||||
} => ({
|
||||
setting: admission.setting,
|
||||
@@ -31,6 +33,7 @@ export const debuggerAdmissionDiagnostics = (
|
||||
minimum: admission.minimum,
|
||||
maximum: admission.maximum,
|
||||
unit: admission.unit,
|
||||
effect: "next_process",
|
||||
restart_required: true,
|
||||
});
|
||||
|
||||
|
||||
@@ -148,6 +148,7 @@ it("advertises exact contracts and recovers a full large-index archive over one
|
||||
expect(updated.structuredContent).toMatchObject({
|
||||
revision: 1,
|
||||
active_work_changed: false,
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
});
|
||||
const recovered = await invoke("inspect_artifact", {});
|
||||
|
||||
@@ -72,6 +72,7 @@ const enforcedLimit = {
|
||||
minimum: 1,
|
||||
maximum: 2_147_483,
|
||||
agent_editable: true,
|
||||
effect: "immediate",
|
||||
rea_restart_required: false,
|
||||
};
|
||||
/** A finished invocation can act only through a new invocation's launch value. */
|
||||
|
||||
Reference in new issue
Block a user