diff --git a/project_memory/tasks.json b/project_memory/tasks.json index 3d69a8d..c714e63 100644 --- a/project_memory/tasks.json +++ b/project_memory/tasks.json @@ -1,6 +1,6 @@ { - "version": 117, - "generated_at": "2026-04-10T01:22:23.087303Z", + "version": 126, + "generated_at": "2026-04-10T01:41:43.953466Z", "generated_from_event_id": null, "tasks": [ { @@ -753,6 +753,77 @@ "priority": 0, "created_at": "2026-04-10T01:19:56.514241Z", "updated_at": "2026-04-10T01:22:23.087110Z" + }, + { + "id": "issue-109", + "title": "Fix F1-F4 + missing tests", + "issue_number": 109, + "current_state": "merged", + "dependencies": [], + "dependents": [], + "soft_dependencies": [], + "lock": null, + "impact": { + "risk_level": "MEDIUM", + "affected_symbols": 6, + "depth1": [], + "analyzed_at": "2026-04-10T01:32:59.760783Z", + "analyzed_commit": null, + "input_hash": null + }, + "branch_name": "feature/issue-109-review-fixes", + "github_evidence": { + "pr_number": 110, + "pr_head_ref": "feature/issue-109-review-fixes", + "pr_state": "MERGED", + "merge_commit_sha": "8e8653c321e95feabd5de0adac7ffd045edd1609", + "merged_at": "2026-04-10T01:41:43.949051Z", + "review_decision": "APPROVED", + "issue_state": "CLOSED", + "issue_closed_by_pr": true + }, + "completion_mode": "github_pr", + "human_approval": null, + "context_attachments": [ + { + "attachment_type": "issue", + "source": "github://issue/109", + "content": "Issue #109", + "token_estimate": 3, + "attached_at": "2026-04-10T01:32:59.766711Z" + }, + { + "attachment_type": "impact", + "source": "dtp://impact/issue-109", + "content": "risk_level: Medium\naffected_symbols: 6", + "token_estimate": 10, + "attached_at": "2026-04-10T01:32:59.766712Z" + }, + { + "attachment_type": "file_snippet", + "source": "/Users/shunsukehayashi/dev/platform/miyabi-cli-standalone/crates/miyabi-core/src/protocol.rs", + "content": "//! Deterministic execution protocol entry point.\n\nuse crate::dream::DreamReport;\nuse crate::error::Error;\nuse crate::gate::{evaluate_gate, validate_branch_name, Gate, GateContext, GateReport};\nuse crate::lock::{FileLockManager, LeaseConfig, LockConflict};\nuse crate::store::{\n CompletionMode, ContextAttachment, EventStore, ExecutionTask, GitHubEvidence, GitHubIssueState,\n GitHubPrState, HumanApproval, ImpactRiskLevel, ReviewDecision, SnapshotStore, TaskEvent,\n TaskEventType, TaskImpact, TaskState, TasksSnapshot,\n};\nuse chrono::Utc;\nuse serde::{Deserialize, Serialize};\nuse serde_json::Value;\nuse std::collections::{HashMap, VecDeque};\nuse std::fs;\nuse std::io::{BufRead, BufReader};\nuse std::path::{Path, PathBuf};\nuse std::process::Command;\nuse std::time::{Duration, Instant};\n\nconst MAX_CONTEXT_TOKENS: usize = 4_000;\nconst FILE_SNIPPET_LINE_LIMIT: usize = 30;\nconst ANNOUNCE_CHAR_LIMIT: usize = 180;\nconst MAX_ATTACHMENT_AGE_HOURS: i64 = 24;\n\n#[derive(Debug, Clone)]\npub struct DeterministicExecutionProtocol {\n event_store: EventStore,\n snapshot_store: SnapshotStore,", + "token_estimate": 273, + "attached_at": "2026-04-10T01:32:59.766862Z" + }, + { + "attachment_type": "file_snippet", + "source": "/Users/shunsukehayashi/dev/platform/miyabi-cli-standalone/crates/miyabi-core/src/dream.rs", + "content": "//! Dreaming over deterministic task events to extract patterns and learnings.\n\nuse crate::error::Result;\nuse crate::store::{EventStore, TaskEvent, TaskEventType};\nuse chrono::{Duration as ChronoDuration, Utc};\nuse serde::{Deserialize, Serialize};\nuse std::collections::HashMap;\nuse std::fs;\nuse std::path::{Path, PathBuf};\nuse std::process::Command;\nuse std::time::Duration;\n\nconst DREAM_TASK_ID: &str = \"__dream__\";\nconst LONG_COMPLETION_SECS: u64 = 60 * 60;\nconst VERY_LONG_COMPLETION_SECS: u64 = 4 * 60 * 60;\nconst FREQUENT_PATTERN_THRESHOLD: usize = 2;\nconst HIGH_PATTERN_THRESHOLD: usize = 3;\n\n#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]\npub struct DreamReport {\n pub patterns: DreamPatterns,\n pub learnings: Vec,\n pub events_processed: usize,\n}\n\n#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]\npub struct DreamPatterns {\n pub gate_rejections: HashMap,\n pub lock_conflicts: HashMap,\n pub completion_times: Vec<(String, Duration)>,", + "token_estimate": 260, + "attached_at": "2026-04-10T01:32:59.766977Z" + }, + { + "attachment_type": "file_snippet", + "source": "/Users/shunsukehayashi/dev/platform/miyabi-cli-standalone/crates/miyabi-cli/src/main.rs", + "content": "//! Miyabi CLI - Main entry point\n\nuse chrono::Duration as ChronoDuration;\nuse clap::{Parser, Subcommand, ValueEnum};\nuse miyabi_core::{FeatureFlagManager, RulesLoader};\nuse std::collections::HashMap;\nuse std::fs;\nuse std::io::{self, BufRead, BufReader, Write};\nuse std::net::{TcpListener, TcpStream};\nuse std::path::PathBuf;\nuse std::process::Command;\nuse tracing_subscriber::EnvFilter;\n\n/// Global feature flags manager\nstatic FEATURE_FLAGS: std::sync::OnceLock = std::sync::OnceLock::new();\n\n/// Get the global feature flags manager\npub fn feature_flags() -> &'static FeatureFlagManager {\n FEATURE_FLAGS.get_or_init(|| {\n let manager = FeatureFlagManager::new();\n // Default feature flags\n manager.set_flag(\"extended_thinking\", true);\n manager.set_flag(\"auto_save_sessions\", true);\n manager.set_flag(\"syntax_highlighting\", true);\n manager.set_flag(\"vim_mode\", false);\n manager\n })\n}\n\n#[derive(Parser)]", + "token_estimate": 245, + "attached_at": "2026-04-10T01:32:59.767083Z" + } + ], + "priority": 0, + "created_at": "2026-04-10T01:32:59.754100Z", + "updated_at": "2026-04-10T01:41:43.953269Z" } ], "file_locks": {}