feat(CF-762): Complete Jira migration - consolidate projects, cleanup

- Remove task CRUD/epic/search/relation/version tools (moved to Jira)
- Add migration scripts: migrate-tasks-to-jira, jira-admin, prepare-all-projects
- Add consolidate-projects.ts for merging duplicate Jira projects
- Add validate-migration.ts for post-migration integrity checks
- Add jira_issue_key columns migration (030)
- Consolidate 11 duplicate projects (LIT→LITE, CARD→CS, etc.)
- Delete 92 placeholder issues, 11 empty source projects
- Remove SG project completely
- 2,798 tasks migrated across 46 Jira projects

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Christian Gick
2026-02-07 12:33:49 +02:00
parent bd5d95beff
commit 1227e5b339
24 changed files with 2177 additions and 2256 deletions

View File

@@ -9,6 +9,7 @@ interface SessionStartArgs {
working_directory?: string;
git_branch?: string;
initial_prompt?: string;
jira_issue_key?: string;
}
interface SessionUpdateArgs {
@@ -52,6 +53,7 @@ interface Session {
token_count: number;
tools_used: string[] | null;
status: string;
jira_issue_key: string | null;
created_at: string;
}
@@ -60,15 +62,15 @@ interface Session {
* Returns session_id and session_number
*/
export async function sessionStart(args: SessionStartArgs): Promise<string> {
const { session_id, project, working_directory, git_branch, initial_prompt } = args;
const { session_id, project, working_directory, git_branch, initial_prompt, jira_issue_key } = args;
// Generate session ID if not provided (fallback, should come from session-memory)
const id = session_id || `session_${Date.now()}_${Math.random().toString(36).substring(7)}`;
await execute(
`INSERT INTO sessions (id, project, started_at, working_directory, git_branch, initial_prompt, status)
VALUES ($1, $2, NOW(), $3, $4, $5, 'active')`,
[id, project, working_directory || null, git_branch || null, initial_prompt || null]
`INSERT INTO sessions (id, project, started_at, working_directory, git_branch, initial_prompt, jira_issue_key, status)
VALUES ($1, $2, NOW(), $3, $4, $5, $6, 'active')`,
[id, project, working_directory || null, git_branch || null, initial_prompt || null, jira_issue_key || null]
);
// Get the assigned session_number