feat(FN-3925): add task-level GitHub tracking controls to create-task and t

Adds GitHub tracking controls to the create-task flow and task detail modal, with wired patch transport to persist the setting. Includes a CLI extension alignment (FN-3921) and a post-merge typecheck fix (FN-3925).

Fusion-Task-Id: FN-3925
This commit is contained in:
Fusion
2026-05-10 07:30:02 -07:00
committed by gsxdsm
parent 29c8ef5ec4
commit 8e9cd1a531
3 changed files with 10 additions and 5 deletions

View File

@@ -414,7 +414,7 @@ export default function kbExtension(pi: ExtensionAPI) {
if (normalizedAgentId !== undefined && normalizedAgentId !== null) {
const candidateTask: Pick<Task, "id" | "column"> = { id: "<new>", column: "triage" };
const error = await validateAssignableAgentId(ctx.cwd, normalizedAgentId, candidateTask);
const error = await validateAssignableAgentId(ctx.cwd ?? process.cwd(), normalizedAgentId, candidateTask);
if (error) {
return {
content: [{ type: "text", text: error }],
@@ -532,8 +532,8 @@ export default function kbExtension(pi: ExtensionAPI) {
}
if (params.agentId !== undefined) {
const normalizedAgentId = normalizeNullableStringInput(params.agentId);
if (normalizedAgentId !== null) {
const error = await validateAssignableAgentId(ctx.cwd, normalizedAgentId, task);
if (normalizedAgentId !== undefined && normalizedAgentId !== null) {
const error = await validateAssignableAgentId(ctx.cwd ?? process.cwd(), normalizedAgentId, task);
if (error) {
return {
content: [{ type: "text", text: error }],
@@ -2677,7 +2677,7 @@ export default function kbExtension(pi: ExtensionAPI) {
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
// Validate target agent exists and is not ephemeral
const delegateTask: Pick<Task, "id" | "column"> = { id: "<new>", column: "todo" };
const agentError = await validateAssignableAgentId(ctx.cwd, params.agent_id, delegateTask, params.override === true);
const agentError = await validateAssignableAgentId(ctx.cwd ?? process.cwd(), params.agent_id, delegateTask, params.override === true);
if (agentError) {
return {
content: [{ type: "text", text: `ERROR: ${agentError}` }],