Merge branch 'main' of ssh://git.commumedia.org:2222/alex/headquarter
This commit is contained in:
@@ -1,132 +0,0 @@
|
|||||||
{
|
|
||||||
"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.
@@ -1,3 +0,0 @@
|
|||||||
# Daily Memory 2026-05-13
|
|
||||||
|
|
||||||
<!-- Append running observations, open loops, and day-to-day notes here. Promote evergreen facts to MEMORY.md. -->
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Daily Memory 2026-05-14
|
|
||||||
|
|
||||||
<!-- Append running observations, open loops, and day-to-day notes here. Promote evergreen facts to MEMORY.md. -->
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Memory Dreams
|
|
||||||
|
|
||||||
<!-- Periodic synthesized patterns from daily notes. Promote durable lessons to MEMORY.md. -->
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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 -->
|
|
||||||
|
|
||||||
**Headquarter Backend Patterns (FN-004)**
|
|
||||||
|
|
||||||
- Use SQLAlchemy 2.0 async style with `mapped_column` + `Mapped[]` syntax
|
|
||||||
- For Alembic + asyncpg: rewrite `postgresql://` to `postgresql+asyncpg://` in both `app/db.py` and `alembic/env.py`
|
|
||||||
- For pytest + async SQLAlchemy testing: use `pytest-asyncio==0.21.2` (not 1.3.0) with `asyncio_mode = "auto"`, `NullPool`, and a session-scoped `event_loop` fixture to avoid event loop mismatches with asyncpg
|
|
||||||
- Test DB isolation: `begin_nested()` on a connection + `async_sessionmaker` bound to that connection; override `get_db_session` dependency
|
|
||||||
- Secret encryption: derive Fernet key from settings string via `SHA-256 + base64.urlsafe_b64encode`
|
|
||||||
- Auth dev bypass: only active when `settings.debug and settings.auth_dev_bypass`; creates/returns a fixed `authentik_sub="dev-user"`
|
|
||||||
- JWT production path: fetch OIDC discovery → get `jwks_uri` → fetch JWKS → match by `kid` → decode with `jwt.decode(..., algorithms=["RS256"])`
|
|
||||||
Submodule .worktrees/hazy-peach deleted from 08a21eadb7
Submodule .worktrees/sharp-robin deleted from f0169ad51d
Reference in New Issue
Block a user