* 新增 ControllerClientCompatOptions.ConfigRoot 及解析方法 * 兼容层默认从运行目录 Config 加载模型、轨迹和配置 * 移除隐式父工作区根目录推断,旧路径仅在显式配置时生效 * Host 项目编译时将 Config 目录复制到输出目录 * 请求响应日志中间件忽略 /api/status/snapshot 高频轮询 * 补充 ConfigRoot 和日志过滤相关单元测试
47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
namespace Flyshot.ControllerClientCompat;
|
|
|
|
/// <summary>
|
|
/// 表示 HTTP-only ControllerClient 兼容层的基础配置。
|
|
/// </summary>
|
|
public sealed class ControllerClientCompatOptions
|
|
{
|
|
/// <summary>
|
|
/// 获取或设置对外暴露的服务端版本号。
|
|
/// </summary>
|
|
public string ServerVersion { get; set; } = "flyshot-replacement-controller-client-compat/0.1.0";
|
|
|
|
/// <summary>
|
|
/// 获取或设置运行配置根目录;为空时默认使用程序基目录下的 Config。
|
|
/// </summary>
|
|
public string? ConfigRoot { get; set; }
|
|
|
|
/// <summary>
|
|
/// 获取或设置旧父工作区根目录;仅用于测试或旧样本显式兼容。
|
|
/// </summary>
|
|
public string? WorkspaceRoot { get; set; }
|
|
|
|
/// <summary>
|
|
/// 解析运行配置根目录,确保运行时默认不再依赖源码仓库位置。
|
|
/// </summary>
|
|
/// <returns>运行配置根目录的绝对路径。</returns>
|
|
public string ResolveConfigRoot()
|
|
{
|
|
var root = string.IsNullOrWhiteSpace(ConfigRoot)
|
|
? Path.Combine(AppContext.BaseDirectory, "Config")
|
|
: ConfigRoot;
|
|
|
|
return Path.GetFullPath(root);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 解析显式配置的旧父工作区根目录;未配置时返回 null。
|
|
/// </summary>
|
|
/// <returns>旧父工作区根目录的绝对路径,或 null。</returns>
|
|
public string? ResolveLegacyWorkspaceRoot()
|
|
{
|
|
return string.IsNullOrWhiteSpace(WorkspaceRoot)
|
|
? null
|
|
: Path.GetFullPath(WorkspaceRoot);
|
|
}
|
|
}
|