### 重构任务清单：纯 Context 驱动的调用链追踪

---

#### 1. 核心改造 (`logs` 包)

- **`internal/infra/logs/logs.go` (`logs.Logger` - 内部实现，非注入)**
    - **核心包级函数实现 (根据 `implementation.md` 描述)**:
        -   [x] 实现 `AddCompName(ctx context.Context, compName string) context.Context`。
        -   [x] 实现
            `AddFuncName(upstreamCtx context.Context, selfCtx context.Context, funcName string) context.Context`。
        -   [x] 实现 `GetLogger(ctx context.Context) *Logger`。
        -   [x] 实现
            `Trace(upstreamCtx context.Context, selfCtx context.Context, funcName string) (context.Context, *Logger)`。
    - **`Logger` 结构体改造**:
        -   [x] 无
    - **`GormLogger` 改造**:
        -   [x] 修改 `GormLogger.Info` 方法，从传入的 `ctx` 中获取 `logger` 实例，并使用该实例进行日志记录。
        -   [x] 修改 `GormLogger.Warn` 方法，从传入的 `ctx` 中获取 `logger` 实例，并使用该实例进行日志记录。
        -   [x] 修改 `GormLogger.Error` 方法，从传入的 `ctx` 中获取 `logger` 实例，并使用该实例进行日志记录。
        -   [x] 修改 `GormLogger.Trace` 方法，从传入的 `ctx` 中获取 `logger` 实例，并使用该实例进行日志记录。特别是
            `With(fields...)` 的调用需要调整。

---

#### 2. 依赖注入与结构体改造

- **`internal/core/application.go`**:
    -   [x] 移除 `Application` 结构体中的 `Logger *logs.Logger` 成员。
    -   [x] 修改 `NewApplication` 函数，使其不再创建 `logger`，而是创建根 `context.Background()`。
    -   [x] 调整 `NewApplication`，将根 `context` 传递给 `initInfrastructure`, `initDomainServices`, `initAppServices` 和
        `api.NewAPI`。
    -   [x] 移除 `Application` 结构体中所有对 `app.Logger` 的直接调用，改为通过 `context` 获取 `Logger`。

- **`internal/core/component_initializers.go`**:
    -   [x] **修改所有组件结构体定义**: 遍历所有相关组件（Controllers, Services, Repositories 等），将其结构体中的
        `logger *logs.Logger` 成员变量替换为 `selfCtx context.Context`。
    -   [x] **重构所有 `init...` 函数**:
        - 移除所有 `logger *logs.Logger` 参数，改为接收 `ctx context.Context`。
        - 在每个 `init...` 函数内部，为即将创建的组件生成其专属的 `selfCtx`。例如：
          `selfCtx := logs.AddCompName(ctx, 'ComponentName')`。
        - 将这个 `selfCtx` 注入到组件的构造函数中，并由组件保存为 `selfCtx` 成员。

---

#### 3. 全局方法签名改造：传递 `context.Context`

**以下所有列出的组件，其所有公共方法都需要进行签名改造，将 `ctx context.Context` 作为第一个参数。**

##### 3.1. API 层

[api](./task-api.md)
[controller](./task-controller.md)
[middleware](./task-middleware.md)
[webhook](./task-webhook.md)

##### 3.2. 应用层 (Application Services)

[service](./task-service.md)

##### 3.3. 领域层 (Domain Services)

[domain](./task-domain.md)

##### 3.4. 基础设施层 (Infrastructure)

[repository](./task-repository.md)
[infra-other](./task-infra.md)

---

#### 4. 日志调用点及方法内部逻辑改造

-   [x] **遍历所有业务方法** (针对上述所有列出的组件的公共方法):
    -   [x] **定位旧日志**: 搜索所有对旧 `z.logger.*` 成员的调用。
    -   [x] **改造方法入口** (对于非 Controller 方法):
        1. 在方法开始处，使用作为参数传入的 `ctx` (作为 `upstreamCtx`) 和组件自身持有的 `z.selfCtx`，调用 `logs.Trace`。
            - `newCtx, logger := logs.Trace(ctx, z.selfCtx, 'MethodName')`
        2. 将所有旧的 `z.logger.*(...)` 调用，替换为使用新获取的 `logger.*(...)`。
    -   [x] **改造下游调用**:
        1. 在方法内部，当需要调用其他组件的方法时（如下游服务），**必须传递 `newCtx`**。
            - `err := z.downstreamService.DoSomething(newCtx, data)`
