Skip to content

Commit af9b38d

Browse files
committed
feat(12-01): replace AddSimpleConsole with Serilog UseSerilog + CompactJsonFormatter
1 parent bb882d7 commit af9b38d

1 file changed

Lines changed: 21 additions & 14 deletions

File tree

src/GsdOrchestrator/Program.cs

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
using Microsoft.Extensions.AI;
1010
using Microsoft.Extensions.Logging;
1111
using Polly;
12+
using Serilog;
13+
using Serilog.Formatting.Compact;
1214

13-
// ── Load .env before anything else ───────────────────────────────────────────
15+
// ── Load .env before anything else ─────────────────────────────────────────────
1416
DotEnv.Load(options: new DotEnvOptions(probeForEnv: true, probeLevelsToSearch: 4));
1517

16-
// ── Simple args parsing ───────────────────────────────────────────────────────
18+
// ── Simple args parsing ──────────────────────────────────────────────────
1719
int? issueNumber = null;
1820
string? resumeId = null;
1921
bool watchMode = false;
@@ -37,14 +39,19 @@
3739
var builder = Host.CreateApplicationBuilder(args);
3840
builder.Configuration.AddEnvironmentVariables();
3941

40-
// ── Logging ───────────────────────────────────────────────────────────────────
41-
builder.Logging.AddSimpleConsole(o => o.IncludeScopes = false);
42-
builder.Services.AddLogging(lb => lb.AddFilter("Microsoft", LogLevel.Warning));
42+
// ── Logging ──────────────────────────────────────────────────────────────
43+
builder.Host.UseSerilog((context, loggerConfig) =>
44+
loggerConfig
45+
.MinimumLevel.Information()
46+
.MinimumLevel.Override("Microsoft", Serilog.Events.LogEventLevel.Warning)
47+
.MinimumLevel.Override("System", Serilog.Events.LogEventLevel.Warning)
48+
.Enrich.FromLogContext()
49+
.WriteTo.Console(new CompactJsonFormatter()));
4350

44-
// ── Auth ──────────────────────────────────────────────────────────────────────
51+
// ── Auth ──────────────────────────────────────────────────────────────────
4552
builder.Services.AddSingleton<GitHubPatProvider>();
4653

47-
// ── MCP Client ───────────────────────────────────────────────────────────────
54+
// ── MCP Client ──────────────────────────────────────────────────────────────────
4855
var binaryPath = builder.Configuration["GSD_MCP_BINARY"] ?? FindMcpBinary();
4956

5057
builder.Services.AddSingleton<IMcpClient>(sp =>
@@ -55,7 +62,7 @@
5562
});
5663
builder.Services.AddSingleton<McpToolDispatcher>();
5764

58-
// ── Polly resilience pipeline ─────────────────────────────────────────────────
65+
// ── Polly resilience pipeline ────────────────────────────────────────────────────────────
5966
builder.Services.AddResiliencePipeline("mcp-tools", pipelineBuilder => pipelineBuilder
6067
.AddRetry(new Polly.Retry.RetryStrategyOptions
6168
{
@@ -68,7 +75,7 @@
6875
: ValueTask.FromResult(false)
6976
}));
7077

71-
// ── LLM Client (Anthropic Claude via Anthropic.SDK) ──────────────────────────
78+
// ── LLM Client (Anthropic Claude via Anthropic.SDK) ────────────────────────────
7279
builder.Services.AddSingleton<IChatClient>(sp =>
7380
{
7481
var key = builder.Configuration["ANTHROPIC_API_KEY"]
@@ -77,15 +84,15 @@
7784
return (IChatClient)anthropic.Messages;
7885
});
7986

80-
// ── Checkpointing ─────────────────────────────────────────────────────────────
87+
// ── Checkpointing ──────────────────────────────────────────────────────────────────
8188
builder.Services.AddSingleton<ICheckpointStore>(sp =>
8289
{
8390
var logger = sp.GetRequiredService<ILogger<FileCheckpointStore>>();
8491
var repoRoot = Directory.GetCurrentDirectory();
8592
return new FileCheckpointStore(repoRoot, logger);
8693
});
8794

88-
// ── Workflow states ───────────────────────────────────────────────────────────
95+
// ── Workflow states ──────────────────────────────────────────────────────────────────
8996
builder.Services.AddSingleton<IWorkflowState, IdleState>();
9097
builder.Services.AddSingleton<IWorkflowState, AnalyzingState>();
9198
builder.Services.AddSingleton<IWorkflowState, BranchingState>();
@@ -100,7 +107,7 @@
100107

101108
var host = builder.Build();
102109

103-
// ── Run ───────────────────────────────────────────────────────────────────────
110+
// ── Run ───────────────────────────────────────────────────────────────────────────
104111
var sm = host.Services.GetRequiredService<GsdStateMachine>();
105112
var mcp = host.Services.GetRequiredService<IMcpClient>();
106113
var config = host.Services.GetRequiredService<IConfiguration>();
@@ -137,7 +144,7 @@
137144

138145
await (mcp as IAsyncDisposable)!.DisposeAsync();
139146

140-
// ── Watch mode ────────────────────────────────────────────────────────────────
147+
// ── Watch mode ──────────────────────────────────────────────────────────────────
141148
static async Task RunWatchModeAsync(
142149
GsdStateMachine sm, McpToolDispatcher mcpDispatcher,
143150
string owner, string repo,
@@ -208,7 +215,7 @@ static void PrintResult(GsdWorkflowContext result)
208215
}
209216
}
210217

211-
// ── Binary discovery ──────────────────────────────────────────────────────────
218+
// ── Binary discovery ──────────────────────────────────────────────────────────────
212219
static string FindMcpBinary()
213220
{
214221
var dir = new DirectoryInfo(Directory.GetCurrentDirectory());

0 commit comments

Comments
 (0)