feat(FN-002): complete Step 1 — Root Monorepo Tooling and Repository Hygiene
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.py]
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
indent_style = tab
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"globalPause": false,
|
||||||
|
"enginePaused": false,
|
||||||
|
"maxConcurrent": 2,
|
||||||
|
"maxTriageConcurrent": 2,
|
||||||
|
"globalMaxConcurrent": 4,
|
||||||
|
"maxWorktrees": 4,
|
||||||
|
"pollIntervalMs": 15000,
|
||||||
|
"heartbeatMultiplier": 1,
|
||||||
|
"groupOverlappingFiles": true,
|
||||||
|
"overlapIgnorePaths": [],
|
||||||
|
"autoMerge": true,
|
||||||
|
"mergeStrategy": "direct",
|
||||||
|
"directMergeCommitStrategy": "auto",
|
||||||
|
"requirePrApproval": false,
|
||||||
|
"pushAfterMerge": false,
|
||||||
|
"pushRemote": "origin",
|
||||||
|
"unavailableNodePolicy": "block",
|
||||||
|
"recycleWorktrees": false,
|
||||||
|
"executorAllowSiblingBranchRename": false,
|
||||||
|
"worktreeNaming": "random",
|
||||||
|
"taskPrefix": "FN",
|
||||||
|
"includeTaskIdInCommit": true,
|
||||||
|
"commitAuthorEnabled": true,
|
||||||
|
"commitAuthorName": "Fusion",
|
||||||
|
"commitAuthorEmail": "noreply@runfusion.ai",
|
||||||
|
"modelPresets": [],
|
||||||
|
"autoSelectModelPreset": false,
|
||||||
|
"completionDocumentationMode": "off",
|
||||||
|
"defaultPresetBySize": {},
|
||||||
|
"autoResolveConflicts": true,
|
||||||
|
"smartConflictResolution": true,
|
||||||
|
"mergerAutostashMaxAgeHours": 24,
|
||||||
|
"worktreeRebaseBeforeMerge": true,
|
||||||
|
"worktreeRebaseRemote": "",
|
||||||
|
"worktreeRebaseLocalBase": true,
|
||||||
|
"mergeConflictStrategy": "smart-prefer-main",
|
||||||
|
"mergeStrategyOverlapBehavior": "flip-to-prefer-branch",
|
||||||
|
"workflowStepTimeoutMs": 360000,
|
||||||
|
"workflowRevisionForkOnScopeMismatch": true,
|
||||||
|
"strictScopeEnforcement": false,
|
||||||
|
"buildRetryCount": 0,
|
||||||
|
"verificationFixRetries": 3,
|
||||||
|
"buildTimeoutMs": 300000,
|
||||||
|
"requirePlanApproval": false,
|
||||||
|
"agentProvisioning": {},
|
||||||
|
"specStalenessEnabled": false,
|
||||||
|
"specStalenessMaxAgeMs": 21600000,
|
||||||
|
"taskStuckTimeoutMs": 600000,
|
||||||
|
"staleHighFanoutBlockerAgeThresholdMs": 7200000,
|
||||||
|
"aiSessionTtlMs": 604800000,
|
||||||
|
"aiSessionCleanupIntervalMs": 3600000,
|
||||||
|
"autoUnpauseEnabled": true,
|
||||||
|
"autoUnpauseBaseDelayMs": 300000,
|
||||||
|
"autoUnpauseMaxDelayMs": 3600000,
|
||||||
|
"maxStuckKills": 6,
|
||||||
|
"preserveProgressOnStuckRequeue": true,
|
||||||
|
"maxPostReviewFixes": 1,
|
||||||
|
"maxSpawnedAgentsPerParent": 5,
|
||||||
|
"maxSpawnedAgentsGlobal": 20,
|
||||||
|
"maintenanceIntervalMs": 300000,
|
||||||
|
"autoArchiveDoneTasksEnabled": true,
|
||||||
|
"autoArchiveDoneAfterMs": 172800000,
|
||||||
|
"archiveAgentLogMode": "compact",
|
||||||
|
"autoUpdatePrStatus": false,
|
||||||
|
"githubCommentOnDone": false,
|
||||||
|
"githubTrackingEnabledByDefault": false,
|
||||||
|
"githubAuthMode": "gh-cli",
|
||||||
|
"autoBackupEnabled": false,
|
||||||
|
"autoBackupSchedule": "0 2 * * *",
|
||||||
|
"autoBackupRetention": 7,
|
||||||
|
"autoBackupDir": ".fusion/backups",
|
||||||
|
"memoryBackupEnabled": false,
|
||||||
|
"memoryBackupSchedule": "0 3 * * *",
|
||||||
|
"memoryBackupRetention": 14,
|
||||||
|
"memoryBackupDir": ".fusion/backups/memory",
|
||||||
|
"memoryBackupScope": "all",
|
||||||
|
"autoSummarizeTitles": false,
|
||||||
|
"useAiMergeCommitSummary": true,
|
||||||
|
"insightExtractionEnabled": false,
|
||||||
|
"insightExtractionSchedule": "0 2 * * *",
|
||||||
|
"insightExtractionMinIntervalMs": 86400000,
|
||||||
|
"taskEvaluationEnabled": false,
|
||||||
|
"taskEvaluationSchedule": "0 5 * * *",
|
||||||
|
"taskEvaluationFollowUpPolicy": "off",
|
||||||
|
"memoryEnabled": true,
|
||||||
|
"memoryBackendType": "qmd",
|
||||||
|
"memoryAutoSummarizeEnabled": false,
|
||||||
|
"memoryAutoSummarizeThresholdChars": 50000,
|
||||||
|
"memoryAutoSummarizeSchedule": "0 3 * * *",
|
||||||
|
"memoryDreamsEnabled": false,
|
||||||
|
"memoryDreamsSchedule": "0 4 * * *",
|
||||||
|
"runStepsInNewSessions": false,
|
||||||
|
"maxParallelSteps": 2,
|
||||||
|
"missionStaleThresholdMs": 600000,
|
||||||
|
"missionMaxTaskRetries": 3,
|
||||||
|
"missionHealthCheckIntervalMs": 300000,
|
||||||
|
"reflectionEnabled": false,
|
||||||
|
"reflectionIntervalMs": 3600000,
|
||||||
|
"reflectionAfterTask": true,
|
||||||
|
"reviewHandoffPolicy": "disabled",
|
||||||
|
"showQuickChatFAB": false,
|
||||||
|
"researchSettings": {
|
||||||
|
"enabled": true,
|
||||||
|
"enabledSources": {
|
||||||
|
"webSearch": true,
|
||||||
|
"pageFetch": true,
|
||||||
|
"github": false,
|
||||||
|
"localDocs": true,
|
||||||
|
"llmSynthesis": true
|
||||||
|
},
|
||||||
|
"limits": {
|
||||||
|
"maxConcurrentRuns": 3,
|
||||||
|
"maxSourcesPerRun": 20,
|
||||||
|
"maxDurationMs": 300000,
|
||||||
|
"requestTimeoutMs": 30000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"evalSettings": {
|
||||||
|
"enabled": false,
|
||||||
|
"intervalMs": 86400000,
|
||||||
|
"followUpPolicy": "suggest-only",
|
||||||
|
"retentionDays": 30
|
||||||
|
},
|
||||||
|
"researchEnabled": true,
|
||||||
|
"researchMaxConcurrentRuns": 3,
|
||||||
|
"researchDefaultTimeout": 300000,
|
||||||
|
"researchMaxSourcesPerRun": 20,
|
||||||
|
"researchMaxSynthesisRounds": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
# Daily Memory 2026-05-13
|
||||||
|
|
||||||
|
<!-- Append running observations, open loops, and day-to-day notes here. Promote evergreen facts to MEMORY.md. -->
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Memory Dreams
|
||||||
|
|
||||||
|
<!-- Periodic synthesized patterns from daily notes. Promote durable lessons to MEMORY.md. -->
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Project Memory
|
||||||
|
|
||||||
|
<!-- This file stores durable project learnings. Agents consult and update it during triage and execution. -->
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
<!-- Key architectural patterns, module boundaries, and design decisions -->
|
||||||
|
|
||||||
|
## Conventions
|
||||||
|
|
||||||
|
<!-- Project-specific coding standards, naming patterns, file organization -->
|
||||||
|
|
||||||
|
## Pitfalls
|
||||||
|
|
||||||
|
<!-- Known issues, common mistakes, and things to avoid -->
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
<!-- Important background information, dependency constraints, deployment notes -->
|
||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
.pnpm-store/
|
||||||
|
|
||||||
|
# Build outputs
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
logs/
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
coverage/
|
||||||
|
|
||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
*.so
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env/
|
||||||
|
.egg-info/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# Docker volumes
|
||||||
|
docker-volumes/
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.cache/
|
||||||
|
.temp/
|
||||||
|
tmp/
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
.PHONY: install lint test typecheck build dev compose-up compose-down clean
|
||||||
|
|
||||||
|
install:
|
||||||
|
pnpm install
|
||||||
|
cd apps/api && python3 -m venv .venv && .venv/bin/pip install -e ".[dev]"
|
||||||
|
|
||||||
|
lint:
|
||||||
|
pnpm lint
|
||||||
|
|
||||||
|
test:
|
||||||
|
pnpm test
|
||||||
|
|
||||||
|
typecheck:
|
||||||
|
pnpm typecheck
|
||||||
|
|
||||||
|
build:
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
dev:
|
||||||
|
pnpm dev
|
||||||
|
|
||||||
|
compose-up:
|
||||||
|
docker compose up --build -d
|
||||||
|
|
||||||
|
compose-down:
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf node_modules apps/web/node_modules apps/api/.venv
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "headquarter",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"private": true,
|
||||||
|
"description": "Hosted workspace and tool-orchestration platform",
|
||||||
|
"scripts": {
|
||||||
|
"lint": "pnpm --filter @headquarter/web lint && pnpm --filter @headquarter/api lint",
|
||||||
|
"test": "pnpm --filter @headquarter/web test && pnpm --filter @headquarter/api test",
|
||||||
|
"typecheck": "pnpm --filter @headquarter/web typecheck && pnpm --filter @headquarter/api typecheck",
|
||||||
|
"build": "pnpm --filter @headquarter/web build && pnpm --filter @headquarter/api build",
|
||||||
|
"dev": "pnpm --parallel --filter @headquarter/web --filter @headquarter/api dev",
|
||||||
|
"compose:up": "docker compose up --build -d",
|
||||||
|
"compose:down": "docker compose down"
|
||||||
|
},
|
||||||
|
"packageManager": "pnpm@11.1.1",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=20",
|
||||||
|
"pnpm": ">=9"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
packages:
|
||||||
|
- 'apps/*'
|
||||||
|
- 'packages/*'
|
||||||
Reference in New Issue
Block a user